From 16f51e03dee4023612e054908e9cfc8a02bac5f3 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Mon, 1 Jul 2013 10:33:29 -0400 Subject: [PATCH] fix bugs --- planetstack/openstack/driver.py | 12 +++++++----- planetstack/openstack/observer.py | 10 +++++++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/planetstack/openstack/driver.py b/planetstack/openstack/driver.py index 14eea41..c01fede 100644 --- a/planetstack/openstack/driver.py +++ b/planetstack/openstack/driver.py @@ -264,10 +264,11 @@ class OpenStackDriver: gw_port = port router_id = gw_port['device_id'] router = self.shell.quantum.show_router(router_id)['router'] - ext_net = router['external_gateway_info']['network_id'] - for port in ports: - if port['device_id'] == router_id and port['network_id'] == ext_net: - ip_address = port['fixed_ips'][0]['ip_address'] + if router: + ext_net = router['external_gateway_info']['network_id'] + for port in ports: + if port['device_id'] == router_id and port['network_id'] == ext_net: + ip_address = port['fixed_ips'][0]['ip_address'] if ip_address: # check if external route already exists @@ -278,7 +279,8 @@ class OpenStackDriver: route_exists = True if not route_exists: cmd = "route add -net %s dev br-ex gw %s" % (subnet['cidr'], ip_address) - commands.getstatusoutput(cmd) + s, o = commands.getstatusoutput(cmd) + #print cmd, "\n", s, o return 1 diff --git a/planetstack/openstack/observer.py b/planetstack/openstack/observer.py index 8da0999..08cbf46 100644 --- a/planetstack/openstack/observer.py +++ b/planetstack/openstack/observer.py @@ -27,7 +27,8 @@ class OpenStackObserver: self.sync_user_tenant_roles() self.sync_slivers() self.sync_sliver_ips() - time.sleep(7) + self.sync_external_routes() + time.sleep(10) except: traceback.print_exc() @@ -277,7 +278,10 @@ class OpenStackObserver: def sync_external_routes(self): routes = self.manager.driver.get_external_routes() - subnets = self.manager.driver.shell.quantum.list_subnets() + subnets = self.manager.driver.shell.quantum.list_subnets()['subnets'] for subnet in subnets: - self.manager.driver.add_external_route(subnet, routes) + try: + self.manager.driver.add_external_route(subnet, routes) + except: + logger.log_exc("failed to add external route for subnet %s" % subnet) -- 2.43.0