コード例 #1
0
    def test_creates_network_map_from_conf(self, *args):
        network_map = ['physnet1:dvSwitch', 'physnet2:dvSwitch1']
        CONF.set_override(
            'network_maps', network_map, 'ML2_VMWARE')
        actual = dvs_util.create_network_map_from_config(CONF.ML2_VMWARE)

        self.assertEqual(len(network_map), len(actual))

        for net, dvs_name in [i.split(':') for i in network_map]:
            controller = actual[net]
            self.assertEqual(self.oslo_connection_mock, controller.connection)

        vmware_conf = config.CONF.ML2_VMWARE
        self.session_mock.assert_called_once_with(
            host=vmware_conf.vsphere_hostname,
            port=vmware_conf.host_port,
            server_username=vmware_conf.vsphere_login,
            server_password=vmware_conf.vsphere_password,
            api_retry_count=vmware_conf.api_retry_count,
            task_poll_interval=vmware_conf.task_poll_interval,
            scheme='https',
            create_session=True,
            cacert=vmware_conf.ca_file,
            insecure=vmware_conf.insecure,
            pool_size=vmware_conf.connections_pool_size)
コード例 #2
0
    def test_creates_network_map_from_conf(self, *args):
        network_map = ['physnet1:dvSwitch', 'physnet2:dvSwitch1']
        CONF.set_override(
            'network_maps', network_map, 'ML2_VMWARE')
        actual = dvs_util.create_network_map_from_config(CONF.ML2_VMWARE)

        self.assertEqual(len(network_map), len(actual))

        for net, dvs_name in [i.split(':') for i in network_map]:
            controller = actual[net]
            self.assertEqual(self.oslo_connection_mock, controller.connection)

        vmware_conf = config.CONF.ML2_VMWARE
        self.session_mock.assert_called_once_with(
            host=vmware_conf.vsphere_hostname,
            port=vmware_conf.host_port,
            server_username=vmware_conf.vsphere_login,
            server_password=vmware_conf.vsphere_password,
            api_retry_count=vmware_conf.api_retry_count,
            task_poll_interval=vmware_conf.task_poll_interval,
            scheme='https',
            create_session=True,
            cacert=vmware_conf.ca_file,
            insecure=vmware_conf.insecure,
            pool_size=vmware_conf.connections_pool_size)
コード例 #3
0
    def __init__(self,
                 vsphere_hostname,
                 vsphere_login,
                 vsphere_password,
                 bridge_mappings,
                 polling_interval,
                 quitting_rpc_timeout=None):
        super(DVSAgent, self).__init__()

        self.agent_state = {
            'binary': 'neutron-dvs-agent',
            'host': cfg.CONF.host,
            'topic': n_const.L2_AGENT_TOPIC,
            'configurations': {
                'bridge_mappings': bridge_mappings,
                'vsphere_hostname': vsphere_hostname
            },
            'agent_type': 'DVS agent',
            'start_flag': True
        }

        report_interval = cfg.CONF.DVS_AGENT.report_interval

        self.polling_interval = polling_interval
        # Security group agent support
        self.context = context.get_admin_context_without_session()
        self.sg_plugin_rpc = sg_rpc.SecurityGroupServerRpcApi(topics.PLUGIN)
        self.sg_agent = dvs_rpc.DVSSecurityGroupRpc(
            self.context, self.sg_plugin_rpc, defer_refresh_firewall=True)

        self.setup_rpc()
        self.run_daemon_loop = True
        self.iter_num = 0

        self.quitting_rpc_timeout = quitting_rpc_timeout
        self.network_map = dvs_util.create_network_map_from_config(
            cfg.CONF.ML2_VMWARE, pg_cache=True)
        uplink_map = dvs_util.create_uplink_map_from_config(
            cfg.CONF.ML2_VMWARE, self.network_map)
        for phys, dvs in self.network_map.iteritems():
            if phys in uplink_map:
                dvs.load_uplinks(phys, uplink_map[phys])
        self.updated_ports = set()
        self.deleted_ports = set()
        self.known_ports = set()
        self.added_ports = set()
        self.booked_ports = set()
        LOG.info(_LI("Agent out of sync with plugin!"))
        connected_ports = self._get_dvs_ports()
        self.added_ports = connected_ports
        if cfg.CONF.DVS.clean_on_restart:
            self._clean_up_vsphere_extra_resources(connected_ports)
        self.fullsync = False

        # The initialization is complete; we can start receiving messages
        self.connection.consume_in_threads()
        if report_interval:
            heartbeat = loopingcall.FixedIntervalLoopingCall(
                self._report_state)
            heartbeat.start(interval=report_interval)
コード例 #4
0
 def __init__(self, list_queues, remove_queue):
     self.list_queues = list_queues
     self.remove_queue = remove_queue
     self.removed = {}
     self.update_store = {}
     self.remove_store = {}
     self.networking_map = dvs_util.create_network_map_from_config(
         CONF.ML2_VMWARE)
コード例 #5
0
 def __init__(self, list_queues, remove_queue):
     self.list_queues = list_queues
     self.remove_queue = remove_queue
     self.removed = {}
     self.update_store = {}
     self.remove_store = {}
     self.networking_map = dvs_util.create_network_map_from_config(
         CONF.ML2_VMWARE)
コード例 #6
0
 def __init__(self):
     self.dvs_ports = {}
     self._defer_apply = False
     self.list_queues = []
     for x in six.moves.range(10):
         self.list_queues.append(Queue())
     self.remove_queue = Queue()
     self.fw_process = Process(
         target=firewall_main, args=(self.list_queues, self.remove_queue))
     self.fw_process.start()
     self.networking_map = dvs_util.create_network_map_from_config(
         CONF.ML2_VMWARE)
コード例 #7
0
 def __init__(self):
     self.dvs_ports = {}
     self._defer_apply = False
     self.list_queues = []
     for x in six.moves.range(10):
         self.list_queues.append(Queue())
     self.remove_queue = Queue()
     self.fw_process = Process(target=firewall_main,
                               args=(self.list_queues, self.remove_queue))
     self.fw_process.start()
     self.networking_map = dvs_util.create_network_map_from_config(
         CONF.ML2_VMWARE)
コード例 #8
0
    def __init__(self, vsphere_hostname, vsphere_login, vsphere_password,
                 bridge_mappings, polling_interval, quitting_rpc_timeout=None):
        super(DVSAgent, self).__init__()

        self.agent_state = {
            'binary': 'neutron-dvs-agent',
            'host': cfg.CONF.host,
            'topic': n_const.L2_AGENT_TOPIC,
            'configurations': {'bridge_mappings': bridge_mappings,
                               'vsphere_hostname': vsphere_hostname},
            'agent_type': 'DVS agent',
            'start_flag': True}

        report_interval = cfg.CONF.DVS_AGENT.report_interval

        self.polling_interval = polling_interval
        # Security group agent support
        self.context = context.get_admin_context_without_session()
        self.sg_plugin_rpc = sg_rpc.SecurityGroupServerRpcApi(topics.PLUGIN)
        self.sg_agent = dvs_rpc.DVSSecurityGroupRpc(self.context,
                self.sg_plugin_rpc, defer_refresh_firewall=True)

        self.setup_rpc()
        self.run_daemon_loop = True
        self.iter_num = 0

        self.quitting_rpc_timeout = quitting_rpc_timeout
        self.network_map = dvs_util.create_network_map_from_config(
            cfg.CONF.ML2_VMWARE, pg_cache=True)
        uplink_map = dvs_util.create_uplink_map_from_config(
            cfg.CONF.ML2_VMWARE, self.network_map)
        for phys, dvs in self.network_map.iteritems():
            if phys in uplink_map:
                dvs.load_uplinks(phys, uplink_map[phys])
        self.updated_ports = set()
        self.deleted_ports = set()
        self.known_ports = set()
        self.added_ports = set()
        self.booked_ports = set()
        LOG.info(_LI("Agent out of sync with plugin!"))
        connected_ports = self._get_dvs_ports()
        self.added_ports = connected_ports
        if cfg.CONF.DVS.clean_on_restart:
            self._clean_up_vsphere_extra_resources(connected_ports)
        self.fullsync = False

        # The initialization is complete; we can start receiving messages
        self.connection.consume_in_threads()
        if report_interval:
            heartbeat = loopingcall.FixedIntervalLoopingCall(
                self._report_state)
            heartbeat.start(interval=report_interval)
コード例 #9
0
    def test_creates_network_map_from_conf(self, *args):
        network_map = ['physnet1:dvSwitch', 'physnet2:dvSwitch1']
        CONF.set_override(
            'network_maps', network_map, 'ML2_VMWARE')
        actual = dvs_util.create_network_map_from_config(CONF.ML2_VMWARE)

        self.assertEqual(len(network_map), len(actual))

        for net, dvs_name in [i.split(':') for i in network_map]:
            controller = actual[net]
            self.assertEqual('session', controller.connection)

        vmware_conf = config.CONF.ML2_VMWARE
        self.session_mock.assert_called_once_with(
            vmware_conf.vsphere_hostname,
            vmware_conf.vsphere_login,
            vmware_conf.vsphere_password,
            vmware_conf.api_retry_count,
            vmware_conf.task_poll_interval)
コード例 #10
0
    def __init__(self, vsphere_hostname, vsphere_login, vsphere_password,
                 bridge_mappings, polling_interval, quitting_rpc_timeout=None):
        super(DVSAgent, self).__init__()

        self.agent_state = {
            'binary': 'neutron-dvs-agent',
            'host': cfg.CONF.host,
            'topic': n_const.L2_AGENT_TOPIC,
            'configurations': {'bridge_mappings': bridge_mappings,
                               'vsphere_hostname': vsphere_hostname,
                               'log_agent_heartbeats':
                                   cfg.CONF.AGENT.log_agent_heartbeats},
            'agent_type': 'DVS agent',
            'start_flag': True}

        self.setup_rpc()
        report_interval = cfg.CONF.AGENT.report_interval
        if report_interval:
            heartbeat = loopingcall.FixedIntervalLoopingCall(
                self._report_state)
            heartbeat.start(interval=report_interval)

        self.polling_interval = polling_interval
        # Security group agent support
        self.sg_agent = dvs_rpc.DVSSecurityGroupRpc(
            self.context, self.sg_plugin_rpc, defer_refresh_firewall=True)
        self.run_daemon_loop = True
        self.iter_num = 0
        self.fullsync = True
        # The initialization is complete; we can start receiving messages
        self.connection.consume_in_threads()

        self.quitting_rpc_timeout = quitting_rpc_timeout
        self.network_map = dvs_util.create_network_map_from_config(
            cfg.CONF.ML2_VMWARE)
        self.updated_ports = set()
        self.deleted_ports = set()
        self.known_ports = set()
        self.added_ports = set()
        self.booked_ports = set()
コード例 #11
0
 def test_empty_map_if_config_network_maps_is_empty(self):
     CONF.set_override('network_maps', [], 'ML2_VMWARE')
     self.assertDictEqual(
         {},
         dvs_util.create_network_map_from_config(CONF.ML2_VMWARE))
コード例 #12
0
 def test_empty_map_if_config_network_maps_is_empty(self):
     CONF.set_override('network_maps', [], 'ML2_VMWARE')
     self.assertDictEqual(
         {},
         dvs_util.create_network_map_from_config(CONF.ML2_VMWARE))