Skip to content

Commit f95aec4

Browse files
author
Paul Angus
authored
Merge pull request #3018 from shapeblue/fixrouterfilecreation
Prevent error on GroupAnswers on VR creation
2 parents bb7493a + dea0b3e commit f95aec4

File tree

2 files changed

+22
-12
lines changed

2 files changed

+22
-12
lines changed

systemvm/debian/opt/cloud/bin/cs/CsAddress.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -524,15 +524,16 @@ def post_config_change(self, method):
524524
CsHelper.execute("sudo ip route add throw " + self.config.address().dbag['eth1'][0]['network'] + " table " + tableName + " proto static")
525525

526526
# add 'defaul via gateway' rule in the device specific routing table
527-
if "gateway" in self.address and self.address["gateway"] != "None":
527+
if "gateway" in self.address and self.address["gateway"] and self.address["gateway"] != "None":
528528
route.add_route(self.dev, self.address["gateway"])
529-
route.add_network_route(self.dev, str(self.address["network"]))
529+
if "network" in self.address and self.address["network"]:
530+
route.add_network_route(self.dev, str(self.address["network"]))
530531

531532
if self.get_type() in ["public"]:
532533
CsRule(self.dev).addRule("from " + str(self.address["network"]))
533534

534535
if self.config.is_vpc():
535-
if self.get_type() in ["public"] and "gateway" in self.address and self.address["gateway"] != "None":
536+
if self.get_type() in ["public"] and "gateway" in self.address and self.address["gateway"] and self.address["gateway"] != "None":
536537
route.add_route(self.dev, self.address["gateway"])
537538
for inf, addresses in self.config.address().dbag.iteritems():
538539
if not inf.startswith("eth"):

systemvm/debian/opt/cloud/bin/cs/CsRoute.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,29 @@ def add_route(self, dev, address):
5050
""" Wrapper method that adds table name and device to route statement """
5151
# ip route add dev eth1 table Table_eth1 10.0.2.0/24
5252
table = self.get_tablename(dev)
53-
logging.info("Adding route: dev " + dev + " table: " +
54-
table + " network: " + address + " if not present")
55-
cmd = "dev %s table %s %s" % (dev, table, address)
56-
cmd = "default via %s table %s proto static" % (address, table)
57-
self.set_route(cmd)
53+
54+
if not table or not address:
55+
empty_param = "table" if not table else "address"
56+
logging.info("Empty parameter received %s while trying to add route, skipping" % empty_param)
57+
else:
58+
logging.info("Adding route: dev " + dev + " table: " +
59+
table + " network: " + address + " if not present")
60+
cmd = "default via %s table %s proto static" % (address, table)
61+
self.set_route(cmd)
5862

5963
def add_network_route(self, dev, address):
6064
""" Wrapper method that adds table name and device to route statement """
6165
# ip route add dev eth1 table Table_eth1 10.0.2.0/24
6266
table = self.get_tablename(dev)
63-
logging.info("Adding route: dev " + dev + " table: " +
64-
table + " network: " + address + " if not present")
65-
cmd = "throw %s table %s proto static" % (address, table)
66-
self.set_route(cmd)
67+
68+
if not table or not address:
69+
empty_param = "table" if not table else "address"
70+
logging.info("Empty parameter received %s while trying to add network route, skipping" % empty_param)
71+
else:
72+
logging.info("Adding route: dev " + dev + " table: " +
73+
table + " network: " + address + " if not present")
74+
cmd = "throw %s table %s proto static" % (address, table)
75+
self.set_route(cmd)
6776

6877
def set_route(self, cmd, method="add"):
6978
""" Add a route if it is not already defined """

0 commit comments

Comments
 (0)