def test_exception_returns():
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/objects-users/unknown',
                  json={"detail": "Not found."},
                  status=404)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/objects-users/unknown',
                  json={},
                  status=500)

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.get_by_uuid(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
        assert str(e) == "API Response Error (404): Not found."
        assert e.response == {
            'data': {
                'detail': 'Not found.'
            },
            'status_code': 404
        }
    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.get_by_uuid(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 500
        assert e.response == {'data': {}, 'status_code': 500}
        assert str(e) == "API Response Error (500): {}"
Esempio n. 2
0
def test_network_delete():
    uuid = "2db69ba3-1864-4608-853a-0771b6885a3a"
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/networks/unknown',
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        status=204)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_URL + '/networks/unknown',
        json={
            "detail": "Not found."
        },
        status=404)

    cloudscale = Cloudscale(api_token="token")
    network = cloudscale.network.delete(uuid=uuid)
    assert network is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.network.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 3
0
def test_server_groups_delete():
    uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c"
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json=SERVER_GROUP_RESP,
        status=200)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/server-groups/unknown',
        json=SERVER_GROUP_RESP,
        status=200)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        status=204)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_URL + '/server-groups/unknown',
        json={
            "detail": "Not found."
        },
        status=404)

    cloudscale = Cloudscale(api_token="token")
    server_group = cloudscale.server_group.delete(uuid=uuid)
    assert server_group is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.server_group.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 4
0
def test_objects_user_update():
    uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15"
    display_name = "alan"
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/objects-users/unknown',
                  json={},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    objects_user = cloudscale.objects_user.update(uuid=uuid,
                                                  display_name=display_name)
    assert objects_user['display_name'] == display_name
    assert objects_user['id'] == uuid

    try:
        cloudscale = Cloudscale(api_token="token")
        objects_user = cloudscale.objects_user.update(
            uuid="unknown", display_name=display_name)
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 5
0
def test_objects_user_delete():
    uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15"
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/objects-users/unknown',
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/objects-users/' + uuid,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/objects-users/unknown',
                  json={},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    objects_user = cloudscale.objects_user.delete(uuid=uuid)
    assert objects_user is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 6
0
def test_floating_ip_delete():
    network_id = "192.0.2.123"
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/floating-ips/unknown',
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/floating-ips/unknown',
                  json={"detail": "Not found."},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    floating_ip = cloudscale.floating_ip.delete(uuid=network_id)
    assert floating_ip is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.floating_ip.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 7
0
def test_objects_user_create():
    display_name = "alan"

    responses.add(responses.POST,
                  CLOUDSCALE_API_URL + '/objects-users',
                  json=OBJECTS_USER_RESP,
                  status=201)
    responses.add(responses.POST,
                  CLOUDSCALE_API_URL + '/objects-users',
                  json={},
                  status=500)
    responses.add(responses.POST,
                  CLOUDSCALE_API_URL + '/objects-users',
                  json=OBJECTS_USER_RESP,
                  status=201)
    responses.add(responses.POST,
                  CLOUDSCALE_API_URL + '/objects-users',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    cloudscale.objects_user.create(display_name=display_name, )

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.create(display_name=display_name, )
    except CloudscaleApiException as e:
        assert e.status_code == 500
def test_subnet_delete():
    uuid = "33333333-1864-4608-853a-0771b6885a3a"
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json=SUBNET_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/subnets/unknown',
                  json=SUBNET_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_URL + '/subnets/unknown',
                  json={"detail": "Not found."},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    subnet = cloudscale.subnet.delete(uuid=uuid)
    assert subnet is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.subnet.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404
Esempio n. 9
0
def test_network_delete():
    uuid = "2db69ba3-1864-4608-853a-0771b6885a3a"
    responses.add(
        responses.GET,
        CLOUDSCALE_API_ENDPOINT + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_ENDPOINT + '/networks/unknown',
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_ENDPOINT + '/networks/' + uuid,
        status=204)
    responses.add(
        responses.DELETE,
        CLOUDSCALE_API_ENDPOINT + '/networks/unknown',
        json={
            "detail": "Not found."
        },
        status=404)

    cloudscale = Cloudscale(api_token="token")
    network = cloudscale.network.delete(uuid=uuid)
    assert network is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.network.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'network',
        '-a', 'token',
        'delete',
        uuid,
    ])
    assert result.exit_code == 1
    runner = CliRunner()
    result = runner.invoke(cli, [
        'network',
        '-a', 'token',
        'delete',
        uuid,
        '--force',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'network',
        '-a', 'token',
        'delete',
        '--force',
        'unknown',
    ])
    assert result.exit_code > 0
Esempio n. 10
0
def test_floating_ip_delete():
    network_id = "192.0.2.123"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips/unknown',
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips/' + network_id,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips/unknown',
                  json={"detail": "Not found."},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    floating_ip = cloudscale.floating_ip.delete(uuid=network_id)
    assert floating_ip is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.floating_ip.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'floating-ip',
        '-a',
        'token',
        'delete',
        network_id,
    ])
    assert result.exit_code == 1
    runner = CliRunner()
    result = runner.invoke(cli, [
        'floating-ip',
        '-a',
        'token',
        'delete',
        network_id,
        '--force',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'floating-ip',
        '-a',
        'token',
        'delete',
        '--force',
        'unknown',
    ])
    assert result.exit_code > 0
Esempio n. 11
0
def test_server_delete():
    uuid = "47cec963-fcd2-482f-bdb6-24461b2d47b1"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/servers/' + uuid,
                  json=SERVER_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/servers/unknown',
                  json=SERVER_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/servers/' + uuid,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/servers/unknown',
                  json={"detail": "Not found."},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    server = cloudscale.server.delete(uuid=uuid)
    assert server is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.server.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'server',
        '-a',
        'token',
        'delete',
        uuid,
    ])
    assert result.exit_code == 1
    runner = CliRunner()
    result = runner.invoke(cli, [
        'server',
        '-a',
        'token',
        'delete',
        '--force',
        uuid,
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'server',
        '-a',
        'token',
        'delete',
        '--force',
        'unknown',
    ])
    assert result.exit_code > 0
Esempio n. 12
0
def test_server_groups_delete():
    uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups/' + uuid,
                  json=SERVER_GROUP_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups/unknown',
                  json=SERVER_GROUP_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups/' + uuid,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups/unknown',
                  json={"detail": "Not found."},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    server_group = cloudscale.server_group.delete(uuid=uuid)
    assert server_group is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.server_group.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'server-group',
        '-a',
        'token',
        'delete',
        uuid,
    ])
    assert result.exit_code == 1
    result = runner.invoke(cli, [
        'server-group',
        '-a',
        'token',
        'delete',
        '--force',
        uuid,
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'server-group',
        '-a',
        'token',
        'delete',
        '--force',
        'unknown',
    ])
    assert result.exit_code > 0
Esempio n. 13
0
def test_objects_user_delete():
    uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown',
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid,
                  status=204)
    responses.add(responses.DELETE,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown',
                  json={},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    objects_user = cloudscale.objects_user.delete(uuid=uuid)
    assert objects_user is None

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.delete(uuid="unknown")
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'delete',
        uuid,
    ])
    assert result.exit_code == 1
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'delete',
        '--force',
        uuid,
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'delete',
        '--force',
        'unknown',
    ])
    assert result.exit_code > 0
Esempio n. 14
0
def test_objects_user_update():
    uuid = "6fe39134bf4178747eebc429f82cfafdd08891d4279d0d899bc4012db1db6a15"
    display_name = "alan"
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/' + uuid,
                  json=OBJECTS_USER_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users/unknown',
                  json={},
                  status=404)

    cloudscale = Cloudscale(api_token="token")
    objects_user = cloudscale.objects_user.update(uuid=uuid,
                                                  display_name=display_name)
    assert objects_user['display_name'] == display_name
    assert objects_user['id'] == uuid

    try:
        cloudscale = Cloudscale(api_token="token")
        objects_user = cloudscale.objects_user.update(
            uuid="unknown", display_name=display_name)
    except CloudscaleApiException as e:
        assert e.status_code == 404

    runner = CliRunner()
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'update',
        uuid,
        '--display-name',
        display_name,
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'update',
        'unknown',
        '--display-name',
        display_name,
    ])
    assert result.exit_code > 0
    def test_config_ini(self):
        if self.CLOUDSCALE_CONFIG:

            cloudscale = Cloudscale(profile="test")
            assert cloudscale.api_token == "test_token"

            cloudscale = Cloudscale()
            assert cloudscale.api_token == "default_token"

            try:
                cloudscale = Cloudscale(profile="does-not-exist")
            except CloudscaleException as e:
                assert str(e).startswith(
                    "Profile 'does-not-exist' not found in config files:")
Esempio n. 16
0
def test_objects_user_create():
    display_name = "alan"

    responses.add(responses.POST,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users',
                  json=OBJECTS_USER_RESP,
                  status=201)
    responses.add(responses.POST,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users',
                  json={},
                  status=500)
    responses.add(responses.POST,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users',
                  json=OBJECTS_USER_RESP,
                  status=201)
    responses.add(responses.POST,
                  CLOUDSCALE_API_ENDPOINT + '/objects-users',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    cloudscale.objects_user.create(display_name=display_name, )

    try:
        cloudscale = Cloudscale(api_token="token")
        cloudscale.objects_user.create(display_name=display_name, )
    except CloudscaleApiException as e:
        assert e.status_code == 500

    runner = CliRunner()
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'create',
        '--display-name',
        display_name,
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'objects-user',
        '-a',
        'token',
        'create',
        '--display-name',
        display_name,
    ])
    assert result.exit_code > 0
Esempio n. 17
0
def test_flavor_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/flavors',
                  json=[FLAVOR_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/flavors',
                  json=[FLAVOR_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/flavors',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    flavors = cloudscale.flavor.get_all()
    assert flavors[0]['slug'] == "flex-2"
    assert flavors[0]['name'] == "Flex-2"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'flavor',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'flavor',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
def test_subnet_update():
    uuid = "33333333-1864-4608-853a-0771b6885a3a"
    dns_servers = ['185.79.232.101', '185.79.232.102']

    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json=SUBNET_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json=SUBNET_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json=SUBNET_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json=SUBNET_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/subnets/' + uuid,
                  json={},
                  status=500)
    cloudscale = Cloudscale(api_token="token")
    subnet = cloudscale.subnet.update(uuid=uuid, dns_servers=dns_servers)
    assert subnet['uuid'] == uuid
    assert subnet['dns_servers'] == dns_servers
Esempio n. 19
0
def test_floating_ip_get_all():
    network_id = "192.0.2.123"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips',
                  json=[FLOATING_IP_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips',
                  json=[FLOATING_IP_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/floating-ips',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    floating_ips = cloudscale.floating_ip.get_all()
    assert floating_ips[0]['network'] == network_id + '/32'

    runner = CliRunner()
    result = runner.invoke(cli, [
        'floating-ip',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'floating-ip',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 20
0
def test_server_groups_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups',
                  json=[SERVER_GROUP_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups',
                  json=[SERVER_GROUP_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/server-groups',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    server_groups = cloudscale.server_group.get_all()
    assert server_groups[0]['name'] == "load balancers"
    assert server_groups[0]['uuid'] == "e3b63018-fad6-45f2-9f57-3ea0da726d8c"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'server-group',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'server-group',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 21
0
def test_volume_update():
    uuid = "2db69ba3-1864-4608-853a-0771b6885a3a"
    name = "capitano-root"
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/volumes/' + uuid,
                  json=VOLUME_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/volumes/' + uuid,
                  json=VOLUME_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/volumes/' + uuid,
                  json=VOLUME_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/volumes/' + uuid,
                  json=VOLUME_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/volumes/' + uuid,
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    volume = cloudscale.volume.update(uuid=uuid, name=name)
    assert volume['name'] == name
    assert volume['uuid'] == uuid
Esempio n. 22
0
def test_floating_ip_update():
    network_id = "192.0.2.123"
    reverse_ptr = "192.0.2.123.cust.cloudscale.ch"
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=204)
    responses.add(responses.GET,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json=FLOATING_IP_RESP,
                  status=200)
    responses.add(responses.PATCH,
                  CLOUDSCALE_API_URL + '/floating-ips/' + network_id,
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    floating_ip = cloudscale.floating_ip.update(uuid=network_id,
                                                reverse_ptr=reverse_ptr)
    assert floating_ip['network'] == network_id + '/32'
    assert floating_ip['reverse_ptr'] == reverse_ptr
Esempio n. 23
0
def test_volume_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/volumes',
                  json=[VOLUME_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/volumes',
                  json=[VOLUME_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/volumes',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    volumes = cloudscale.volume.get_all()
    assert volumes[0]['name'] == "capitano-root"
    assert volumes[0]['uuid'] == "2db69ba3-1864-4608-853a-0771b6885a3a"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'volume',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'volume',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 24
0
def test_region_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/regions',
                  json=[REGION_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/regions',
                  json=[REGION_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/regions',
                  json={},
                  status=500)
    cloudscale = Cloudscale(api_token="token")
    regions = cloudscale.region.get_all()
    assert regions[0]['slug'] == "rma"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'region',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'region',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 25
0
def test_image_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/images',
                  json=[IMAGE_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/images',
                  json=[IMAGE_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/images',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    images = cloudscale.image.get_all()
    assert images[0]['slug'] == "arch-18.06"
    assert images[0]['name'] == "Arch 18.06"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'image',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'image',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 26
0
def test_network_update():
    uuid = "2db69ba3-1864-4608-853a-0771b6885a3a"
    name = "my-network-name"
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=204)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=204)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json=NETWORK_RESP,
        status=200)
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/networks/' + uuid,
        json={},
        status=500)

    cloudscale = Cloudscale(api_token="token")
    network = cloudscale.network.update(uuid=uuid, name=name)
    assert network['name'] == name
    assert network['uuid'] == uuid
Esempio n. 27
0
    def __init__(self, cloud_resource_name=None, api_token=None, profile=None, debug=False, output="table", verbose=False):
        try:
            self._client = Cloudscale(
                api_token=api_token,
                profile=profile,
                debug=debug
            )
        except Exception as e:
            click.echo(e, err=True)
            sys.exit(1)

        self._output = output

        self.cloud_resource_name = cloud_resource_name
        self.verbose = verbose
        self.headers = []

        # Alternate key to look for the resource as 'name'
        self.resource_name_key = 'name'

        # Some resource have a different identifier name
        self.resource_uuid_name = 'UUID'

        # Usually we want to sort the table by the key used as name
        self.resource_table_sort_key = None

        self.response_transform_json = None
Esempio n. 28
0
def test_server_get_all():
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/servers',
                  json=[SERVER_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/servers',
                  json=[SERVER_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/servers',
                  json={"detail": "Server error."},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    servers = cloudscale.server.get_all()
    assert servers[0]['name'] == "db-master"
    assert servers[0]['uuid'] == "47cec963-fcd2-482f-bdb6-24461b2d47b1"
    assert servers[0]['tags']['project'] == "gemini"

    runner = CliRunner()
    result = runner.invoke(cli, [
        'server',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'server',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 29
0
def test_subnet_get_all():
    uuid = "33333333-1864-4608-853a-0771b6885a3a"
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/subnets',
                  json=[SUBNET_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/subnets',
                  json=[SUBNET_RESP],
                  status=200)
    responses.add(responses.GET,
                  CLOUDSCALE_API_ENDPOINT + '/subnets',
                  json={},
                  status=500)

    cloudscale = Cloudscale(api_token="token")
    subnets = cloudscale.subnet.get_all()
    assert subnets[0]['uuid'] == uuid

    runner = CliRunner()
    result = runner.invoke(cli, [
        'subnet',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code == 0
    result = runner.invoke(cli, [
        'subnet',
        '-a',
        'token',
        'list',
    ])
    assert result.exit_code > 0
Esempio n. 30
0
def test_server_groups_update():
    uuid = "e3b63018-fad6-45f2-9f57-3ea0da726d8c"
    name = "load balancers"
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json=SERVER_GROUP_RESP,
        status=204)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json=SERVER_GROUP_RESP,
        status=200)
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json=SERVER_GROUP_RESP,
        status=204)
    responses.add(
        responses.GET,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json=SERVER_GROUP_RESP,
        status=200)
    responses.add(
        responses.PATCH,
        CLOUDSCALE_API_URL + '/server-groups/' + uuid,
        json={},
        status=500)
    cloudscale = Cloudscale(api_token="token")
    server_group = cloudscale.server_group.update(uuid=uuid, name=name)
    assert server_group['name'] == name
    assert server_group['uuid'] == uuid