def test_create(rsps): project_id = 'a737cd39-e7a7-46b8-a756-fb8ccceeed8f' project = Project.get_object(project_id) hypervisor = next(h for h in project.get_available_hypervisors() \ if h.type == 'kvm') vdc = Vdc(name='Brand New Vdc', project=project, hypervisor=hypervisor) vdc.create() assert b'Brand New Vdc' in rsps.calls[1].request.body assert vdc.id assert vdc.name == 'Brand New Vdc' assert vdc.project.id == project.id
def test_get_by_id(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) assert isinstance(vdc, Vdc) assert vdc.id == vdc_id assert vdc.name == 'vmWare'
def test_create_with_fip(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) template = Template.get_object('70722cb1-6e03-4900-ad78-b680205cd002') storage_profile = StorageProfile.get_object( '563a9b7c-419a-4630-9ac8-8022d740f12a') network = Network.get_object('b9e6df93-0d04-4dac-a3c1-1a8539b8e445') disk_1 = Disk(storage_profile=storage_profile, name='Root disk', size=10) password_field = next(f for f in template.get_fields() \ if f.system_alias == 'password') vm = Vm(name='My New Vm 2', vdc=vdc, cpu=1, ram=2, template=template, ports=[Port(network=network)], disks=[disk_1], metadata=[{ 'field': password_field, 'value': 'On3_tw0_thReE' }], floating=Port()) vm.create() assert vm.floating.ip_address == '74.53.11.5'
def test_get_project(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) project = vdc.project assert isinstance(project, Project) assert project.name == 'Project New Name'
def test_rename(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) vdc.name = 'Vdc New Name' vdc.save() assert vdc.name == 'Vdc New Name'
def test_get_routers(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) routers = vdc.get_routers() assert len(routers) == 1 assert isinstance(routers[0], Router) assert routers[0].name == 'Router'
def test_get_networks(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) networks = vdc.get_networks() assert len(networks) == 1 assert isinstance(networks[0], Network) assert networks[0].name == 'Default'
def test_get_get_firewall_templates(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) firewall_templates = vdc.get_firewall_templates() assert len(firewall_templates) == 7 assert isinstance(firewall_templates[0], FirewallTemplate) assert firewall_templates[0].name == 'Разрешить WEB'
def test_get_storage_profiles(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) storage_profiles = vdc.get_storage_profiles() assert len(storage_profiles) == 1 assert isinstance(storage_profiles[0], StorageProfile) assert storage_profiles[0].name == 'SATA VMWARE'
def test_get_vms(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) vms = vdc.get_vms() assert len(vms) == 3 assert isinstance(vms[0], Vm) assert vms[0].name == 'vm3'
def test_get_templates(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) templates = vdc.get_templates() assert len(templates) == 16 assert isinstance(templates[0], Template) assert templates[0].name == 'Ubuntu 18 (cloud)'
def test_get_disks(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) disks = vdc.get_disks() assert len(disks) == 7 assert isinstance(disks[0], Disk) assert disks[0].scsi == '0:0'
def test_get_ports(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) ports = vdc.get_ports() assert len(ports) == 7 assert isinstance(ports[0], Port) assert ports[0].ip_address == '10.0.1.1' assert ports[0].type == 'router_int'
def test_create(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) network = Network(name='Brand New Network', vdc=vdc) network.create() assert network.id assert network.name == 'Brand New Network' assert network.vdc.id == vdc.id
def test_create(rsps): vdc_id = 'e5d9a192-c5da-485a-b134-1b14ec9c57d9' vdc = Vdc.get_object(vdc_id) template = Template.get_object('70722cb1-6e03-4900-ad78-b680205cd002') storage_profile = StorageProfile.get_object( '563a9b7c-419a-4630-9ac8-8022d740f12a') network = Network.get_object('b9e6df93-0d04-4dac-a3c1-1a8539b8e445') disk_1 = Disk(storage_profile=storage_profile, name='Main disk #1', size=10) disk_2 = Disk(storage_profile=storage_profile, name='Second disk #2', size=12) firewall_template = next(f for f in vdc.get_firewall_templates() \ if f.name == 'По-умолчанию') ports = [Port(network=network, fw_templates=[firewall_template])] password_field = next(f for f in template.get_fields() \ if f.system_alias == 'password') metadata = [{'field': password_field, 'value': 'On3_tw0_thReE'}] vm = Vm(name='My New Vm', vdc=vdc, cpu=2, ram=4, template=template, ports=ports, disks=[disk_1, disk_2], metadata=metadata) assert vm.template.id == template.id assert len(vm.ports) == 1 assert isinstance(vm.ports[0].network, Network) assert len(vm.disks) == 2 assert isinstance(vm.disks[0], Disk) vm.create() assert vm.template.id == template.id assert len(vm.ports) == 1 assert isinstance(vm.ports[0].network, Network) assert len(vm.ports[0].fw_templates) == 1 assert vm.ports[0].fw_templates[ 0].id == '00000000-0000-0000-0000-000000000000' assert len(vm.disks) == 2 assert isinstance(vm.disks[0], Disk) assert vm.id assert vm.name == 'My New Vm' assert vm.vdc.id == vdc.id assert vm.floating is None
def test_create_with_fip(rsps): vdc_id = '70eb1ec5-3e54-4df8-a096-ec26526ec89b' vdc = Vdc.get_object(vdc_id) network_id = '9c7d5517-e920-4df0-aced-0146c3f67ff8' router = Router(name='New router with fip', vdc=vdc, ports=[Port(network=network_id)], floating=Port()) router.create() assert router.name == 'New router with fip' assert router.floating.ip_address == '74.53.11.4'
def test_create(rsps): vdc_id = '70eb1ec5-3e54-4df8-a096-ec26526ec89b' vdc = Vdc.get_object(vdc_id) network_id = '9c7d5517-e920-4df0-aced-0146c3f67ff8' router = Router(name='New router', vdc=vdc, ports=[Port(network=network_id)]) router.create() assert router.id assert router.name == 'New router' assert router.vdc.id == vdc.id assert router.floating is None
def test_create_with_subnet(rsps): vdc_id = '70eb1ec5-3e54-4df8-a096-ec26526ec89b' vdc = Vdc.get_object(vdc_id) subnet = Subnet(cidr='10.49.1.0/24', gateway='10.49.1.1', start_ip='10.49.1.2', end_ip='10.49.1.254', enable_dhcp=True) network = Network(name='Brand New Network with subnet', vdc=vdc, subnets=[subnet]) network.create() assert len(network.subnets) == 1 assert network.name == 'Brand New Network with subnet'
def test_get_many_vms(rsps): vdc_id = '70eb1ec5-3e54-4df8-a096-ec26526ec89b' vdc = Vdc.get_object(vdc_id) vms = vdc.get_vms() assert len(vms) == 18
def test_delete(rsps): vdc = Vdc(id='fd20bb3b-b37c-4d77-8f3d-27c167b0d890') vdc.destroy() assert vdc.id is None assert rsps.calls[0].request.method == 'DELETE'
def test_not_found_by_id(rsps): vdc_id = '30000000-3000-3000-3000-300000000000' with pytest.raises(NotFoundEx): Vdc.get_object(vdc_id)