示例#1
0
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
示例#2
0
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)
示例#4
0
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])
示例#5
0
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
示例#7
0
    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)
示例#8
0
 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