def get_cloud_driver_context(self, cloud_manager): if cloud_manager: if cloud_manager.name not in self.driver_contexts: if cloud_manager.type.lower() == "openstack": _("... Building context") context = OSDriverContext(OSClient(cloud_manager.path, cloud_manager.username, cloud_manager.tenant, cloud_manager.password)) __() elif cloud_manager.type.lower() == "stub": context = StubDriverContext() else: error('%s type of CLOUD MANAGER IS UNKNOWN!', cloud_manager.type) raise IntegrityException if context.authenticated(): self.driver_contexts[cloud_manager.name] = context self.cloud_manager.set_authenticated(cloud_manager.name) else: self.driver_contexts[cloud_manager.name] = None self.cloud_manager.set_authenticated(cloud_manager.name, False) output() warn('Cloud manager %s failed authentication.', cloud_manager.name) return self.driver_contexts[cloud_manager.name] else: error('No driver found for None cloud manager') raise IntegrityException
def get_routers(self, network, deep_fetch=False): if deep_fetch or network.router is None: cloud_routers = self.get_context(network).find_attached_routers(network.cloud_network) for cloud_router in cloud_routers: router = self.router_manager.get(cloud_router['name']) if router is None: warn('Constructing Router from network_manager:get_router') router = Router(cloud_router['name'], network.cloud_manager, cloud_router) self.router_manager.add(router) network.set_router(router) return network.routers()