def test_tunnel_sync(self):
     rpcapi = agent_rpc.PluginApi(topics.PLUGIN)
     self._test_ovs_api(rpcapi,
                        topics.PLUGIN,
                        'tunnel_sync',
                        rpc_method='call',
                        tunnel_ip='fake_tunnel_ip')
示例#2
0
    def setup_rpc(self, physical_interfaces):
        if physical_interfaces:
            mac = utils.get_interface_mac(physical_interfaces[0])
        else:
            devices = ip_lib.IPWrapper(self.root_helper).get_devices(True)
            if devices:
                mac = utils.get_interface_mac(devices[0].name)
            else:
                LOG.error("Unable to obtain MAC address for unique ID. "
                          "Agent terminated!")
                exit(1)
        self.agent_id = '%s%s' % ('lb', (mac.replace(":", "")))
        LOG.info("RPC agent_id: %s" % self.agent_id)

        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)

        # RPC network init
        self.context = context.RequestContext('quantum',
                                              'quantum',
                                              is_admin=False)
        # Handle updates from service
        self.callbacks = LinuxBridgeRpcCallbacks(self.context, self.linux_br)
        self.dispatcher = self.callbacks.create_rpc_dispatcher()
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE]]
        self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                     self.topic, consumers)
        self.udev = pyudev.Context()
        monitor = pyudev.Monitor.from_netlink(self.udev)
        monitor.filter_by('net')
示例#3
0
 def test_update_device_down(self):
     rpcapi = agent_rpc.PluginApi(topics.PLUGIN)
     self._test_hyperv_quantum_api(
         rpcapi, topics.PLUGIN,
         'update_device_down', rpc_method='call',
         device='fake_device',
         agent_id='fake_agent_id')
 def test_device_details(self):
     rpcapi = agent_rpc.PluginApi(topics.PLUGIN)
     self._test_ovs_api(rpcapi,
                        topics.PLUGIN,
                        'get_device_details',
                        rpc_method='call',
                        device='fake_device',
                        agent_id='fake_agent_id')
示例#5
0
 def test_update_device_up(self):
     rpcapi = agent_rpc.PluginApi(topics.PLUGIN)
     self._test_lb_api(rpcapi,
                       topics.PLUGIN,
                       'update_device_up',
                       rpc_method='call',
                       device='fake_device',
                       agent_id='fake_agent_id')
示例#6
0
 def _test_rpc_call(self, method):
     agent = rpc.PluginApi('fake_topic')
     ctxt = context.RequestContext('fake_user', 'fake_project')
     expect_val = 'foo'
     with mock.patch('quantum.openstack.common.rpc.call') as rpc_call:
         rpc_call.return_value = expect_val
         func_obj = getattr(agent, method)
         if method == 'tunnel_sync':
             actual_val = func_obj(ctxt, 'fake_tunnel_ip')
         else:
             actual_val = func_obj(ctxt, 'fake_device', 'fake_agent_id')
     self.assertEqual(actual_val, expect_val)
示例#7
0
    def setup_rpc(self, integ_br):
        mac = utils.get_interface_mac(integ_br)
        self.agent_id = '%s%s' % ('ovs', (mac.replace(":", "")))
        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)

        # RPC network init
        self.context = context.get_admin_context_without_session()
        # Handle updates from service
        self.dispatcher = self.create_rpc_dispatcher()
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE],
                     [constants.TUNNEL, topics.UPDATE]]
        self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                     self.topic, consumers)
示例#8
0
    def _setup_rpc(self):
        self.agent_id = 'hyperv_%s' % platform.node()
        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)

        # RPC network init
        self.context = context.get_admin_context_without_session()
        # Handle updates from service
        self.dispatcher = self._create_rpc_dispatcher()
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE],
                     [topics.PORT, topics.DELETE],
                     [constants.TUNNEL, topics.UPDATE]]
        self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                     self.topic, consumers)
示例#9
0
    def _setup_rpc(self):
        self.agent_id = 'mlnx-agent.%s' % socket.gethostname()
        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)
        self.state_rpc = agent_rpc.PluginReportStateAPI(topics.PLUGIN)
        # RPC network init
        self.context = context.get_admin_context_without_session()
        # Handle updates from service
        self.callbacks = MlnxEswitchRpcCallbacks(self.context, self.eswitch)
        self.dispatcher = self.callbacks.create_rpc_dispatcher()
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE]]
        self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                     self.topic, consumers)

        report_interval = cfg.CONF.AGENT.report_interval
        if report_interval:
            heartbeat = loopingcall.LoopingCall(self._report_state)
            heartbeat.start(interval=report_interval)
示例#10
0
    def setup_rpc(self, physical_interfaces):
        # REVISIT try until one succeeds?
        mac = utils.get_interface_mac(physical_interfaces[0])
        self.agent_id = '%s%s' % ('lb', (mac.replace(":", "")))
        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)

        # RPC network init
        self.context = context.RequestContext('quantum',
                                              'quantum',
                                              is_admin=False)
        # Handle updates from service
        self.callbacks = LinuxBridgeRpcCallbacks(self.context, self.linux_br)
        self.dispatcher = self.callbacks.create_rpc_dispatcher()
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE]]
        self.connection = agent_rpc.create_consumers(self.dispatcher,
                                                     self.topic, consumers)
        self.udev = pyudev.Context()
        monitor = pyudev.Monitor.from_netlink(self.udev)
        monitor.filter_by('net')