コード例 #1
0
    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
コード例 #2
0
    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()