예제 #1
0
 def _setup_qos_extension(self):
     """Setup the QOS extension if it is required."""
     if not CONF.AGENT.enable_qos_extension:
         return
     self._qos_ext = qos_extension.QosAgentExtension()
     self._qos_ext.consume_api(self)
     self._qos_ext.initialize(self._connection, 'hyperv')
예제 #2
0
    def setUp(self):
        super(QosExtensionBaseTestCase, self).setUp()
        self.qos_ext = qos.QosAgentExtension()
        self.context = context.get_admin_context()
        self.connection = mock.Mock()

        # Don't rely on used driver
        mock.patch(
            'neutron.manager.NeutronManager.load_class_for_provider',
            return_value=lambda: mock.Mock(spec=qos.QosAgentDriver)).start()
예제 #3
0
    def setUp(self):
        super(QosExtensionBaseTestCase, self).setUp()
        self.qos_ext = qos.QosAgentExtension()
        self.context = context.get_admin_context()
        self.connection = mock.Mock()
        self.agent_api = ovs_ext_api.OVSAgentExtensionAPI(
            ovs_bridge.OVSAgentBridge('br-int'),
            ovs_bridge.OVSAgentBridge('br-tun'))
        self.qos_ext.consume_api(self.agent_api)

        # Don't rely on used driver
        mock.patch(
            'neutron.manager.NeutronManager.load_class_for_provider',
            return_value=lambda: mock.Mock(spec=qos.QosAgentDriver)).start()
예제 #4
0
    def setUp(self):
        super(QosExtensionBaseTestCase, self).setUp()
        conn_patcher = mock.patch('neutron.agent.ovsdb.impl_idl._connection')
        conn_patcher.start()
        self.addCleanup(conn_patcher.stop)
        self.qos_ext = qos.QosAgentExtension()
        self.context = context.get_admin_context()
        self.connection = mock.Mock()
        self.agent_api = ovs_ext_api.OVSAgentExtensionAPI(
            ovs_bridge.OVSAgentBridge('br-int'),
            ovs_bridge.OVSAgentBridge('br-tun'))
        self.qos_ext.consume_api(self.agent_api)

        # Don't rely on used driver
        mock.patch.object(manager.NeutronManager,
                          'load_class_for_provider',
                          return_value=lambda: mock.Mock(
                              spec=qos_linux.QosLinuxAgentDriver)).start()
예제 #5
0
    def _setup_rpc(self):
        self.agent_id = 'hyperv_%s' % platform.node()
        self.topic = topics.AGENT
        self.plugin_rpc = agent_rpc.PluginApi(topics.PLUGIN)
        self.sg_plugin_rpc = sg_rpc.SecurityGroupServerRpcApi(topics.PLUGIN)

        # RPC network init
        self.context = context.get_admin_context_without_session()
        self.sec_groups_agent = HyperVSecurityAgent(self.context,
                                                    self.sg_plugin_rpc)
        self.state_rpc = agent_rpc.PluginReportStateAPI(topics.PLUGIN)

        # Handle updates from service
        self.endpoints = [self]
        # Define the listening consumers for the agent
        consumers = [[topics.PORT, topics.UPDATE],
                     [topics.NETWORK, topics.DELETE],
                     [topics.PORT, topics.DELETE]]
        if CONF.NVGRE.enable_support:
            consumers.append([h_const.TUNNEL, topics.UPDATE])
            consumers.append([h_const.LOOKUP, h_const.UPDATE])

        self.connection = agent_rpc.create_consumers(self.endpoints,
                                                     self.topic,
                                                     consumers,
                                                     start_listening=False)

        if CONF.AGENT.enable_qos_extension:
            self._qos_ext = qos_extension.QosAgentExtension()
            self._qos_ext.consume_api(self)
            self._qos_ext.initialize(self.connection, 'hyperv')

        self.connection.consume_in_threads()

        self.client = n_rpc.get_client(self.target)
        report_interval = CONF.AGENT.report_interval
        if report_interval:
            heartbeat = loopingcall.FixedIntervalLoopingCall(
                self._report_state)
            heartbeat.start(interval=report_interval)

        self._vlan_driver = trunk_driver.HyperVTrunkDriver(self.context)