def test_attach_vmi_to_vpg(vmi_service, vnc_api_client, vmi_model, vnc_fabric): vnc_vpg = vnc_api.VirtualPortGroup(parent_obj=vnc_fabric) vnc_api_client.read_vpg.return_value = vnc_vpg vmi_service.attach_vmi_to_vpg(vmi_model) assert len(vnc_vpg.virtual_machine_interface_refs) == 1
def test_attach_no_vmi(vmi_service, vnc_api_client, vmi_model, vnc_fabric): vnc_vpg = vnc_api.VirtualPortGroup(parent_obj=vnc_fabric) vnc_api_client.read_vpg.return_value = vnc_vpg vnc_api_client.read_vmi.return_value = None vmi_service.attach_vmi_to_vpg(vmi_model) assert not vnc_vpg.get_virtual_machine_interface_refs() vnc_api_client.update_vpg.assert_not_called()
def test_attach_vmi_to_vpg(vmi_service, vnc_api_client, vmi_model, vnc_fabric): vnc_vmi = mock.Mock() vnc_api_client.read_vmi.return_value = vnc_vmi vnc_vpg = vnc_api.VirtualPortGroup(parent_obj=vnc_fabric) vnc_api_client.read_vpg.return_value = vnc_vpg vmi_service.attach_vmi_to_vpg(vmi_model) assert len(vnc_vpg.virtual_machine_interface_refs) == 1 vnc_api_client.create_vmi_bindings.assert_called_once_with( vnc_vmi, vnc_vpg)
def test_update_pis_empty_refs(vpg_service, vnc_api_client, fabric): pr = vnc_api.PhysicalRouter("qfx-1") pi = vnc_api.PhysicalInterface(name="pi-1", parent_obj=pr) pi.set_uuid("pi-1-uuid") previous_vpg = vnc_api.VirtualPortGroup(parent_obj=fabric) current_pis = [pi] vpg_service.update_pis_for_vpg(previous_vpg, current_pis) vnc_api_client.detach_pis_from_vpg.assert_called_once_with( previous_vpg, []) vnc_api_client.attach_pis_to_vpg.assert_called_once_with( previous_vpg, [pi])
def test_update_pis(vpg_service, vnc_api_client, fabric): pr = vnc_api.PhysicalRouter("qfx-1") pi_1 = vnc_api.PhysicalInterface(name="pi-1", parent_obj=pr) pi_2 = vnc_api.PhysicalInterface(name="pi-2", parent_obj=pr) pi_3 = vnc_api.PhysicalInterface(name="pi-3", parent_obj=pr) pi_1.set_uuid("pi-1-uuid") pi_2.set_uuid("pi-2-uuid") pi_3.set_uuid("pi-3-uuid") previous_vpg = vnc_api.VirtualPortGroup(parent_obj=fabric) previous_vpg.add_physical_interface(pi_1) previous_vpg.add_physical_interface(pi_2) current_pis = [pi_2, pi_3] vpg_service.update_pis_for_vpg(previous_vpg, current_pis) vnc_api_client.detach_pis_from_vpg.assert_called_once_with( previous_vpg, ["pi-1-uuid"]) vnc_api_client.attach_pis_to_vpg.assert_called_once_with( previous_vpg, [pi_3])
def vnc_vpg(vnc_test_client): vpg = vnc_api.VirtualPortGroup(name="esxi-1_dvs-1", parent_obj=vnc_test_client.fabric) vpg.set_uuid(models.generate_uuid(vpg.name)) vpg.set_id_perms(constants.ID_PERMS) return vpg
obj_2 = vnc_api.IpamSubnetType() obj_3 = vnc_api.SubnetType() obj_3.set_ip_prefix(ip_prefix) obj_3.set_ip_prefix_len('24') obj_2.set_subnet(obj_3) obj_2.set_enable_dhcp(False) obj_2.set_addr_from_start(True) obj_2.set_dns_server_address(str(dns_ip)) obj_1.add_ipam_subnets(obj_2) obj_0.add_network_ipam(my_ipam, obj_1) obj_0.set_virtual_network_category('routed') vn_id = vh.virtual_network_create(obj_0) my_vn_ids.append(vn_id) print ("Creating a VPG") my_vpg=vnc_api.VirtualPortGroup(name='my-vpg',parent_obj=my_fab) my_vpg.set_virtual_port_group_type('access') obj_1 = vnc_api.VpgInterfaceParametersType() for my_pi in my_pis: my_vpg.add_physical_interface(my_pi, obj_1) my_vpg_id = vh.virtual_port_group_create(my_vpg) if len(tag_list)!=len(my_vn_ids): print ("ERROR: There doesn't seem to be a correct mapping between VMIs and tags") print ("Creating VMIs") for my_vn_id in my_vn_ids: my_vn = vh.virtual_network_read(id=my_vn_id) vmi_name = 'vmi_' + str(my_vn_ids.index(my_vn_id)) my_vmi=vnc_api.VirtualMachineInterface(name=vmi_name,parent_obj=my_proj) my_vmi.add_virtual_network(my_vn)
def to_vnc_vpg(self, fabric): vnc_vpg = vnc_api.VirtualPortGroup(name=self.name, parent_obj=fabric) vnc_vpg.set_uuid(self.uuid) vnc_vpg.set_id_perms(const.ID_PERMS) return vnc_vpg