Пример #1
0
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
Пример #2
0
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'
Пример #3
0
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'
Пример #4
0
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'
Пример #5
0
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'
Пример #6
0
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'
Пример #7
0
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'
Пример #8
0
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'
Пример #9
0
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'
Пример #10
0
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'
Пример #11
0
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)'
Пример #12
0
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'
Пример #13
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'
Пример #14
0
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
Пример #15
0
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
Пример #16
0
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'
Пример #17
0
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
Пример #18
0
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'
Пример #19
0
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
Пример #20
0
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'
Пример #21
0
def test_not_found_by_id(rsps):
    vdc_id = '30000000-3000-3000-3000-300000000000'
    with pytest.raises(NotFoundEx):
        Vdc.get_object(vdc_id)