def create_virtual_router(cls, name, node_ip=None): vrouter_node_ip = node_ip if node_ip else cls.get_kubernetes_node_ip() vrouter_obj = VirtualRouter(name, virtual_router_ip_address=vrouter_node_ip) try: vrouter_obj = cls._vnc_lib.virtual_router_read( fq_name=vrouter_obj.get_fq_name()) except NoIdError: cls._vnc_lib.virtual_router_create(vrouter_obj) VirtualRouterKM.locate(vrouter_obj.uuid) return vrouter_obj
def test_get_candidates(self): self.vnc_mock.virtual_routers_list.return_value = VROUTER_LIST self.analytics_mock.side_effect = [ RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS ] vr_obj = VirtualRouter() vr_obj.get_virtual_machine_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_vm_uuid1' }]) self.vnc_mock.virtual_router_read.return_value = vr_obj vm_obj_1 = VirtualMachine() vm_obj_1.get_service_instance_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_si_uuid1' }]) vm_obj_2 = VirtualMachine() vm_obj_2.get_service_instance_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_si_uuid2' }]) self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] # Test the vrouters seected does not already have a VM of the same SI # schedule on it. expected_result = [["default-global-system-config", "vrouter3"]] self.assertEqual( self.scheduler._get_candidates('fake_si_uuid1', 'fake_vm_uuid2'), expected_result) self.analytics_mock.side_effect = [ RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS ] self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] # Test the same vrouter is return if the VM is already scheduled on # a running vrouter expected_result = [["default-global-system-config", "vrouter1"]] self.assertEqual( self.scheduler._get_candidates('fake_si_uuid1', 'fake_vm_uuid1'), expected_result)
def test_get_candidates(self): VROUTER_LIST = { "virtual-routers": [{ "href": "http://127.0.0.1:8082/virtual-router/uuid1", "fq_name": ["default-global-system-config", "vrouter1"], "uuid": "uuid1" }, { "href": "http://127.0.0.1:8082/virtual-router/uuid2", "fq_name": ["default-global-system-config", "vrouter2"], "uuid": "uuid2" }, { "href": "http://127.0.0.1:8082/virtual-router/uuid3", "fq_name": ["default-global-system-config", "vrouter3"], "uuid": "uuid3" }] } self.vnc_mock.virtual_routers_list.return_value = VROUTER_LIST self.analytics_mock.side_effect = [ RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS ] vr_obj = VirtualRouter() vr_obj.get_virtual_machine_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_uuid' }]) self.vnc_mock.virtual_router_read.return_value = vr_obj vm_obj_1 = VirtualMachine() vm_obj_1.get_service_instance_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_uuid' }]) vm_obj_2 = VirtualMachine() vm_obj_2.get_service_instance_refs = mock.MagicMock( return_value=[{ 'uuid': 'fake_si_uuid' }]) self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] expected_result = [["default-global-system-config", "vrouter1"]] self.assertEqual( self.scheduler._get_candidates('fake_si_uuid', 'fake_uuid'), expected_result)
def create_virtual_router(cls, name, node_ip=None): vrouter_node_ip = node_ip if node_ip else cls.get_kubernetes_node_ip() vrouter_obj = VirtualRouter( name, virtual_router_ip_address=vrouter_node_ip) try: vrouter_obj = cls._vnc_lib.virtual_router_read( fq_name=vrouter_obj.get_fq_name()) except NoIdError: cls._vnc_lib.virtual_router_create(vrouter_obj) VirtualRouterKM.locate(vrouter_obj.uuid) return vrouter_obj
def test_get_candidates(self): self.vnc_mock.virtual_routers_list.return_value = VROUTER_LIST self.analytics_mock.side_effect = [RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS] vr_obj = VirtualRouter() vr_obj.get_virtual_machine_refs = mock.MagicMock( return_value=[{'uuid': 'fake_vm_uuid1'}]) self.vnc_mock.virtual_router_read.return_value = vr_obj vm_obj_1 = VirtualMachine() vm_obj_1.get_service_instance_refs = mock.MagicMock( return_value=[{'uuid': 'fake_si_uuid1'}]) vm_obj_2 = VirtualMachine() vm_obj_2.get_service_instance_refs = mock.MagicMock( return_value=[{'uuid': 'fake_si_uuid2'}]) self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] # Test the vrouters seected does not already have a VM of the same SI # schedule on it. expected_result = [["default-global-system-config", "vrouter3"]] self.assertEqual(self.scheduler._get_candidates('fake_si_uuid1', 'fake_vm_uuid2'), expected_result) self.analytics_mock.side_effect = [RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS, RUNNING_VROUTER_UVES_STATUS] self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] # Test the same vrouter is return if the VM is already scheduled on # a running vrouter expected_result = [["default-global-system-config", "vrouter1"]] self.assertEqual(self.scheduler._get_candidates('fake_si_uuid1', 'fake_vm_uuid1'), expected_result)
def test_get_candidates(self): VROUTER_LIST = { "virtual-routers": [ { "href": "http://127.0.0.1:8082/virtual-router/uuid1", "fq_name": [ "default-global-system-config", "vrouter1" ], "uuid": "uuid1" }, { "href": "http://127.0.0.1:8082/virtual-router/uuid2", "fq_name": [ "default-global-system-config", "vrouter2" ], "uuid": "uuid2" }, { "href": "http://127.0.0.1:8082/virtual-router/uuid3", "fq_name": [ "default-global-system-config", "vrouter3" ], "uuid": "uuid3" } ] } self.vnc_mock.virtual_routers_list.return_value = VROUTER_LIST self.analytics_mock.side_effect = [RUNNING_VROUTER_UVES_STATUS, NON_RUNNING_VROUTER_UVES_STATUS_3, RUNNING_VROUTER_UVES_STATUS] vr_obj = VirtualRouter() vr_obj.get_virtual_machine_refs = mock.MagicMock( return_value=[{'uuid': 'fake_uuid'}]) self.vnc_mock.virtual_router_read.return_value = vr_obj vm_obj_1 = VirtualMachine() vm_obj_1.get_service_instance_refs = mock.MagicMock( return_value=[{'uuid': 'fake_uuid'}]) vm_obj_2 = VirtualMachine() vm_obj_2.get_service_instance_refs = mock.MagicMock( return_value=[{'uuid': 'fake_si_uuid'}]) self.vnc_mock.virtual_machine_read.side_effect = [vm_obj_1, vm_obj_2] expected_result = [["default-global-system-config", "vrouter1"]] self.assertEqual(self.scheduler._get_candidates('fake_si_uuid'), expected_result)
def del_vrouter(self): gsc_obj = self._global_system_config_obj vrouter_obj = VirtualRouter(self._args.host_name, gsc_obj) vrouter_exists = True try: self._vnc_lib.virtual_router_read( fq_name=vrouter_obj.get_fq_name()) except NoIdError: vrouter_exists = False if vrouter_exists: self._vnc_lib.virtual_router_delete( fq_name=vrouter_obj.get_fq_name()) else: print(" vrouter object not found ")
def del_vhost0_vmi(self): gsc_obj = self._global_system_config_obj vrouter_obj = VirtualRouter(self._args.host_name, gsc_obj) vhost0_vmi_fq_name = vrouter_obj.get_fq_name() vhost0_vmi_fq_name.append('vhost0') vhost0_vmi_exists = True try: self._vnc_lib.virtual_machine_interface_read( fq_name=vhost0_vmi_fq_name) except NoIdError: vhost0_vmi_exists = False if vhost0_vmi_exists: self._vnc_lib.virtual_machine_interface_delete( fq_name=vhost0_vmi_fq_name) print(" Deleted vhost0 vmi %s " % vhost0_vmi_fq_name) else: print(" No vhost0 vmi found ")
def _pre_create_virtual_router(self): # create virtual_router_red virtual_router_red = VirtualRouter(name='test-virtual-router-red') virtual_router_red.set_display_name(self.node_red_hostname) self.physnet = "test-physnet-red" virtual_router_red.set_virtual_router_sriov_physical_networks( KeyValuePairs( key_value_pair=[ KeyValuePair( key=self.physnet, value=self.port_red_display_name)])) virtual_router_red_uuid = \ self.api.virtual_router_create(virtual_router_red) self.virtual_router_red = \ self.api.virtual_router_read(id=virtual_router_red_uuid) # create virtual_router_green virtual_router_green = VirtualRouter(name='test-virtual-router-green') virtual_router_green.set_display_name(self.node_green_hostname) virtual_router_green.set_virtual_router_sriov_physical_networks( KeyValuePairs( key_value_pair=[ KeyValuePair( key=self.physnet, value=self.port_green_display_name)])) virtual_router_green_uuid = \ self.api.virtual_router_create(virtual_router_green) self.virtual_router_green = \ self.api.virtual_router_read(id=virtual_router_green_uuid)
def add_vrouter(self): gsc_obj = self._global_system_config_obj if self._args.ip_fabric_subnet: ip_subnet, mask = self._args.ip_fabric_subnet.split('/') so = SubnetType(ip_subnet, int(mask)) sl = gsc_obj.get_ip_fabric_subnets() if sl is None: gsc_obj.set_ip_fabric_subnets(SubnetListType([so])) self._vnc_lib.global_system_config_update(gsc_obj) elif so not in sl.subnet: sl.subnet.append(so) gsc_obj.set_ip_fabric_subnets(sl) self._vnc_lib.global_system_config_update(gsc_obj) vrouter_obj = VirtualRouter( self._args.host_name, gsc_obj, virtual_router_ip_address=self._args.host_ip) vrouter_exists = True try: vrouter_obj = self._vnc_lib.virtual_router_read( fq_name=vrouter_obj.get_fq_name()) except NoIdError: vrouter_exists = False if self._args.sub_cluster_name: sub_cluster_obj = SubCluster(self._args.sub_cluster_name) try: sub_cluster_obj = self._vnc_lib.sub_cluster_read( fq_name=sub_cluster_obj.get_fq_name()) except NoIdError: raise RuntimeError("Sub cluster has to be provisioned first") vrouter_obj.add_sub_cluster(sub_cluster_obj) # Configure router type if self._args.router_type: vrouter_obj.set_virtual_router_type(self._args.router_type) if self._args.dpdk_enabled: vrouter_obj.set_virtual_router_dpdk_enabled(True) else: vrouter_obj.set_virtual_router_dpdk_enabled(False) # Configure sirov physical networks if self._args.sriov_physnets: vrouter_obj.set_virtual_router_sriov_physical_networks( self._args.sriov_physnets) if vrouter_exists: self.vrouter_fq_name = vrouter_obj.get_fq_name() self._vnc_lib.virtual_router_update(vrouter_obj) else: try: self.vrouter_fq_name = vrouter_obj.get_fq_name() self._vnc_lib.virtual_router_create(vrouter_obj) except RefsExistError: print("Already created!")