Esempio n. 1
0
 def setUp(self):
     super(TestNbApi, self).setUp()
     self.api_nb = api_nb.NbApi(db_driver=mock.Mock(),
                                use_pubsub=True,
                                is_neutron_server=True)
     self.api_nb.publisher = mock.Mock()
     self.api_nb.enable_selective_topo_dist = True
Esempio n. 2
0
def main():
    cfg.CONF.register_opts(df_db_test_opts, 'df_db_test')
    common_config.init(sys.argv[2:])
    # To enable logging, uncomment the following line:
    # common_config.setup_logging()
    nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
    is_server = False
    if sys.argv[1] == 'server':
        is_server = True
    elif sys.argv[1] != 'client':
        raise Exception('Bad parameter #1: Expected \'server\' or \'client\','
                        ' found: %s' % sys.argv[1])
    nb_api = api_nb.NbApi(
        nb_driver_class(),
        use_pubsub=cfg.CONF.df.enable_df_pub_sub,
        is_neutron_server=is_server,
    )
    nb_api.initialize(
        db_ip=cfg.CONF.df.remote_db_ip,
        db_port=cfg.CONF.df.remote_db_port,
    )
    if is_server:
        run_server(nb_api)
    else:
        run_client(nb_api)
Esempio n. 3
0
 def __init__(self, chassis_name):
     self.next_network_id = 0
     self.db_store = db_store.DbStore()
     self.chassis_name = chassis_name
     self.ip = cfg.CONF.df.local_ip
     self.tunnel_type = cfg.CONF.df.tunnel_type
     self.sync_finished = False
     self.port_status_notifier = None
     nb_driver = df_utils.load_driver(cfg.CONF.df.nb_db_class,
                                      df_utils.DF_NB_DB_DRIVER_NAMESPACE)
     self.nb_api = api_nb.NbApi(nb_driver,
                                use_pubsub=cfg.CONF.df.enable_df_pub_sub)
     self.vswitch_api = vswitch_impl.OvsApi(self.ip)
     if cfg.CONF.df.enable_port_status_notifier:
         self.port_status_notifier = df_utils.load_driver(
             cfg.CONF.df.port_status_notifier,
             df_utils.DF_PORT_STATUS_DRIVER_NAMESPACE)
     kwargs = dict(nb_api=self.nb_api,
                   vswitch_api=self.vswitch_api,
                   db_store=self.db_store)
     app_mgr = app_manager.AppManager.get_instance()
     self.open_flow_app = app_mgr.instantiate(ryu_base_app.RyuDFAdapter,
                                              **kwargs)
     self.topology = None
     self.enable_selective_topo_dist = \
         cfg.CONF.df.enable_selective_topology_distribution
     self.integration_bridge = cfg.CONF.df.integration_bridge
Esempio n. 4
0
 def __init__(self, conf):
     super(DFMetadataProxyHandler, self).__init__()
     self.conf = conf
     nb_driver = df_utils.load_driver(cfg.CONF.df.nb_db_class,
                                      df_utils.DF_NB_DB_DRIVER_NAMESPACE)
     self.nb_api = api_nb.NbApi(nb_driver,
                                use_pubsub=cfg.CONF.df.enable_df_pub_sub)
     self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
                            db_port=cfg.CONF.df.remote_db_port)
Esempio n. 5
0
    def post_fork_initialize(self, resource, event, trigger, **kwargs):
        nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)

        self.nb_api = api_nb.NbApi(nb_driver_class(),
                                   use_pubsub=cfg.CONF.df.enable_df_pub_sub,
                                   is_neutron_server=True)
        self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
                               db_port=cfg.CONF.df.remote_db_port)

        self._set_base_port_binding()
Esempio n. 6
0
 def __init__(self):
     super(DFPlugin, self).__init__()
     LOG.info(_LI("Starting DFPlugin"))
     self.vif_type = portbindings.VIF_TYPE_OVS
     self._set_base_port_binding()
     # When set to True, Nova plugs the VIF directly into the ovs bridge
     # instead of using the hybrid mode.
     self.vif_details = {portbindings.CAP_PORT_FILTER: True}
     registry.subscribe(self.post_fork_initialize, resources.PROCESS,
                        events.AFTER_CREATE)
     nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
     self.nb_api = api_nb.NbApi(nb_driver_class())
     self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
                            db_port=cfg.CONF.df.remote_db_port)
     self._setup_dhcp()
     self._start_rpc_notifiers()
Esempio n. 7
0
    def run(self):
        nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
        self.nb_api = api_nb.NbApi(nb_driver_class())
        self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
                               db_port=cfg.CONF.df.remote_db_port)
        self.vswitch_api = ovsdb_vswitch_impl.OvsdbSwitchApi(self.ip)
        self.vswitch_api.initialize()

        self.vswitch_api.sync()
        self.vswitch_api.del_controller('br-int').execute()
        self.vswitch_api.set_controllers(
            'br-int', ['tcp:' + self.ip + ':6633']).execute()

        self.dispatcher.load()
        self.dispatcher.is_ready()

        self.db_sync_loop()
Esempio n. 8
0
    def setUp(self):
        super(DFTestBase, self).setUp()
        creds = credentials()
        tenant_name = creds['project_name']
        auth_url = creds['auth_url'] + "/v2.0"
        self.neutron = client.Client('2.0',
                                     username=creds['username'],
                                     password=creds['password'],
                                     auth_url=auth_url,
                                     tenant_name=tenant_name)
        self.neutron.format = 'json'
        common_config.init(['--config-file', '/etc/neutron/neutron.conf'])

        db_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
        self.nb_api = api_nb.NbApi(db_driver_class())
        self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
                               db_port=cfg.CONF.df.remote_db_port)
Esempio n. 9
0
    def setUp(self):
        super(TestSync, self).setUp()
        self._db_store = db_store.get_instance()
        self._db_store.clear()

        self.nb_api = api_nb.NbApi(db_driver=mock.Mock())
        self.nb_api.publisher = mock.Mock()
        self.nb_api.enable_selective_topo_dist = True
        self._update = mock.Mock(side_effect=self._db_store.update)
        self._delete = mock.Mock(side_effect=self._db_store.delete)
        self.sync = sync.Sync(
            self.nb_api,
            self._update,
            self._delete,
        )
        self.sync.add_model(TopiclessModel)
        self.sync.add_model(TopicModel1)
        self.sync.add_model(TopicModel2)
Esempio n. 10
0
    def setUp(self):
        super(DFTestBase, self).setUp()
        creds = credentials()
        tenant_name = creds['project_name']
        auth_url = creds['auth_url'] + "/v2.0"
        self.neutron = client.Client('2.0', username=creds['username'],
             password=creds['password'], auth_url=auth_url,
             tenant_name=tenant_name)
        self.neutron.format = 'json'
        common_config.init(['--config-file', '/etc/neutron/neutron.conf'])

        db_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
        self.nb_api = api_nb.NbApi(db_driver_class())
        self.nb_api.initialize(db_ip=cfg.CONF.df.remote_db_ip,
            db_port=cfg.CONF.df.remote_db_port)
        self.local_ip = cfg.CONF.df.local_ip
        self.__objects_to_close = []
        if cfg.CONF.df.enable_selective_topology_distribution:
            self.start_subscribing()
Esempio n. 11
0
    def __init__(self, chassis_name):
        self.next_network_id = 0
        self.db_store = db_store.DbStore()
        self.chassis_name = chassis_name
        self.ip = cfg.CONF.df.local_ip
        self.tunnel_type = cfg.CONF.df.tunnel_type
        self.sync_finished = False
        nb_driver_class = importutils.import_class(cfg.CONF.df.nb_db_class)
        self.nb_api = api_nb.NbApi(nb_driver_class(),
                                   use_pubsub=cfg.CONF.df.enable_df_pub_sub)
        self.vswitch_api = ovsdb_vswitch_impl.OvsdbSwitchApi(
            self.ip, self.nb_api)
        kwargs = dict(nb_api=self.nb_api,
                      vswitch_api=self.vswitch_api,
                      db_store=self.db_store)
        app_mgr = AppManager.get_instance()
        self.open_flow_app = app_mgr.instantiate(RyuDFAdapter, **kwargs)

        self.topology = None
        self.enable_selective_topo_dist = \
            cfg.CONF.df.enable_selective_topology_distribution
Esempio n. 12
0
 def setUp(self):
     super(TestMixinVersions, self).setUp()
     self.api_nb = api_nb.NbApi(db_driver=mock.Mock())
Esempio n. 13
0
 def setUp(self):
     super(TestNbApi, self).setUp()
     cfg.CONF.set_override('enable_df_pub_sub', True, group='df')
     self.api_nb = api_nb.NbApi(db_driver=mock.Mock())
     self.api_nb.publisher = mock.Mock()
     self.api_nb.enable_selective_topo_dist = True