vultr 0.4.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +32 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +5 -10
- data/README.md +306 -136
- data/Rakefile +10 -6
- data/bin/console +21 -0
- data/bin/setup +8 -0
- data/bin/test +6 -0
- data/lib/vultr/client.rb +111 -0
- data/lib/vultr/collection.rb +22 -0
- data/lib/vultr/error.rb +4 -0
- data/lib/vultr/object.rb +19 -0
- data/lib/vultr/objects/account.rb +4 -0
- data/lib/vultr/objects/application.rb +4 -0
- data/lib/vultr/objects/backup.rb +4 -0
- data/lib/vultr/objects/bare_metal.rb +4 -0
- data/lib/vultr/objects/block_storage.rb +4 -0
- data/lib/vultr/objects/domain.rb +4 -0
- data/lib/vultr/objects/firewall_group.rb +4 -0
- data/lib/vultr/objects/instance.rb +4 -0
- data/lib/vultr/objects/iso.rb +4 -0
- data/lib/vultr/objects/kubernetes_cluster.rb +4 -0
- data/lib/vultr/objects/load_balancer.rb +4 -0
- data/lib/vultr/objects/object_storage.rb +4 -0
- data/lib/vultr/objects/operating_system.rb +4 -0
- data/lib/vultr/objects/plan.rb +4 -0
- data/lib/vultr/objects/private_network.rb +4 -0
- data/lib/vultr/objects/region.rb +4 -0
- data/lib/vultr/objects/reserved_ip.rb +4 -0
- data/lib/vultr/objects/snapshot.rb +4 -0
- data/lib/vultr/objects/ssh_key.rb +4 -0
- data/lib/vultr/objects/startup_script.rb +4 -0
- data/lib/vultr/objects/user.rb +4 -0
- data/lib/vultr/resource.rb +52 -0
- data/lib/vultr/resources/account.rb +7 -0
- data/lib/vultr/resources/applications.rb +8 -0
- data/lib/vultr/resources/backups.rb +12 -0
- data/lib/vultr/resources/bare_metal.rb +79 -0
- data/lib/vultr/resources/block_storage.rb +32 -0
- data/lib/vultr/resources/dns.rb +58 -0
- data/lib/vultr/resources/firewall.rb +42 -0
- data/lib/vultr/resources/instances.rb +145 -0
- data/lib/vultr/resources/iso.rb +25 -0
- data/lib/vultr/resources/kubernetes.rb +61 -0
- data/lib/vultr/resources/load_balancers.rb +50 -0
- data/lib/vultr/resources/object_storage.rb +33 -0
- data/lib/vultr/resources/operating_systems.rb +8 -0
- data/lib/vultr/resources/plans.rb +13 -0
- data/lib/vultr/resources/private_networks.rb +24 -0
- data/lib/vultr/resources/regions.rb +12 -0
- data/lib/vultr/resources/reserved_ips.rb +32 -0
- data/lib/vultr/resources/snapshots.rb +28 -0
- data/lib/vultr/resources/ssh_keys.rb +24 -0
- data/lib/vultr/resources/startup_scripts.rb +24 -0
- data/lib/vultr/resources/users.rb +24 -0
- data/lib/vultr/version.rb +1 -8
- data/lib/vultr.rb +56 -887
- data/test/fixtures/account/info.json +11 -0
- data/test/fixtures/applications/list.json +29 -0
- data/test/fixtures/backups/list.json +18 -0
- data/test/fixtures/backups/retrieve.json +9 -0
- data/test/fixtures/bare_metals/bandwidth.json +12 -0
- data/test/fixtures/bare_metals/create.json +26 -0
- data/test/fixtures/bare_metals/list.json +36 -0
- data/test/fixtures/bare_metals/list_ipv4.json +18 -0
- data/test/fixtures/bare_metals/list_ipv6.json +17 -0
- data/test/fixtures/bare_metals/reinstall.json +25 -0
- data/test/fixtures/bare_metals/retrieve.json +26 -0
- data/test/fixtures/bare_metals/update.json +26 -0
- data/test/fixtures/bare_metals/upgrades.json +47 -0
- data/test/fixtures/bare_metals/user_data.json +5 -0
- data/test/fixtures/bare_metals/vnc.json +5 -0
- data/test/fixtures/block_storage/attach.json +4 -0
- data/test/fixtures/block_storage/create.json +13 -0
- data/test/fixtures/block_storage/detach.json +4 -0
- data/test/fixtures/block_storage/list.json +22 -0
- data/test/fixtures/block_storage/retrieve.json +13 -0
- data/test/fixtures/domains/create.json +6 -0
- data/test/fixtures/domains/dnssec.json +7 -0
- data/test/fixtures/domains/list.json +15 -0
- data/test/fixtures/domains/record.json +10 -0
- data/test/fixtures/domains/records.json +19 -0
- data/test/fixtures/domains/retrieve.json +6 -0
- data/test/fixtures/domains/soa.json +6 -0
- data/test/fixtures/firewall/create.json +11 -0
- data/test/fixtures/firewall/create_rule.json +9 -0
- data/test/fixtures/firewall/delete.json +1 -0
- data/test/fixtures/firewall/delete_rule.json +1 -0
- data/test/fixtures/firewall/list.json +20 -0
- data/test/fixtures/firewall/list_rules.json +22 -0
- data/test/fixtures/firewall/retrieve.json +11 -0
- data/test/fixtures/firewall/retrieve_rule.json +13 -0
- data/test/fixtures/firewall/update.json +1 -0
- data/test/fixtures/instances/attach_iso.json +6 -0
- data/test/fixtures/instances/attach_private_network.json +1 -0
- data/test/fixtures/instances/backup_schedule.json +10 -0
- data/test/fixtures/instances/bandwidth.json +12 -0
- data/test/fixtures/instances/create.json +36 -0
- data/test/fixtures/instances/create_ipv4_reverse.json +1 -0
- data/test/fixtures/instances/create_ipv6_reverse.json +1 -0
- data/test/fixtures/instances/delete.json +1 -0
- data/test/fixtures/instances/delete_ipv4.json +1 -0
- data/test/fixtures/instances/delete_ipv6.json +1 -0
- data/test/fixtures/instances/detach_iso.json +5 -0
- data/test/fixtures/instances/detach_private_network.json +1 -0
- data/test/fixtures/instances/halt.json +1 -0
- data/test/fixtures/instances/halt_instances.json +1 -0
- data/test/fixtures/instances/ipv4.json +9 -0
- data/test/fixtures/instances/ipv6_reverse.json +15 -0
- data/test/fixtures/instances/iso.json +6 -0
- data/test/fixtures/instances/list.json +44 -0
- data/test/fixtures/instances/list_ipv4.json +32 -0
- data/test/fixtures/instances/list_ipv6.json +17 -0
- data/test/fixtures/instances/list_private_networks.json +16 -0
- data/test/fixtures/instances/neighbors.json +6 -0
- data/test/fixtures/instances/reboot.json +1 -0
- data/test/fixtures/instances/reboot_instances.json +1 -0
- data/test/fixtures/instances/reinstall.json +35 -0
- data/test/fixtures/instances/restore.json +7 -0
- data/test/fixtures/instances/retrieve.json +35 -0
- data/test/fixtures/instances/set_backup_schedule.json +1 -0
- data/test/fixtures/instances/set_default_reverse_dns_entry.json +1 -0
- data/test/fixtures/instances/start.json +1 -0
- data/test/fixtures/instances/start_instances.json +1 -0
- data/test/fixtures/instances/update.json +1 -0
- data/test/fixtures/instances/upgrades.json +55 -0
- data/test/fixtures/instances/user_data.json +5 -0
- data/test/fixtures/isos/create.json +8 -0
- data/test/fixtures/isos/list.json +20 -0
- data/test/fixtures/isos/list_public.json +17 -0
- data/test/fixtures/isos/retrieve.json +11 -0
- data/test/fixtures/kubernetes/config.json +3 -0
- data/test/fixtures/kubernetes/create.json +39 -0
- data/test/fixtures/kubernetes/create_node_pool.json +25 -0
- data/test/fixtures/kubernetes/list.json +85 -0
- data/test/fixtures/kubernetes/list_node_pools.json +56 -0
- data/test/fixtures/kubernetes/list_resources.json +26 -0
- data/test/fixtures/kubernetes/retrieve.json +39 -0
- data/test/fixtures/kubernetes/retrieve_node_pool.json +25 -0
- data/test/fixtures/kubernetes/update_node_pool.json +19 -0
- data/test/fixtures/load_balancers/create.json +48 -0
- data/test/fixtures/load_balancers/create_forwarding_rule.json +1 -0
- data/test/fixtures/load_balancers/delete.json +1 -0
- data/test/fixtures/load_balancers/delete_forwarding_rule.json +1 -0
- data/test/fixtures/load_balancers/list.json +57 -0
- data/test/fixtures/load_balancers/list_firewall_rules.json +17 -0
- data/test/fixtures/load_balancers/list_forwarding_rules.json +18 -0
- data/test/fixtures/load_balancers/retrieve.json +48 -0
- data/test/fixtures/load_balancers/retrieve_firewall_rule.json +8 -0
- data/test/fixtures/load_balancers/retrieve_forwarding_rule.json +9 -0
- data/test/fixtures/load_balancers/update.json +1 -0
- data/test/fixtures/object_storage/create.json +14 -0
- data/test/fixtures/object_storage/delete.json +1 -0
- data/test/fixtures/object_storage/list.json +22 -0
- data/test/fixtures/object_storage/list_clusters.json +17 -0
- data/test/fixtures/object_storage/regenerate_keys.json +7 -0
- data/test/fixtures/object_storage/retrieve.json +13 -0
- data/test/fixtures/object_storage/update.json +1 -0
- data/test/fixtures/operating_systems/list.json +17 -0
- data/test/fixtures/plans/list.json +22 -0
- data/test/fixtures/plans/list_metal.json +24 -0
- data/test/fixtures/private_networks/create.json +10 -0
- data/test/fixtures/private_networks/delete.json +1 -0
- data/test/fixtures/private_networks/list.json +19 -0
- data/test/fixtures/private_networks/retrieve.json +10 -0
- data/test/fixtures/private_networks/update.json +1 -0
- data/test/fixtures/regions/list.json +20 -0
- data/test/fixtures/regions/list_availability.json +24 -0
- data/test/fixtures/reserved_ips/attach.json +1 -0
- data/test/fixtures/reserved_ips/convert.json +11 -0
- data/test/fixtures/reserved_ips/create.json +11 -0
- data/test/fixtures/reserved_ips/delete.json +1 -0
- data/test/fixtures/reserved_ips/detach.json +1 -0
- data/test/fixtures/reserved_ips/list.json +29 -0
- data/test/fixtures/reserved_ips/retrieve.json +11 -0
- data/test/fixtures/snapshots/create.json +11 -0
- data/test/fixtures/snapshots/create_from_url.json +11 -0
- data/test/fixtures/snapshots/delete.json +1 -0
- data/test/fixtures/snapshots/list.json +20 -0
- data/test/fixtures/snapshots/retrieve.json +11 -0
- data/test/fixtures/snapshots/update.json +1 -0
- data/test/fixtures/ssh_keys/create.json +8 -0
- data/test/fixtures/ssh_keys/delete.json +1 -0
- data/test/fixtures/ssh_keys/list.json +17 -0
- data/test/fixtures/ssh_keys/retrieve.json +8 -0
- data/test/fixtures/ssh_keys/update.json +1 -0
- data/test/fixtures/startup_scripts/create.json +10 -0
- data/test/fixtures/startup_scripts/delete.json +1 -0
- data/test/fixtures/startup_scripts/list.json +18 -0
- data/test/fixtures/startup_scripts/retrieve.json +10 -0
- data/test/fixtures/startup_scripts/update.json +1 -0
- data/test/fixtures/users/create.json +9 -0
- data/test/fixtures/users/delete.json +1 -0
- data/test/fixtures/users/list.json +29 -0
- data/test/fixtures/users/retrieve.json +20 -0
- data/test/fixtures/users/update.json +1 -0
- data/test/test_helper.rb +18 -5
- data/test/vultr/client_test.rb +8 -0
- data/test/vultr/object_test.rb +21 -0
- data/test/vultr/resources/account_test.rb +12 -0
- data/test/vultr/resources/applications_test.rb +15 -0
- data/test/vultr/resources/backups_test.rb +24 -0
- data/test/vultr/resources/bare_metal_test.rb +267 -0
- data/test/vultr/resources/block_storage_test.rb +85 -0
- data/test/vultr/resources/dns_test.rb +134 -0
- data/test/vultr/resources/firewall_test.rb +88 -0
- data/test/vultr/resources/instances_test.rb +325 -0
- data/test/vultr/resources/iso_test.rb +58 -0
- data/test/vultr/resources/kubernetes_test.rb +185 -0
- data/test/vultr/resources/load_balancers_test.rb +110 -0
- data/test/vultr/resources/object_storage_test.rb +71 -0
- data/test/vultr/resources/operating_systems_test.rb +15 -0
- data/test/vultr/resources/plans_test.rb +25 -0
- data/test/vultr/resources/private_networks_test.rb +50 -0
- data/test/vultr/resources/regions_test.rb +26 -0
- data/test/vultr/resources/reserved_ips_test.rb +67 -0
- data/test/vultr/resources/snapshots_test.rb +60 -0
- data/test/vultr/resources/ssh_keys_test.rb +50 -0
- data/test/vultr/resources/startup_scripts_test.rb +50 -0
- data/test/vultr/resources/users_test.rb +50 -0
- data/vultr.gemspec +17 -17
- metadata +394 -48
- data/test/vultr/vultr_account_test.rb +0 -29
- data/test/vultr/vultr_app_test.rb +0 -26
- data/test/vultr/vultr_backup_test.rb +0 -22
- data/test/vultr/vultr_iso_test.rb +0 -27
- data/test/vultr/vultr_os_test.rb +0 -21
- data/test/vultr/vultr_plan_test.rb +0 -22
- data/test/vultr/vultr_region_test.rb +0 -33
- data/test/vultr/vultr_snapshot_test.rb +0 -30
- data/test/vultr/vultr_sshkey_test.rb +0 -50
- data/test/vultr/vultr_startupscript_test.rb +0 -53
@@ -0,0 +1,185 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class KubernetesResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("kubernetes/clusters", response: stub_response(fixture: "kubernetes/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
kubernetes = client.kubernetes.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, kubernetes.class
|
12
|
+
assert_equal Vultr::KubernetesCluster, kubernetes.data.first.class
|
13
|
+
assert_equal 2, kubernetes.total
|
14
|
+
assert_equal "next", kubernetes.next_cursor
|
15
|
+
assert_equal "prev", kubernetes.prev_cursor
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_create
|
19
|
+
body = {label: "vke", region: "lax", version: "v1.20.0+1", node_pools: [{node_quantity: 2, label: "my-label", plan: "vc2-1c-2gb"}]}
|
20
|
+
stub = stub_request("kubernetes/clusters", method: :post, body: body, response: stub_response(fixture: "kubernetes/create", status: 201))
|
21
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
22
|
+
kubernetes = client.kubernetes.create(**body)
|
23
|
+
|
24
|
+
assert_equal kubernetes.id, "455dcd32-e621-48ee-a10e-0cb5f754e13e"
|
25
|
+
assert_equal kubernetes.label, "vke"
|
26
|
+
assert_equal kubernetes.date_created, Time.parse("2021-07-07T22:57:01+00:00")
|
27
|
+
assert_equal kubernetes.cluster_subnet, "10.244.0.0/16"
|
28
|
+
assert_equal kubernetes.service_subnet, "10.96.0.0/12"
|
29
|
+
assert_equal kubernetes.ip, "0.0.0.0"
|
30
|
+
assert_equal kubernetes.endpoint, "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com"
|
31
|
+
assert_equal kubernetes.version, "v1.20.0+1"
|
32
|
+
assert_equal kubernetes.region, "lax"
|
33
|
+
assert_equal kubernetes.status, "pending"
|
34
|
+
assert_equal kubernetes.node_pools.class, Array
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_retrieve
|
38
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
39
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}", response: stub_response(fixture: "kubernetes/retrieve"))
|
40
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
41
|
+
vke_cluster = client.kubernetes.retrieve(vke_id: vke_id)
|
42
|
+
|
43
|
+
assert_equal vke_cluster.id, "455dcd32-e621-48ee-a10e-0cb5f754e13e"
|
44
|
+
assert_equal vke_cluster.label, "vke"
|
45
|
+
assert_equal vke_cluster.date_created, Time.parse("2021-07-07T22:57:01+00:00")
|
46
|
+
assert_equal vke_cluster.cluster_subnet, "10.244.0.0/16"
|
47
|
+
assert_equal vke_cluster.service_subnet, "10.96.0.0/12"
|
48
|
+
assert_equal vke_cluster.ip, "207.246.109.187"
|
49
|
+
assert_equal vke_cluster.endpoint, "455dcd32-e621-48ee-a10e-0cb5f754e13e.vultr-k8s.com"
|
50
|
+
assert_equal vke_cluster.version, "v1.20.0+1"
|
51
|
+
assert_equal vke_cluster.region, "lax"
|
52
|
+
assert_equal vke_cluster.status, "active"
|
53
|
+
assert_equal vke_cluster.node_pools.class, Array
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_update
|
57
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
58
|
+
body = {label: "My New Label"}
|
59
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}", method: :put, body: body, response: {})
|
60
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
61
|
+
assert client.kubernetes.update(vke_id: vke_id, **body)
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_delete
|
65
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
66
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}", method: :delete, response: {})
|
67
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
68
|
+
|
69
|
+
assert client.kubernetes.delete(vke_id: vke_id)
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_config
|
73
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
74
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/config", response: stub_response(fixture: "kubernetes/config"))
|
75
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
76
|
+
vke_cluster = client.kubernetes.config(vke_id: vke_id)
|
77
|
+
|
78
|
+
assert_equal vke_cluster.kube_config, "kube_config"
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_list_resources
|
82
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
83
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/resources", response: stub_response(fixture: "kubernetes/list_resources"))
|
84
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
85
|
+
vke_cluster = client.kubernetes.list_resources(vke_id: vke_id)
|
86
|
+
|
87
|
+
assert_equal vke_cluster.block_storage.class, Array
|
88
|
+
assert_equal vke_cluster.load_balancer.class, Array
|
89
|
+
end
|
90
|
+
|
91
|
+
def test_list_node_pools
|
92
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
93
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools", response: stub_response(fixture: "kubernetes/list_node_pools"))
|
94
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
95
|
+
node_pools = client.kubernetes.list_node_pools(vke_id: vke_id)
|
96
|
+
|
97
|
+
assert_equal Vultr::Collection, node_pools.class
|
98
|
+
assert_equal Vultr::Object, node_pools.data.first.class
|
99
|
+
assert_equal 2, node_pools.total
|
100
|
+
assert_equal "next", node_pools.next_cursor
|
101
|
+
assert_equal "prev", node_pools.prev_cursor
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_retrieve_node_pool
|
105
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
106
|
+
nodepool_id = "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
107
|
+
|
108
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools/#{nodepool_id}", response: stub_response(fixture: "kubernetes/retrieve_node_pool"))
|
109
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
110
|
+
node_pool = client.kubernetes.retrieve_node_pool(vke_id: vke_id, nodepool_id: nodepool_id)
|
111
|
+
|
112
|
+
assert_equal node_pool.id, "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
113
|
+
assert_equal node_pool.date_created, Time.parse("2021-07-07T23:27:08+00:00")
|
114
|
+
assert_equal node_pool.date_updated, Time.parse("2021-07-08T12:12:44+00:00")
|
115
|
+
assert_equal node_pool.label, "my-label-48770703"
|
116
|
+
assert_equal node_pool.plan_id, "vc2-1c-2gb"
|
117
|
+
assert_equal node_pool.status, "active"
|
118
|
+
assert_equal node_pool.count, 2
|
119
|
+
assert_equal node_pool.nodes.class, Array
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_create_node_pool
|
123
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
124
|
+
body = {node_quantity: 2, label: "nodepool", paln: "vc2-lc-2gb"}
|
125
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools", method: :post, body: body, response: stub_response(fixture: "kubernetes/create_node_pool"))
|
126
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
127
|
+
node_pool = client.kubernetes.create_node_pool(vke_id: vke_id, **body)
|
128
|
+
|
129
|
+
assert_equal node_pool.id, "4130764b-5276-4552-546f-32513239732b"
|
130
|
+
assert_equal node_pool.date_created, Time.parse("2021-07-07T23:29:18+00:00")
|
131
|
+
assert_equal node_pool.date_updated, Time.parse("2021-07-08T23:29:18+00:00")
|
132
|
+
assert_equal node_pool.label, "nodepool-48770716"
|
133
|
+
assert_equal node_pool.plan_id, "vc2-1c-2gb"
|
134
|
+
assert_equal node_pool.status, "pending"
|
135
|
+
assert_equal node_pool.count, 2
|
136
|
+
assert_equal node_pool.nodes.class, Array
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_update_node_pool
|
140
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
141
|
+
nodepool_id = "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
142
|
+
body = {node_quantity: 1}
|
143
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools/#{nodepool_id}", method: :patch, body: body, response: stub_response(fixture: "kubernetes/update_node_pool"))
|
144
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
145
|
+
node_pool = client.kubernetes.update_node_pool(vke_id: vke_id, nodepool_id: nodepool_id, **body)
|
146
|
+
|
147
|
+
assert_equal node_pool.id, "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
148
|
+
assert_equal node_pool.date_created, Time.parse("2021-07-07T23:27:08+00:00")
|
149
|
+
assert_equal node_pool.date_updated, Time.parse("2021-07-08T12:12:44+00:00")
|
150
|
+
assert_equal node_pool.label, "my-label-48770703"
|
151
|
+
assert_equal node_pool.plan_id, "vc2-1c-2gb"
|
152
|
+
assert_equal node_pool.status, "active"
|
153
|
+
assert_equal node_pool.count, 1
|
154
|
+
assert_equal node_pool.nodes.class, Array
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_delete_node_pool
|
158
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
159
|
+
nodepool_id = "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
160
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools/#{nodepool_id}", method: :delete, response: {})
|
161
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
162
|
+
|
163
|
+
assert client.kubernetes.delete_node_pool(vke_id: vke_id, nodepool_id: nodepool_id)
|
164
|
+
end
|
165
|
+
|
166
|
+
def test_delete_node_pool_instance
|
167
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
168
|
+
nodepool_id = "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
169
|
+
node_id = "ab809b79-1358-4c59-8c8e-b73add699bf9"
|
170
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools/#{nodepool_id}/nodes/#{node_id}", method: :delete, response: {})
|
171
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
172
|
+
|
173
|
+
assert client.kubernetes.delete_node_pool_instance(vke_id: vke_id, nodepool_id: nodepool_id, node_id: node_id)
|
174
|
+
end
|
175
|
+
|
176
|
+
def test_recycle_node_pool_instance
|
177
|
+
vke_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
178
|
+
nodepool_id = "e97bdee9-2781-4f31-be03-60fc75f399ae"
|
179
|
+
node_id = "ab809b79-1358-4c59-8c8e-b73add699bf9"
|
180
|
+
stub = stub_request("kubernetes/clusters/#{vke_id}/node-pools/#{nodepool_id}/nodes/#{node_id}/recycle", method: :post, response: {})
|
181
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
182
|
+
|
183
|
+
assert client.kubernetes.recycle_node_pool_instance(vke_id: vke_id, nodepool_id: nodepool_id, node_id: node_id)
|
184
|
+
end
|
185
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class LoadBalancersResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("load-balancers", response: stub_response(fixture: "load_balancers/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
load_balancers = client.load_balancers.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, load_balancers.class
|
12
|
+
assert_equal Vultr::LoadBalancer, load_balancers.data.first.class
|
13
|
+
assert_equal 1, load_balancers.total
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_create
|
17
|
+
body = {region: "ewr", balancing_algorithm: "roundrobin", label: "Example Load Balancer"}
|
18
|
+
stub = stub_request("load-balancers", method: :post, body: body, response: stub_response(fixture: "load_balancers/create"))
|
19
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
20
|
+
load_balancer = client.load_balancers.create(**body)
|
21
|
+
|
22
|
+
assert_equal Vultr::LoadBalancer, load_balancer.class
|
23
|
+
assert_equal "Example Load Balancer", load_balancer.label
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_retrieve
|
27
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
28
|
+
stub = stub_request("load-balancers/#{load_balancer_id}", response: stub_response(fixture: "load_balancers/retrieve"))
|
29
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
30
|
+
load_balancer = client.load_balancers.retrieve(load_balancer_id: load_balancer_id)
|
31
|
+
|
32
|
+
assert_equal Vultr::LoadBalancer, load_balancer.class
|
33
|
+
assert_equal "Example Load Balancer", load_balancer.label
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_update
|
37
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
38
|
+
body = {balancing_algorithm: "Changed"}
|
39
|
+
stub = stub_request("load-balancers/#{load_balancer_id}", method: :patch, body: body, response: stub_response(fixture: "load_balancers/update"))
|
40
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
41
|
+
assert client.load_balancers.update(load_balancer_id: load_balancer_id, **body)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_delete
|
45
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
46
|
+
stub = stub_request("load-balancers/#{load_balancer_id}", method: :delete, response: stub_response(fixture: "load_balancers/delete"))
|
47
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
48
|
+
assert client.load_balancers.delete(load_balancer_id: load_balancer_id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_list_forwarding_rules
|
52
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
53
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/forwarding-rules", response: stub_response(fixture: "load_balancers/list_forwarding_rules"))
|
54
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
55
|
+
forwarding_rules = client.load_balancers.list_forwarding_rules(load_balancer_id: load_balancer_id)
|
56
|
+
|
57
|
+
assert Vultr::Collection, forwarding_rules.class
|
58
|
+
assert Vultr::Object, forwarding_rules.data.first.class
|
59
|
+
assert 1, forwarding_rules.total
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_create_forwarding_rule
|
63
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
64
|
+
body = {frontend_protocol: "http", frontend_port: 8080, backend_protocol: "http", backend_port: 80}
|
65
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/forwarding-rules", method: :post, body: body, response: stub_response(fixture: "load_balancers/create_forwarding_rule"))
|
66
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
67
|
+
assert client.load_balancers.create_forwarding_rule(load_balancer_id: load_balancer_id, **body)
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_retrieve_forwarding_rule
|
71
|
+
load_balancer_id = "load-balancer-id"
|
72
|
+
forwarding_rule_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
73
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/forwarding-rules/#{forwarding_rule_id}", response: stub_response(fixture: "load_balancers/retrieve_forwarding_rule"))
|
74
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
75
|
+
forwarding_rule = client.load_balancers.retrieve_forwarding_rule(load_balancer_id: load_balancer_id, forwarding_rule_id: forwarding_rule_id)
|
76
|
+
|
77
|
+
assert Vultr::Object, forwarding_rule.class
|
78
|
+
assert "http", forwarding_rule.frontend_protocol
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_delete_forwarding_rule
|
82
|
+
load_balancer_id = "load-balancer-id"
|
83
|
+
forwarding_rule_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
84
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/forwarding-rules/#{forwarding_rule_id}", method: :delete, response: stub_response(fixture: "load_balancers/delete_forwarding_rule"))
|
85
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
86
|
+
assert client.load_balancers.delete_forwarding_rule(load_balancer_id: load_balancer_id, forwarding_rule_id: forwarding_rule_id)
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_list_firewall_rules
|
90
|
+
load_balancer_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
91
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/firewall-rules", response: stub_response(fixture: "load_balancers/list_firewall_rules"))
|
92
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
93
|
+
firewall_rules = client.load_balancers.list_firewall_rules(load_balancer_id: load_balancer_id)
|
94
|
+
|
95
|
+
assert Vultr::Collection, firewall_rules.class
|
96
|
+
assert Vultr::Object, firewall_rules.data.first.class
|
97
|
+
assert 1, firewall_rules.total
|
98
|
+
end
|
99
|
+
|
100
|
+
def test_retrieve_firewall_rule
|
101
|
+
load_balancer_id = "load-balancer-id"
|
102
|
+
firewall_rule_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
103
|
+
stub = stub_request("load-balancers/#{load_balancer_id}/firewall-rules/#{firewall_rule_id}", response: stub_response(fixture: "load_balancers/retrieve_firewall_rule"))
|
104
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
105
|
+
firewall_rule = client.load_balancers.retrieve_firewall_rule(load_balancer_id: load_balancer_id, firewall_rule_id: firewall_rule_id)
|
106
|
+
|
107
|
+
assert Vultr::Object, firewall_rule
|
108
|
+
assert 80, firewall_rule.port
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class ObjectStorageResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("object-storage", response: stub_response(fixture: "object_storage/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
object_storage = client.object_storage.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, object_storage.class
|
12
|
+
assert_equal Vultr::ObjectStorage, object_storage.data.first.class
|
13
|
+
assert_equal 1, object_storage.total
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_create
|
17
|
+
body = {label: "Example Object Storage", cluster_id: 2}
|
18
|
+
stub = stub_request("object-storage", method: :post, body: body, response: stub_response(fixture: "object_storage/create"))
|
19
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
20
|
+
object_storage = client.object_storage.create(**body)
|
21
|
+
|
22
|
+
assert_equal Vultr::ObjectStorage, object_storage.class
|
23
|
+
assert_equal "Example Object Storage", object_storage.label
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_retrieve
|
27
|
+
object_storage_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
28
|
+
stub = stub_request("object-storage/#{object_storage_id}", response: stub_response(fixture: "object_storage/retrieve"))
|
29
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
30
|
+
object_storage = client.object_storage.retrieve(object_storage_id: object_storage_id)
|
31
|
+
|
32
|
+
assert_equal Vultr::ObjectStorage, object_storage.class
|
33
|
+
assert_equal "Example Object Storage", object_storage.label
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_update
|
37
|
+
object_storage_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
38
|
+
body = {label: "Updated Object Storage Label"}
|
39
|
+
stub = stub_request("object-storage/#{object_storage_id}", method: :put, body: body, response: stub_response(fixture: "object_storage/create"))
|
40
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
41
|
+
assert client.object_storage.update(object_storage_id: object_storage_id, **body)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_delete
|
45
|
+
object_storage_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
46
|
+
stub = stub_request("object-storage/#{object_storage_id}", method: :delete, response: stub_response(fixture: "object_storage/delete"))
|
47
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
48
|
+
assert client.object_storage.delete(object_storage_id: object_storage_id)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_regenerate_keys
|
52
|
+
object_storage_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
53
|
+
stub = stub_request("object-storage/#{object_storage_id}/regenerate-keys", method: :post, response: stub_response(fixture: "object_storage/regenerate_keys", status: 201))
|
54
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
55
|
+
object_storage_keys = client.object_storage.regenerate_keys(object_storage_id: object_storage_id)
|
56
|
+
|
57
|
+
assert_equal "ewr1.vultrobjects.com", object_storage_keys.dig("s3_credentials", "s3_hostname")
|
58
|
+
assert_equal "00example11223344", object_storage_keys.dig("s3_credentials", "s3_access_key")
|
59
|
+
assert_equal "00example1122334455667788990011", object_storage_keys.dig("s3_credentials", "s3_secret_key")
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_list_clusters
|
63
|
+
stub = stub_request("object-storage/clusters", response: stub_response(fixture: "object_storage/list_clusters"))
|
64
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
65
|
+
clusters = client.object_storage.list_clusters
|
66
|
+
|
67
|
+
assert_equal Vultr::Collection, clusters.class
|
68
|
+
assert_equal Vultr::Object, clusters.data.first.class
|
69
|
+
assert_equal 1, clusters.total
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class OperatingSystemsResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("os", response: stub_response(fixture: "operating_systems/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
operating_systems = client.operating_systems.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, operating_systems.class
|
12
|
+
assert_equal Vultr::OperatingSystem, operating_systems.data.first.class
|
13
|
+
assert_equal 1, operating_systems.total
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class PlansResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("plans", response: stub_response(fixture: "plans/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
plans = client.plans.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, plans.class
|
12
|
+
assert_equal Vultr::Plan, plans.data.first.class
|
13
|
+
assert_equal 1, plans.total
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_list_metal
|
17
|
+
stub = stub_request("plans-metal", response: stub_response(fixture: "plans/list_metal"))
|
18
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
19
|
+
plans = client.plans.list_metal
|
20
|
+
|
21
|
+
assert_equal Vultr::Collection, plans.class
|
22
|
+
assert_equal Vultr::Plan, plans.data.first.class
|
23
|
+
assert_equal 1, plans.total
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "test_helper"
|
4
|
+
|
5
|
+
class PrivateNetworksResourceTest < Minitest::Test
|
6
|
+
def test_list
|
7
|
+
stub = stub_request("private-networks", response: stub_response(fixture: "private_networks/list"))
|
8
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
9
|
+
private_networks = client.private_networks.list
|
10
|
+
|
11
|
+
assert_equal Vultr::Collection, private_networks.class
|
12
|
+
assert_equal Vultr::PrivateNetwork, private_networks.data.first.class
|
13
|
+
assert_equal 1, private_networks.total
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_create
|
17
|
+
body = {region: "ewr", description: "Example Private Network", v4_subnet: "10.99.0.0", v4_subnet_mask: 24}
|
18
|
+
stub = stub_request("private-networks", method: :post, body: body, response: stub_response(fixture: "private_networks/create", status: 201))
|
19
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
20
|
+
private_network = client.private_networks.create(**body)
|
21
|
+
|
22
|
+
assert_equal Vultr::PrivateNetwork, private_network.class
|
23
|
+
assert_equal "Example Private Network", private_network.description
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_retrieve
|
27
|
+
private_network_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
28
|
+
stub = stub_request("private-networks/#{private_network_id}", response: stub_response(fixture: "private_networks/retrieve"))
|
29
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
30
|
+
private_network = client.private_networks.retrieve(network_id: private_network_id)
|
31
|
+
|
32
|
+
assert_equal Vultr::PrivateNetwork, private_network.class
|
33
|
+
assert_equal "Example Network Description", private_network.description
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_update
|
37
|
+
private_network_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
38
|
+
body = {description: "Example Private Network"}
|
39
|
+
stub = stub_request("private-networks/#{private_network_id}", method: :put, body: body, response: stub_response(fixture: "private_networks/update"))
|
40
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
41
|
+
assert client.private_networks.update(network_id: private_network_id, **body)
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_delete
|
45
|
+
private_network_id = "cb676a46-66fd-4dfb-b839-443f2e6c0b60"
|
46
|
+
stub = stub_request("private-networks/#{private_network_id}", method: :delete, response: stub_response(fixture: "private_networks/delete"))
|
47
|
+
client = Vultr::Client.new(api_key: "fake", adapter: :test, stubs: stub)
|
48
|
+
assert client.private_networks.delete(network_id: private_network_id)
|
49
|
+
end
|
50
|
+
end
|