fog-google 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.codecov.yml +2 -0
- data/.rubocop.yml +4 -1
- data/CHANGELOG.md +51 -0
- data/CONTRIBUTING.md +85 -17
- data/CONTRIBUTORS.md +6 -4
- data/Gemfile +6 -0
- data/MIGRATING.md +1 -11
- data/README.md +15 -4
- data/ci/credentials.yml.template +2 -0
- data/ci/docker-image/Dockerfile +1 -3
- data/ci/pipeline.yml +117 -12
- data/ci/tasks/run-int.sh +3 -2
- data/ci/tasks/run-int.yml +1 -1
- data/examples/create_instance.rb +40 -25
- data/examples/get_list_images.rb +1 -1
- data/examples/load-balance.rb +1 -1
- data/examples/metadata.rb +1 -1
- data/examples/network.rb +1 -1
- data/fog-google.gemspec +8 -6
- data/lib/fog/compute/google/models/address.rb +1 -1
- data/lib/fog/compute/google/models/backend_service.rb +1 -1
- data/lib/fog/compute/google/models/disk.rb +2 -2
- data/lib/fog/compute/google/models/firewall.rb +23 -3
- data/lib/fog/compute/google/models/forwarding_rule.rb +1 -1
- data/lib/fog/compute/google/models/global_address.rb +1 -1
- data/lib/fog/compute/google/models/global_forwarding_rule.rb +1 -1
- data/lib/fog/compute/google/models/http_health_check.rb +2 -2
- data/lib/fog/compute/google/models/image.rb +1 -1
- data/lib/fog/compute/google/models/instance_group_manager.rb +1 -1
- data/lib/fog/compute/google/models/instance_template.rb +1 -1
- data/lib/fog/compute/google/models/route.rb +1 -1
- data/lib/fog/compute/google/models/server.rb +59 -5
- data/lib/fog/compute/google/models/servers.rb +1 -1
- data/lib/fog/compute/google/models/ssl_certificate.rb +1 -1
- data/lib/fog/compute/google/models/subnetwork.rb +1 -1
- data/lib/fog/compute/google/models/target_http_proxy.rb +1 -1
- data/lib/fog/compute/google/models/target_https_proxy.rb +14 -1
- data/lib/fog/compute/google/models/target_instance.rb +1 -1
- data/lib/fog/compute/google/models/target_pool.rb +1 -1
- data/lib/fog/compute/google/models/url_map.rb +1 -1
- data/lib/fog/compute/google/requests/insert_server.rb +1 -1
- data/lib/fog/dns/google/models/record.rb +1 -1
- data/lib/fog/google/models/sql/instance.rb +1 -1
- data/lib/fog/google/models/sql/user.rb +1 -1
- data/lib/fog/google/version.rb +1 -1
- data/lib/fog/storage/google_json.rb +4 -1
- data/lib/fog/storage/google_json/mock.rb +3 -0
- data/lib/fog/storage/google_json/models/file.rb +2 -2
- data/lib/fog/storage/google_json/models/files.rb +2 -2
- data/lib/fog/storage/google_json/real.rb +3 -0
- data/lib/fog/storage/google_json/requests/get_object_http_url.rb +6 -7
- data/lib/fog/storage/google_json/requests/get_object_https_url.rb +6 -7
- data/lib/fog/storage/google_json/requests/get_object_url.rb +4 -4
- data/lib/fog/storage/google_json/utils.rb +7 -1
- data/lib/fog/storage/google_xml/models/file.rb +2 -2
- data/lib/fog/storage/google_xml/models/files.rb +4 -4
- data/lib/fog/storage/google_xml/requests/get_object_http_url.rb +8 -7
- data/lib/fog/storage/google_xml/requests/get_object_https_url.rb +7 -7
- data/lib/fog/storage/google_xml/requests/get_object_url.rb +5 -4
- data/lib/fog/storage/google_xml/utils.rb +7 -1
- data/tasks/test.rake +45 -23
- data/test/helpers/integration_test_helper.rb +67 -0
- data/test/helpers/test_helper.rb +14 -10
- data/test/integration/compute/core_compute/test_coverage.rb +6 -0
- data/test/integration/compute/{test_disk_types.rb → core_compute/test_disk_types.rb} +0 -0
- data/test/integration/compute/{disks/test_compute_disk_models.rb → core_compute/test_disks.rb} +0 -0
- data/test/integration/compute/{test_images.rb → core_compute/test_images.rb} +0 -0
- data/test/integration/compute/core_compute/test_machine_types.rb +42 -0
- data/test/integration/compute/core_compute/test_operations.rb +27 -0
- data/test/integration/compute/core_compute/test_projects.rb +19 -0
- data/test/integration/compute/{test_regions.rb → core_compute/test_regions.rb} +0 -0
- data/test/integration/compute/core_compute/test_servers.rb +109 -0
- data/test/integration/compute/{test_snapshots.rb → core_compute/test_snapshots.rb} +0 -0
- data/test/integration/compute/core_compute/test_zones.rb +35 -0
- data/test/integration/compute/core_networking/test_addresses.rb +84 -0
- data/test/integration/compute/core_networking/test_coverage.rb +6 -0
- data/test/integration/compute/core_networking/test_firewalls.rb +11 -0
- data/test/integration/compute/core_networking/test_networks.rb +41 -0
- data/test/integration/compute/core_networking/test_routes.rb +26 -0
- data/test/integration/compute/core_networking/test_subnetworks.rb +11 -0
- data/test/integration/compute/instance_groups/test_coverage.rb +6 -0
- data/test/integration/compute/{test_instance_group_managers.rb → instance_groups/test_instance_group_managers.rb} +0 -0
- data/test/integration/compute/instance_groups/test_instance_groups.rb +11 -0
- data/test/integration/compute/{test_instance_templates.rb → instance_groups/test_instance_templates.rb} +0 -0
- data/test/integration/compute/{test_backend_services.rb → loadbalancing/test_backend_services.rb} +0 -0
- data/test/integration/compute/loadbalancing/test_coverage.rb +6 -0
- data/test/integration/compute/{test_forwarding_rules.rb → loadbalancing/test_forwarding_rules.rb} +0 -0
- data/test/integration/compute/loadbalancing/test_global_addresses.rb +11 -0
- data/test/integration/compute/{test_global_forwarding_rules.rb → loadbalancing/test_global_forwarding_rules.rb} +0 -0
- data/test/integration/compute/{test_http_health_checks.rb → loadbalancing/test_http_health_checks.rb} +0 -0
- data/test/integration/compute/loadbalancing/test_ssl_certificates.rb +11 -0
- data/test/integration/compute/{test_target_http_proxies.rb → loadbalancing/test_target_http_proxies.rb} +0 -0
- data/test/integration/compute/loadbalancing/test_target_https_proxies.rb +11 -0
- data/test/integration/compute/{test_target_instances.rb → loadbalancing/test_target_instances.rb} +0 -0
- data/test/integration/compute/loadbalancing/test_target_pools.rb +55 -0
- data/test/integration/compute/{test_url_maps.rb → loadbalancing/test_url_maps.rb} +0 -0
- data/test/integration/factories/addresses_factory.rb +16 -0
- data/test/integration/factories/collection_factory.rb +24 -3
- data/test/integration/factories/disks_factory.rb +1 -0
- data/test/integration/factories/firewalls_factory.rb +13 -0
- data/test/integration/factories/global_addresses_factory.rb +15 -0
- data/test/integration/factories/instance_groups_factory.rb +16 -0
- data/test/integration/factories/instance_template_factory.rb +1 -0
- data/test/integration/factories/networks_factory.rb +16 -0
- data/test/integration/factories/ssl_certificates_factory.rb +13 -0
- data/test/integration/factories/subnetworks_factory.rb +22 -0
- data/test/integration/factories/target_https_proxies_factory.rb +26 -0
- data/test/integration/factories/target_pools_factory.rb +2 -2
- data/test/integration/monitoring/test_coverage.rb +6 -0
- data/test/integration/monitoring/test_timeseries.rb +1 -1
- data/test/integration/pubsub/test_coverage.rb +6 -0
- data/test/integration/sql/{test_common_flags.rb → sqlv1/test_common_flags.rb} +0 -0
- data/test/integration/sql/{test_common_tiers.rb → sqlv1/test_common_tiers.rb} +0 -0
- data/test/integration/sql/sqlv1/test_coverage.rb +6 -0
- data/test/integration/sql/{test_v1_certs.rb → sqlv1/test_v1_certs.rb} +0 -0
- data/test/integration/sql/{test_v1_instances.rb → sqlv1/test_v1_instances.rb} +0 -0
- data/test/integration/sql/{test_v1_users.rb → sqlv1/test_v1_users.rb} +0 -0
- data/test/integration/sql/sqlv2/test_coverage.rb +6 -0
- data/test/integration/sql/{test_v2_instances.rb → sqlv2/test_v2_instances.rb} +0 -0
- data/test/integration/storage/test_coverage.rb +6 -0
- data/test/unit/storage/test_json_requests.rb +45 -0
- data/test/unit/storage/test_xml_requests.rb +20 -0
- metadata +115 -92
- data/test/integration/compute/addresses/addresses_shared.rb +0 -59
- data/test/integration/compute/addresses/test_compute_address_models.rb +0 -105
- data/test/integration/compute/addresses/test_compute_address_requests.rb +0 -52
- data/test/integration/compute/disks/test_compute_disk_requests.rb +0 -92
- data/test/integration/compute/test_compute_addresses_collection.rb +0 -75
- data/test/integration/compute/test_compute_networks_collection.rb +0 -69
- data/test/integration/compute/test_servers.rb +0 -54
- data/test/integration/compute/test_target_pools.rb +0 -38
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "helpers/client_helper"
|
|
3
|
-
require "securerandom"
|
|
4
|
-
|
|
5
|
-
class TestComputeAddressShared < FogIntegrationTest
|
|
6
|
-
DEFAULT_REGION = "us-central1".freeze
|
|
7
|
-
ADDRESS_RESOURCE_PREFIX = "fog-int-test-address".freeze
|
|
8
|
-
|
|
9
|
-
include ClientHelper
|
|
10
|
-
|
|
11
|
-
def delete_test_resources
|
|
12
|
-
client = Fog::Compute::Google.new
|
|
13
|
-
addresses = client.addresses.all(:region => DEFAULT_REGION)
|
|
14
|
-
unless addresses.nil?
|
|
15
|
-
addresses
|
|
16
|
-
.select { |a| a.name.start_with?(ADDRESS_RESOURCE_PREFIX) }
|
|
17
|
-
.each do |a|
|
|
18
|
-
Fog.wait_for do
|
|
19
|
-
unless a.ready?
|
|
20
|
-
false
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
begin
|
|
24
|
-
client.delete_address(a.name, DEFAULT_REGION)
|
|
25
|
-
rescue ::Google::Apis::ClientError => e
|
|
26
|
-
if e.status_code == 400 || e.status_code == 404
|
|
27
|
-
return e.status_code == 404
|
|
28
|
-
end
|
|
29
|
-
raise e
|
|
30
|
-
else
|
|
31
|
-
true
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
attr_reader :client
|
|
39
|
-
|
|
40
|
-
def setup
|
|
41
|
-
@client = Fog::Compute::Google.new
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def teardown
|
|
45
|
-
delete_test_resources
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def new_address_name
|
|
49
|
-
"#{ADDRESS_RESOURCE_PREFIX}-#{SecureRandom.uuid}"
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
def some_address_name
|
|
53
|
-
# created lazily to speed tests up
|
|
54
|
-
@some_address ||= new_address_name.tap do |a|
|
|
55
|
-
result = @client.insert_address(a, DEFAULT_REGION)
|
|
56
|
-
Fog.wait_for { operation_finished?(result) }
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "integration/compute/addresses/addresses_shared"
|
|
3
|
-
require "helpers/client_helper"
|
|
4
|
-
require "securerandom"
|
|
5
|
-
|
|
6
|
-
class TestComputeAddressModels < TestComputeAddressShared
|
|
7
|
-
def test_addresses_create
|
|
8
|
-
address_name = new_address_name
|
|
9
|
-
address = @client.addresses.create(
|
|
10
|
-
:name => address_name,
|
|
11
|
-
:region => DEFAULT_REGION
|
|
12
|
-
)
|
|
13
|
-
assert_equal(address_name, address.name, "address should have same name")
|
|
14
|
-
assert_nil(address.users, "new address should have no users")
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_addresses_get
|
|
18
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
19
|
-
|
|
20
|
-
assert_equal(some_address_name, address.name, "address should have same name")
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def test_addresses_get_address_by_ip
|
|
24
|
-
# Fetch a preexisting address to learn its IP
|
|
25
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
26
|
-
|
|
27
|
-
found = @client.addresses.get_by_ip_address(address.address)
|
|
28
|
-
|
|
29
|
-
assert_equal(address.name, found.name, "address should have same name")
|
|
30
|
-
assert_equal(address.address, found.address, "addresses should match")
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def test_addresses_get_address_by_name
|
|
34
|
-
# Fetch a preexisting address to learn its IP
|
|
35
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
36
|
-
|
|
37
|
-
found = @client.addresses.get_by_name(some_address_name)
|
|
38
|
-
|
|
39
|
-
assert_equal(address.name, found.name, "address should have same name")
|
|
40
|
-
assert_equal(address.address, found.address, "addresses should match")
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def test_addresses_get_by_ip_address_or_name
|
|
44
|
-
# Fetch a preexisting address to learn its IP
|
|
45
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
46
|
-
|
|
47
|
-
# Ensure we find the same addresses through both codepaths
|
|
48
|
-
with_name = @client.addresses.get_by_ip_address_or_name(some_address_name)
|
|
49
|
-
with_ip = @client.addresses.get_by_ip_address_or_name(address.address)
|
|
50
|
-
|
|
51
|
-
assert_equal(address.name, with_name.name, "address should have same name")
|
|
52
|
-
assert_equal(address.address, with_name.address, "addresses should match")
|
|
53
|
-
|
|
54
|
-
assert_equal(with_name.name, with_ip.name, "address should have same name")
|
|
55
|
-
assert_equal(with_name.address, with_ip.address, "addresses should match")
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def test_addresses_all
|
|
59
|
-
# Fetch a preexisting address to learn its IP
|
|
60
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
61
|
-
|
|
62
|
-
found = @client.addresses.all
|
|
63
|
-
|
|
64
|
-
assert_operator(found.size, :>, 0, "address count should be positive")
|
|
65
|
-
assert_includes(found.map(&:name), address.name, "pre-existing address should be present")
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def test_addresses_destroy
|
|
69
|
-
# Make a existing address to delete
|
|
70
|
-
address_name = new_address_name
|
|
71
|
-
address = @client.addresses.create(
|
|
72
|
-
:name => address_name,
|
|
73
|
-
:region => DEFAULT_REGION
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
# Force synchronous for easier testing
|
|
77
|
-
address.destroy(false)
|
|
78
|
-
|
|
79
|
-
assert_raises(Google::Apis::ClientError) do
|
|
80
|
-
@client.get_address(address_name, DEFAULT_REGION)
|
|
81
|
-
end
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def test_addresses_in_use
|
|
85
|
-
# Make a existing address to delete
|
|
86
|
-
address = @client.addresses.get(some_address_name, DEFAULT_REGION)
|
|
87
|
-
|
|
88
|
-
assert_equal(false, address.in_use?, "address should not be in use")
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def test_address_associate
|
|
92
|
-
# TODO: implement when servers are implemented @everlag
|
|
93
|
-
skip
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def test_address_disassociate
|
|
97
|
-
# TODO: implement when servers are implemented @everlag
|
|
98
|
-
skip
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def test_address_server_set
|
|
102
|
-
# TODO: implement when servers are implemented @everlag
|
|
103
|
-
skip
|
|
104
|
-
end
|
|
105
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "integration/compute/addresses/addresses_shared"
|
|
3
|
-
require "helpers/client_helper"
|
|
4
|
-
require "securerandom"
|
|
5
|
-
|
|
6
|
-
class TestComputeAddressRequests < TestComputeAddressShared
|
|
7
|
-
def test_insert_address
|
|
8
|
-
result = wait_until_complete { @client.insert_address(new_address_name, DEFAULT_REGION) }
|
|
9
|
-
|
|
10
|
-
assert_equal("DONE", result.status, "request should be successful")
|
|
11
|
-
assert_nil(result.error, "result should contain no errors")
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def test_get_address
|
|
15
|
-
result = @client.get_address(some_address_name, DEFAULT_REGION)
|
|
16
|
-
|
|
17
|
-
assert_equal("RESERVED", result.status, "request should be successful")
|
|
18
|
-
assert_includes(result.name, some_address_name, "resulting address should have expected name")
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def test_list_address
|
|
22
|
-
# Let's create at least one address so there's something to view
|
|
23
|
-
known_address = new_address_name
|
|
24
|
-
wait_until_complete { @client.insert_address(known_address, DEFAULT_REGION) }
|
|
25
|
-
|
|
26
|
-
result = @client.list_addresses(DEFAULT_REGION)
|
|
27
|
-
assert_operator(result.items.size, :>, 0, "address count should be positive")
|
|
28
|
-
assert_includes(result.items.map(&:name), known_address, "pre-existing address should be present")
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def test_delete_address
|
|
32
|
-
# Create something to delete
|
|
33
|
-
address_to_delete = new_address_name
|
|
34
|
-
wait_until_complete { @client.insert_address(address_to_delete, DEFAULT_REGION) }
|
|
35
|
-
|
|
36
|
-
result = wait_until_complete { @client.delete_address(address_to_delete, DEFAULT_REGION) }
|
|
37
|
-
|
|
38
|
-
assert_nil(result.error, "result should contain no errors")
|
|
39
|
-
|
|
40
|
-
assert_raises(Google::Apis::ClientError) do
|
|
41
|
-
@client.get_address(address_to_delete, DEFAULT_REGION)
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_list_aggregated_addresses
|
|
46
|
-
@client.get_address(some_address_name, DEFAULT_REGION)
|
|
47
|
-
result = @client.list_aggregated_addresses
|
|
48
|
-
|
|
49
|
-
assert_operator(result.items.size, :>, 0, "address count should be positive")
|
|
50
|
-
assert_includes(result.items.keys, "global", "'items' subset should contain global keyword")
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "helpers/client_helper"
|
|
3
|
-
require "securerandom"
|
|
4
|
-
|
|
5
|
-
class TestComputeDiskRequests < FogIntegrationTest
|
|
6
|
-
DEFAULT_ZONE = "us-central1-a".freeze
|
|
7
|
-
DISK_RESOURCE_PREFIX = "fog-test-disk".freeze
|
|
8
|
-
|
|
9
|
-
include ClientHelper
|
|
10
|
-
|
|
11
|
-
def delete_test_resources
|
|
12
|
-
client = Fog::Compute::Google.new
|
|
13
|
-
disks = client.disks.all(:zone => DEFAULT_ZONE)
|
|
14
|
-
unless disks.nil?
|
|
15
|
-
disks
|
|
16
|
-
.select { |d| d.name.start_with?(DISK_RESOURCE_PREFIX) }
|
|
17
|
-
.each do |d|
|
|
18
|
-
d.wait_for { ready? }
|
|
19
|
-
client.delete_disk(d.name, DEFAULT_ZONE)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
attr_reader :client
|
|
25
|
-
|
|
26
|
-
def setup
|
|
27
|
-
@client = Fog::Compute::Google.new
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def teardown
|
|
31
|
-
delete_test_resources
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def new_disk_name
|
|
35
|
-
"#{DISK_RESOURCE_PREFIX}-#{SecureRandom.uuid}"
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def some_disk_name
|
|
39
|
-
# created lazily to speed tests up
|
|
40
|
-
@some_disk ||= new_disk_name.tap do |a|
|
|
41
|
-
result = @client.insert_disk(a, DEFAULT_ZONE, nil, :size_gb => 10)
|
|
42
|
-
Fog.wait_for { operation_finished?(result) }
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def test_insert_disk
|
|
47
|
-
result = wait_until_complete do
|
|
48
|
-
@client.insert_disk(new_disk_name, DEFAULT_ZONE, nil, :size_gb => 10)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
assert_equal("DONE", result.status, "request should be successful")
|
|
52
|
-
assert_nil(result.error, "result should contain no errors")
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def test_get_disk
|
|
56
|
-
result = @client.get_disk(some_disk_name, DEFAULT_ZONE)
|
|
57
|
-
|
|
58
|
-
assert_equal("READY", result.status, "request should be successful")
|
|
59
|
-
assert_includes(result.name, some_disk_name, "resulting disk should have expected name")
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def test_list_disks
|
|
63
|
-
# Let's create at least one disk so there's something to view
|
|
64
|
-
known_disk = some_disk_name
|
|
65
|
-
|
|
66
|
-
result = @client.list_disks(DEFAULT_ZONE)
|
|
67
|
-
assert_operator(result.items.size, :>, 0, "disk count should be positive")
|
|
68
|
-
assert_includes(result.items.map(&:name), known_disk, "pre-existing disk should be present")
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def test_delete_disk
|
|
72
|
-
# Create something to delete
|
|
73
|
-
disk_to_delete = new_disk_name
|
|
74
|
-
wait_until_complete { @client.insert_disk(disk_to_delete, DEFAULT_ZONE, nil, :size_gb => 10) }
|
|
75
|
-
|
|
76
|
-
result = wait_until_complete { @client.delete_disk(disk_to_delete, DEFAULT_ZONE) }
|
|
77
|
-
|
|
78
|
-
assert_nil(result.error, "result should contain no errors")
|
|
79
|
-
|
|
80
|
-
assert_raises(Google::Apis::ClientError) do
|
|
81
|
-
@client.get_disk(disk_to_delete, DEFAULT_ZONE)
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def test_list_aggregated_disks
|
|
86
|
-
@client.get_disk(some_disk_name, DEFAULT_ZONE)
|
|
87
|
-
result = @client.list_aggregated_disks
|
|
88
|
-
|
|
89
|
-
assert_operator(result.items.size, :>, 0, "address count should be positive")
|
|
90
|
-
assert_includes(result.items.keys, "zones/#{DEFAULT_ZONE}", "'items' subset should contain zones/#{DEFAULT_ZONE} keyword")
|
|
91
|
-
end
|
|
92
|
-
end
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "securerandom"
|
|
3
|
-
|
|
4
|
-
class TestComputeAddressesCollection < FogIntegrationTest
|
|
5
|
-
DEFAULT_REGION = "us-central1".freeze
|
|
6
|
-
DEFAULT_ZONE = "us-central1-b".freeze
|
|
7
|
-
RESOURCE_PREFIX = "fog-test-addresscol".freeze
|
|
8
|
-
TEST_ASYNC = false
|
|
9
|
-
|
|
10
|
-
# Ensure we clean up any created resources
|
|
11
|
-
Minitest.after_run do
|
|
12
|
-
client = Fog::Compute::Google.new
|
|
13
|
-
client.addresses.each { |a| a.destroy(TEST_ASYNC) if a.name.start_with?(RESOURCE_PREFIX) }
|
|
14
|
-
client.servers.each { |s| s.destroy(TEST_ASYNC) if s.name.start_with?(RESOURCE_PREFIX) }
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_address_workflow
|
|
18
|
-
client = Fog::Compute::Google.new
|
|
19
|
-
|
|
20
|
-
my_address_name = new_resource_name
|
|
21
|
-
# An address can be created by specifying a name and a region
|
|
22
|
-
my_address = client.addresses.create(
|
|
23
|
-
:name => my_address_name,
|
|
24
|
-
:region => DEFAULT_REGION
|
|
25
|
-
)
|
|
26
|
-
# TODO: Shouldn't this be returning an operation object that we have to explicitly wait for?
|
|
27
|
-
assert_equal(my_address_name, my_address.name, "My address should have the provided name")
|
|
28
|
-
assert_equal("RESERVED", my_address.status, "My address should not be in use")
|
|
29
|
-
|
|
30
|
-
# It should also be visible when listing addresses
|
|
31
|
-
assert_includes(client.addresses.all.map(&:name), my_address_name)
|
|
32
|
-
|
|
33
|
-
# Be aware that although the address resource is created, it might not yet
|
|
34
|
-
# have an ip address. You can poll until the address has been assigned.
|
|
35
|
-
my_address.wait_for { !my_address.address.nil? }
|
|
36
|
-
assert_match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/,
|
|
37
|
-
my_address.address,
|
|
38
|
-
"My address's address should have a valid ipv4 address")
|
|
39
|
-
|
|
40
|
-
# Now that we have an address, we can create a server using the static ip
|
|
41
|
-
my_server = client.servers.create(
|
|
42
|
-
:name => new_resource_name,
|
|
43
|
-
:machine_type => "f1-micro",
|
|
44
|
-
:zone => client.zones.get(DEFAULT_ZONE).self_link,
|
|
45
|
-
:disks => [
|
|
46
|
-
:boot => true,
|
|
47
|
-
:auto_delete => true,
|
|
48
|
-
:initialize_params => {
|
|
49
|
-
:source_image => "projects/debian-cloud/global/images/family/debian-8"
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
:external_ip => my_address.address
|
|
53
|
-
)
|
|
54
|
-
my_server.wait_for { staging? }
|
|
55
|
-
|
|
56
|
-
# And verify that it's correctly assigned
|
|
57
|
-
assert_equal(
|
|
58
|
-
my_address.address,
|
|
59
|
-
my_server.network_interfaces[0][:access_configs][0][:nat_ip],
|
|
60
|
-
"My created server should have the same ip as my address"
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
# If we look up the address again by name, we should see that it is now
|
|
64
|
-
# in use
|
|
65
|
-
assert_equal(
|
|
66
|
-
"IN_USE",
|
|
67
|
-
client.addresses.get(my_address_name, DEFAULT_REGION).status,
|
|
68
|
-
"Address should now be in use"
|
|
69
|
-
)
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def new_resource_name
|
|
73
|
-
"#{RESOURCE_PREFIX}-#{SecureRandom.uuid}"
|
|
74
|
-
end
|
|
75
|
-
end
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
require "helpers/integration_test_helper"
|
|
2
|
-
require "securerandom"
|
|
3
|
-
|
|
4
|
-
class TestComputeNetworksCollection < FogIntegrationTest
|
|
5
|
-
DEFAULT_REGION = "us-central1".freeze
|
|
6
|
-
DEFAULT_ZONE = "us-central1-b".freeze
|
|
7
|
-
RESOURCE_PREFIX = "fog-test-networkscol".freeze
|
|
8
|
-
TEST_ASYNC = false
|
|
9
|
-
|
|
10
|
-
# Ensure we clean up any created resources
|
|
11
|
-
Minitest.after_run do
|
|
12
|
-
client = Fog::Compute::Google.new
|
|
13
|
-
client.networks.each { |a| a.destroy(TEST_ASYNC) if a.name.start_with?(RESOURCE_PREFIX) }
|
|
14
|
-
client.servers.each { |s| s.destroy(TEST_ASYNC) if s.name.start_with?(RESOURCE_PREFIX) }
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def test_network_workflow
|
|
18
|
-
client = Fog::Compute::Google.new
|
|
19
|
-
|
|
20
|
-
my_network_name = new_resource_name
|
|
21
|
-
# An address can be created by specifying a name and a region
|
|
22
|
-
my_network = client.networks.create(
|
|
23
|
-
:name => my_network_name,
|
|
24
|
-
:ipv4_range => "10.240.#{rand(255)}.0/24"
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
assert_equal(my_network_name, my_network.name, "My network should have the provided name")
|
|
28
|
-
|
|
29
|
-
# It should also be visible when listing addresses
|
|
30
|
-
assert_includes(client.networks.all.map(&:name), my_network_name)
|
|
31
|
-
|
|
32
|
-
# Be aware that although the address resource is created, it might not yet
|
|
33
|
-
# have an ip address. You can poll until the address has been assigned.
|
|
34
|
-
my_network.wait_for(60) { !my_network.ipv4_range.nil? }
|
|
35
|
-
assert_match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}/,
|
|
36
|
-
my_network.ipv4_range,
|
|
37
|
-
"My address's address should have a valid ipv4 address")
|
|
38
|
-
|
|
39
|
-
# Now that we have an address, we can create a server using the static ip
|
|
40
|
-
server_name = new_resource_name
|
|
41
|
-
|
|
42
|
-
my_server = client.servers.create(
|
|
43
|
-
:name => server_name,
|
|
44
|
-
:machine_type => "f1-micro",
|
|
45
|
-
:zone => client.zones.get(DEFAULT_ZONE).self_link,
|
|
46
|
-
:disks => [
|
|
47
|
-
:boot => true,
|
|
48
|
-
:auto_delete => true,
|
|
49
|
-
:initialize_params => {
|
|
50
|
-
:source_image => "projects/debian-cloud/global/images/family/debian-8"
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
:network_interfaces => [my_network.get_as_interface_config]
|
|
54
|
-
)
|
|
55
|
-
|
|
56
|
-
my_server.wait_for { ready? }
|
|
57
|
-
|
|
58
|
-
# We need to verify that the network has been correctly assigned
|
|
59
|
-
assert_equal(
|
|
60
|
-
my_network.self_link,
|
|
61
|
-
my_server.network_interfaces[0][:network],
|
|
62
|
-
"My created server should have the network specified as the network"
|
|
63
|
-
)
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def new_resource_name
|
|
67
|
-
"#{RESOURCE_PREFIX}-#{SecureRandom.uuid}"
|
|
68
|
-
end
|
|
69
|
-
end
|