Ejemplo n.º 1
0
 def from_worker(cls, worker_class, driver=None):
     args = (cfg.get_ovn_sb_connection(), 'OVN_Southbound')
     if worker_class == worker.MaintenanceWorker:
         idl_ = ovsdb_monitor.BaseOvnSbIdl.from_server(*args)
     else:
         idl_ = ovsdb_monitor.OvnSbIdl.from_server(*args, driver=driver)
     conn = connection.Connection(idl_, timeout=cfg.get_ovn_ovsdb_timeout())
     return cls(conn)
Ejemplo n.º 2
0
 def __init__(self, events=None):
     connection_string = config.get_ovn_sb_connection()
     ovsdb_monitor._check_and_set_ssl_files(self.SCHEMA)
     helper = self._get_ovsdb_helper(connection_string)
     tables = ('Chassis', 'Encap', 'Port_Binding', 'Datapath_Binding',
               'SB_Global')
     for table in tables:
         helper.register_table(table)
     super(MetadataAgentOvnSbIdl, self).__init__(None, connection_string,
                                                 helper)
     if events:
         self.notify_handler.watch_events(events)
Ejemplo n.º 3
0
 def setUp(self):
     super().setUp()
     self.dbs = [(ovn_conf.get_ovn_nb_connection(), 'ptcp:1000:1.2.3.4'),
                 (ovn_conf.get_ovn_sb_connection(), 'ptcp:1001:1.2.3.4')]
     linux_utils.execute([
         'ovn-nbctl',
         '--db=%s' % self.dbs[0][0], 'set-connection', self.dbs[0][1]
     ],
                         run_as_root=True,
                         privsep_exec=True)
     linux_utils.execute([
         'ovn-sbctl',
         '--db=%s' % self.dbs[1][0], 'set-connection', self.dbs[1][1]
     ],
                         run_as_root=True,
                         privsep_exec=True)
Ejemplo n.º 4
0
 def __init__(self, chassis=None, events=None, tables=None):
     connection_string = config.get_ovn_sb_connection()
     ovsdb_monitor._check_and_set_ssl_files(self.SCHEMA)
     helper = self._get_ovsdb_helper(connection_string)
     if tables is None:
         tables = ('Chassis', 'Encap', 'Port_Binding', 'Datapath_Binding',
                   'SB_Global')
     for table in tables:
         helper.register_table(table)
     super(MetadataAgentOvnSbIdl, self).__init__(None, connection_string,
                                                 helper)
     if chassis:
         table = ('Chassis_Private'
                  if 'Chassis_Private' in tables else 'Chassis')
         self.tables[table].condition = [['name', '==', chassis]]
     if events:
         self.notify_handler.watch_events(events)
Ejemplo n.º 5
0
def get_connection(db_class, trigger=None, driver=None, binding_events=False):
    if db_class == OvsdbNbOvnIdl:
        args = (cfg.get_ovn_nb_connection(), 'OVN_Northbound')
    elif db_class == OvsdbSbOvnIdl:
        args = (cfg.get_ovn_sb_connection(), 'OVN_Southbound')

    if binding_events:
        if db_class == OvsdbNbOvnIdl:
            idl_ = ovsdb_monitor.OvnNbIdl.from_server(*args, driver=driver)
        else:
            idl_ = ovsdb_monitor.OvnSbIdl.from_server(*args, driver=driver)
    else:
        if db_class == OvsdbNbOvnIdl:
            idl_ = ovsdb_monitor.BaseOvnIdl.from_server(*args)
        else:
            idl_ = ovsdb_monitor.BaseOvnSbIdl.from_server(*args)

    return connection.Connection(idl_, timeout=cfg.get_ovn_ovsdb_timeout())
Ejemplo n.º 6
0
 def __init__(self, chassis=None, events=None, tables=None):
     connection_string = config.get_ovn_sb_connection()
     ovsdb_monitor._check_and_set_ssl_files(self.SCHEMA)
     helper = self._get_ovsdb_helper(connection_string)
     if tables is None:
         tables = ('Chassis', 'Encap', 'Port_Binding', 'Datapath_Binding',
                   'SB_Global')
     for table in tables:
         helper.register_table(table)
     try:
         super(MetadataAgentOvnSbIdl, self).__init__(None,
                                                     connection_string,
                                                     helper,
                                                     leader_only=False)
     except TypeError:
         # TODO(twilson) We can remove this when we require ovs>=2.12.0
         super(MetadataAgentOvnSbIdl,
               self).__init__(None, connection_string, helper)
     if chassis:
         for table in set(tables).intersection(
             {'Chassis', 'Chassis_Private'}):
             self.set_table_condition(table, [['name', '==', chassis]])
     if events:
         self.notify_handler.watch_events(events)
Ejemplo n.º 7
0
 def connection_string(cls):
     return cfg.get_ovn_sb_connection()