Exemple #1
0
def detach_volume(compute, attachment):
    print('Detaching volume')
    response = compute.detach_volume(attachment.id)
    assert response.status == 204

    response = compute.get_volume_attachment(attachment.id)
    oraclebmc.wait_until(compute, response, 'lifecycle_state', 'DETACHED')
Exemple #2
0
def terminate_instance(compute, instance):
    print('Terminating instance')
    response = compute.terminate_instance(instance.id)
    assert response.status == 204

    response = compute.get_instance(instance.id)
    oraclebmc.wait_until(compute, response, 'lifecycle_state', 'TERMINATED')
def delete_subnet(virtual_network, subnet):
    print('Deleting subnet')
    response = virtual_network.delete_subnet(subnet.id)
    assert response.status == 204

    with pytest.raises(oraclebmc.exceptions.ServiceError) as excinfo:
        response = virtual_network.get_subnet(subnet.id)
        oraclebmc.wait_until(virtual_network, response, 'lifecycle_state',
                             'TERMINATED')
    assert excinfo.value.status == 404
def delete_volume(block_storage, volume):
    print('Deleting volume')
    response = block_storage.delete_volume(volume.id)
    assert response.status == 204

    response = block_storage.get_volume(volume.id)
    oraclebmc.wait_until(block_storage,
                         response,
                         'lifecycle_state',
                         'TERMINATED',
                         max_wait_seconds=180)
def delete_cloud_network(virtual_network, vcn):
    print('Deleting vcn')
    response = virtual_network.delete_vcn(vcn.id)
    assert response.status == 204

    with pytest.raises(oraclebmc.exceptions.ServiceError) as excinfo:
        response = virtual_network.get_vcn(vcn.id)
        oraclebmc.wait_until(virtual_network,
                             response,
                             'lifecycle_state',
                             'TERMINATED',
                             max_wait_seconds=180)
    assert excinfo.value.status == 404
Exemple #6
0
def launch_instance(compute, compartment, test_id, availability_domain, subnet, public_key):
    print('Launching instance')

    request = oraclebmc.core.models.LaunchInstanceDetails()
    request.availability_domain = availability_domain
    request.compartment_id = compartment
    request.display_name = 'pythonsdk_tutorial_instance_' + test_id
    # ol7.1-base-0.0.1
    request.image_id = 'ocid1.image.oc1.phx.aaaaaaaa4wdx32cwjdjdasqyzatmvlxbef4673rs5y7cowvc3g3o7iwhmhfa'
    request.shape = 'x5-2.36.256'
    request.subnet_id = subnet.id
    request.metadata = {'ssh_authorized_keys': public_key}
    response = compute.launch_instance(request)

    assert response.status == 200
    assert 'PROVISIONING' == response.data.lifecycle_state

    response = compute.get_instance(response.data.id)
    instance = oraclebmc.wait_until(
        compute,
        response,
        'lifecycle_state',
        'RUNNING',
        max_wait_seconds=300
    ).data

    assert 'RUNNING' == instance.lifecycle_state
    return instance
def launch_instance(compute, compartment, test_id, availability_domain, subnet,
                    public_key):
    print('Launching instance')

    request = oraclebmc.core.models.LaunchInstanceDetails()
    request.availability_domain = availability_domain
    request.compartment_id = compartment
    request.display_name = 'pythonsdk_tutorial_instance_' + test_id
    # Oracle-Linux-7.3-2017.03.03-0
    request.image_id = 'ocid1.image.oc1.phx.aaaaaaaaevkccuto7ja4yhahz6rguhqbuomimqsig6sgxd55hjomzepyeqda'
    request.shape = 'VM.Standard1.2'
    request.subnet_id = subnet.id
    request.metadata = {'ssh_authorized_keys': public_key}
    response = compute.launch_instance(request)

    assert response.status == 200
    assert 'PROVISIONING' == response.data.lifecycle_state

    response = compute.get_instance(response.data.id)
    instance = oraclebmc.wait_until(compute,
                                    response,
                                    'lifecycle_state',
                                    'RUNNING',
                                    max_wait_seconds=300).data

    assert 'RUNNING' == instance.lifecycle_state
    return instance
Exemple #8
0
def update_route_table(virtual_network, test_id, vcn, gateway):
    print('Updating route table')
    route_rule = oraclebmc.core.models.RouteRule()
    route_rule.cidr_block = '0.0.0.0/0'
    route_rule.display_name = 'pythonsdk_route_rule_' + test_id
    route_rule.network_entity_id = gateway.id
    route_rule.network_entity_type = 'INTERNET_GATEWAY'

    request = oraclebmc.core.models.UpdateRouteTableDetails()
    request.route_rules = [route_rule]
    response = virtual_network.update_route_table(vcn.default_route_table_id, request)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.RouteTable

    response = virtual_network.get_route_table(vcn.default_route_table_id)
    oraclebmc.wait_until(virtual_network, response, 'lifecycle_state', 'AVAILABLE')
def attach_volume(compute, compartment, instance, volume):
    print('Attaching volume')
    request = oraclebmc.core.models.AttachIScsiVolumeDetails()
    request.compartment_id = compartment
    request.instance_id = instance.id
    request.volume_id = volume.id
    response = compute.attach_volume(request)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.IScsiVolumeAttachment

    response = compute.get_volume_attachment(response.data.id)
    attachment = oraclebmc.wait_until(compute, response, 'lifecycle_state',
                                      'ATTACHED').data
    return attachment
def log_public_ip_address(compute, virtual_network, compartment, instance):
    print('Getting public IP address')
    response = compute.list_vnic_attachments(compartment,
                                             instance_id=instance.id)
    assert response.status == 200
    assert len(response.data) > 0

    vnic_attachment = next(va for va in response.data
                           if va.instance_id == instance.id)

    # Just get the address for the first vnic attachment.
    response = virtual_network.get_vnic(vnic_attachment.vnic_id)
    response = oraclebmc.wait_until(virtual_network, response,
                                    'lifecycle_state', 'AVAILABLE')
    assert response.status == 200
    assert response.data.public_ip is not None
    print('Public IP Address: ' + response.data.public_ip)
def create_internet_gateway(virtual_network, compartment, test_id, vcn):
    print('Creating internet gateway')
    request = oraclebmc.core.models.CreateInternetGatewayDetails()
    request.display_name = 'pythonsdk_test_ig_' + test_id
    request.compartment_id = compartment
    request.is_enabled = True
    request.vcn_id = vcn.id
    response = virtual_network.create_internet_gateway(request)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.InternetGateway

    response = virtual_network.get_internet_gateway(response.data.id)
    gateway = oraclebmc.wait_until(virtual_network, response,
                                   'lifecycle_state', 'AVAILABLE').data

    return gateway
def create_cloud_network(virtual_network, compartment, test_id):
    print('Creating cloud network')
    request = oraclebmc.core.models.CreateVcnDetails()
    request.cidr_block = '10.0.0.0/16'
    request.display_name = 'pythonsdk_test_vcn_' + test_id
    request.compartment_id = compartment

    response = virtual_network.create_vcn(request)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.Vcn

    response = virtual_network.get_vcn(response.data.id)
    vcn = oraclebmc.wait_until(virtual_network, response, 'lifecycle_state',
                               'AVAILABLE').data

    assert 'AVAILABLE' == vcn.lifecycle_state
    return vcn
def create_subnet(virtual_network, compartment, test_id, availability_domain,
                  vcn):
    print('Creating subnet')
    request = oraclebmc.core.models.CreateSubnetDetails()
    request.cidr_block = '10.0.0.0/16'
    request.availability_domain = availability_domain
    request.display_name = 'pythonsdk_test_subnet_' + test_id
    request.compartment_id = compartment
    request.route_table_id = vcn.default_route_table_id
    request.vcn_id = vcn.id
    response = virtual_network.create_subnet(request)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.Subnet

    response = virtual_network.get_subnet(response.data.id)
    subnet = oraclebmc.wait_until(virtual_network, response, 'lifecycle_state',
                                  'AVAILABLE').data
    return subnet
def create_volume(block_storage, compartment, test_id, availability_domain):
    print('Creating volume')
    request = oraclebmc.core.models.CreateVolumeDetails()
    request.display_name = 'pythonsdk_volume_' + test_id
    request.compartment_id = compartment
    request.availability_domain = availability_domain
    response = block_storage.create_volume(request,
                                           opc_retry_token='testtoken' +
                                           test_id)

    assert response.status == 200
    assert type(response.data) is oraclebmc.core.models.Volume

    response = block_storage.get_volume(response.data.id)
    volume = oraclebmc.wait_until(block_storage,
                                  response,
                                  'lifecycle_state',
                                  'AVAILABLE',
                                  max_wait_seconds=180).data
    return volume