fog-oneandone 1.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 +7 -0
- data/.gitignore +36 -0
- data/CONTRIBUTING.md +276 -0
- data/CONTRIBUTORS.md +1 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +317 -0
- data/bin/fog +78 -0
- data/examples/example_app.rb +80 -0
- data/fog-oneandone.gemspec +22 -0
- data/gemfiles/Gemfile-edge +7 -0
- data/lib/fog-oneandone.rb +10 -0
- data/lib/oneandone/compute.rb +713 -0
- data/lib/oneandone/core.rb +11 -0
- data/lib/oneandone/models/compute/firewall.rb +128 -0
- data/lib/oneandone/models/compute/firewalls.rb +24 -0
- data/lib/oneandone/models/compute/image.rb +72 -0
- data/lib/oneandone/models/compute/images.rb +24 -0
- data/lib/oneandone/models/compute/load_balancer.rb +149 -0
- data/lib/oneandone/models/compute/load_balancers.rb +24 -0
- data/lib/oneandone/models/compute/monitoring_policies.rb +24 -0
- data/lib/oneandone/models/compute/monitoring_policy.rb +196 -0
- data/lib/oneandone/models/compute/private_network.rb +105 -0
- data/lib/oneandone/models/compute/private_networks.rb +24 -0
- data/lib/oneandone/models/compute/public_ip.rb +68 -0
- data/lib/oneandone/models/compute/public_ips.rb +24 -0
- data/lib/oneandone/models/compute/server.rb +434 -0
- data/lib/oneandone/models/compute/servers.rb +24 -0
- data/lib/oneandone/models/compute/shared_storage.rb +101 -0
- data/lib/oneandone/models/compute/shared_storages.rb +24 -0
- data/lib/oneandone/models/compute/vpn.rb +70 -0
- data/lib/oneandone/models/compute/vpns.rb +24 -0
- data/lib/oneandone/requests/compute/access.rb +35 -0
- data/lib/oneandone/requests/compute/add_firewall.rb +70 -0
- data/lib/oneandone/requests/compute/add_firewall_ips.rb +67 -0
- data/lib/oneandone/requests/compute/add_firewall_rules.rb +68 -0
- data/lib/oneandone/requests/compute/add_hdds.rb +65 -0
- data/lib/oneandone/requests/compute/add_load_balancer.rb +76 -0
- data/lib/oneandone/requests/compute/add_load_balancer_ips.rb +67 -0
- data/lib/oneandone/requests/compute/add_load_balancer_rules.rb +68 -0
- data/lib/oneandone/requests/compute/add_mp_servers.rb +64 -0
- data/lib/oneandone/requests/compute/add_ports.rb +65 -0
- data/lib/oneandone/requests/compute/add_private_network.rb +65 -0
- data/lib/oneandone/requests/compute/add_private_network_servers.rb +67 -0
- data/lib/oneandone/requests/compute/add_processes.rb +65 -0
- data/lib/oneandone/requests/compute/add_server_ip.rb +72 -0
- data/lib/oneandone/requests/compute/add_shared_storage_servers.rb +64 -0
- data/lib/oneandone/requests/compute/change_password.rb +45 -0
- data/lib/oneandone/requests/compute/change_status.rb +69 -0
- data/lib/oneandone/requests/compute/clone_server.rb +67 -0
- data/lib/oneandone/requests/compute/create_firewall.rb +78 -0
- data/lib/oneandone/requests/compute/create_image.rb +101 -0
- data/lib/oneandone/requests/compute/create_load_balancer.rb +104 -0
- data/lib/oneandone/requests/compute/create_monitoring_policy.rb +93 -0
- data/lib/oneandone/requests/compute/create_private_network.rb +82 -0
- data/lib/oneandone/requests/compute/create_public_ip.rb +77 -0
- data/lib/oneandone/requests/compute/create_server.rb +139 -0
- data/lib/oneandone/requests/compute/create_shared_storage.rb +83 -0
- data/lib/oneandone/requests/compute/create_snapshot.rb +51 -0
- data/lib/oneandone/requests/compute/create_vpn.rb +80 -0
- data/lib/oneandone/requests/compute/delete_firewall.rb +51 -0
- data/lib/oneandone/requests/compute/delete_firewall_rule.rb +60 -0
- data/lib/oneandone/requests/compute/delete_hdd.rb +61 -0
- data/lib/oneandone/requests/compute/delete_image.rb +51 -0
- data/lib/oneandone/requests/compute/delete_load_balancer.rb +51 -0
- data/lib/oneandone/requests/compute/delete_load_balancer_rule.rb +60 -0
- data/lib/oneandone/requests/compute/delete_monitoring_policy.rb +51 -0
- data/lib/oneandone/requests/compute/delete_port.rb +60 -0
- data/lib/oneandone/requests/compute/delete_private_network.rb +51 -0
- data/lib/oneandone/requests/compute/delete_process.rb +60 -0
- data/lib/oneandone/requests/compute/delete_public_ip.rb +51 -0
- data/lib/oneandone/requests/compute/delete_server.rb +51 -0
- data/lib/oneandone/requests/compute/delete_server_ip.rb +60 -0
- data/lib/oneandone/requests/compute/delete_shared_storage.rb +51 -0
- data/lib/oneandone/requests/compute/delete_snapshot.rb +51 -0
- data/lib/oneandone/requests/compute/delete_vpn.rb +51 -0
- data/lib/oneandone/requests/compute/eject_dvd.rb +51 -0
- data/lib/oneandone/requests/compute/get_datacenter.rb +50 -0
- data/lib/oneandone/requests/compute/get_dvd.rb +50 -0
- data/lib/oneandone/requests/compute/get_dvd_iso.rb +50 -0
- data/lib/oneandone/requests/compute/get_firewall.rb +50 -0
- data/lib/oneandone/requests/compute/get_firewall_ip.rb +59 -0
- data/lib/oneandone/requests/compute/get_firewall_rule.rb +59 -0
- data/lib/oneandone/requests/compute/get_fixed_server.rb +50 -0
- data/lib/oneandone/requests/compute/get_hardware.rb +50 -0
- data/lib/oneandone/requests/compute/get_hdd.rb +60 -0
- data/lib/oneandone/requests/compute/get_hdds.rb +50 -0
- data/lib/oneandone/requests/compute/get_image.rb +50 -0
- data/lib/oneandone/requests/compute/get_load_balancer.rb +50 -0
- data/lib/oneandone/requests/compute/get_load_balancer_ip.rb +59 -0
- data/lib/oneandone/requests/compute/get_load_balancer_rule.rb +59 -0
- data/lib/oneandone/requests/compute/get_log.rb +51 -0
- data/lib/oneandone/requests/compute/get_monitored_server.rb +49 -0
- data/lib/oneandone/requests/compute/get_monitoring_policy.rb +50 -0
- data/lib/oneandone/requests/compute/get_mp_server.rb +59 -0
- data/lib/oneandone/requests/compute/get_port.rb +59 -0
- data/lib/oneandone/requests/compute/get_private_network.rb +50 -0
- data/lib/oneandone/requests/compute/get_private_network_server.rb +59 -0
- data/lib/oneandone/requests/compute/get_process.rb +59 -0
- data/lib/oneandone/requests/compute/get_public_ip.rb +50 -0
- data/lib/oneandone/requests/compute/get_server.rb +50 -0
- data/lib/oneandone/requests/compute/get_server_appliance.rb +50 -0
- data/lib/oneandone/requests/compute/get_server_image.rb +50 -0
- data/lib/oneandone/requests/compute/get_server_ip.rb +59 -0
- data/lib/oneandone/requests/compute/get_server_private_network.rb +59 -0
- data/lib/oneandone/requests/compute/get_shared_storage.rb +50 -0
- data/lib/oneandone/requests/compute/get_shared_storage_server.rb +59 -0
- data/lib/oneandone/requests/compute/get_snapshot.rb +50 -0
- data/lib/oneandone/requests/compute/get_vpn.rb +50 -0
- data/lib/oneandone/requests/compute/install_server_image.rb +72 -0
- data/lib/oneandone/requests/compute/list_datacenters.rb +56 -0
- data/lib/oneandone/requests/compute/list_dvds.rb +56 -0
- data/lib/oneandone/requests/compute/list_firewall_ips.rb +50 -0
- data/lib/oneandone/requests/compute/list_firewall_rules.rb +50 -0
- data/lib/oneandone/requests/compute/list_firewalls.rb +56 -0
- data/lib/oneandone/requests/compute/list_fixed_servers.rb +40 -0
- data/lib/oneandone/requests/compute/list_images.rb +56 -0
- data/lib/oneandone/requests/compute/list_ip_firewalls.rb +59 -0
- data/lib/oneandone/requests/compute/list_ip_load_balancers.rb +59 -0
- data/lib/oneandone/requests/compute/list_load_balancer_ips.rb +50 -0
- data/lib/oneandone/requests/compute/list_load_balancer_rules.rb +50 -0
- data/lib/oneandone/requests/compute/list_load_balancers.rb +56 -0
- data/lib/oneandone/requests/compute/list_logs.rb +59 -0
- data/lib/oneandone/requests/compute/list_monitored_servers.rb +51 -0
- data/lib/oneandone/requests/compute/list_monitoring_policies.rb +56 -0
- data/lib/oneandone/requests/compute/list_mp_servers.rb +50 -0
- data/lib/oneandone/requests/compute/list_ports.rb +51 -0
- data/lib/oneandone/requests/compute/list_private_network_servers.rb +50 -0
- data/lib/oneandone/requests/compute/list_private_networks.rb +56 -0
- data/lib/oneandone/requests/compute/list_processes.rb +51 -0
- data/lib/oneandone/requests/compute/list_public_ips.rb +56 -0
- data/lib/oneandone/requests/compute/list_server_appliances.rb +56 -0
- data/lib/oneandone/requests/compute/list_server_ips.rb +50 -0
- data/lib/oneandone/requests/compute/list_server_private_networks.rb +50 -0
- data/lib/oneandone/requests/compute/list_servers.rb +56 -0
- data/lib/oneandone/requests/compute/list_shared_storage_servers.rb +50 -0
- data/lib/oneandone/requests/compute/list_shared_storages.rb +56 -0
- data/lib/oneandone/requests/compute/list_usages.rb +54 -0
- data/lib/oneandone/requests/compute/list_vpns.rb +56 -0
- data/lib/oneandone/requests/compute/load_dvd.rb +65 -0
- data/lib/oneandone/requests/compute/ping.rb +38 -0
- data/lib/oneandone/requests/compute/ping_auth.rb +38 -0
- data/lib/oneandone/requests/compute/remove_firewall.rb +60 -0
- data/lib/oneandone/requests/compute/remove_firewall_ip.rb +60 -0
- data/lib/oneandone/requests/compute/remove_load_balancer.rb +71 -0
- data/lib/oneandone/requests/compute/remove_load_balancer_ip.rb +60 -0
- data/lib/oneandone/requests/compute/remove_mp_server.rb +60 -0
- data/lib/oneandone/requests/compute/remove_private_network.rb +60 -0
- data/lib/oneandone/requests/compute/remove_private_network_server.rb +60 -0
- data/lib/oneandone/requests/compute/remove_shared_storage_server.rb +60 -0
- data/lib/oneandone/requests/compute/restore_snapshot.rb +35 -0
- data/lib/oneandone/requests/compute/status.rb +50 -0
- data/lib/oneandone/requests/compute/update_firewall.rb +76 -0
- data/lib/oneandone/requests/compute/update_hardware.rb +82 -0
- data/lib/oneandone/requests/compute/update_hdd.rb +71 -0
- data/lib/oneandone/requests/compute/update_image.rb +80 -0
- data/lib/oneandone/requests/compute/update_load_balancer.rb +96 -0
- data/lib/oneandone/requests/compute/update_monitoring_policy.rb +82 -0
- data/lib/oneandone/requests/compute/update_port.rb +74 -0
- data/lib/oneandone/requests/compute/update_private_network.rb +82 -0
- data/lib/oneandone/requests/compute/update_process.rb +76 -0
- data/lib/oneandone/requests/compute/update_public_ip.rb +71 -0
- data/lib/oneandone/requests/compute/update_server.rb +76 -0
- data/lib/oneandone/requests/compute/update_shared_storage.rb +80 -0
- data/lib/oneandone/requests/compute/update_vpn.rb +76 -0
- data/tests/oneandone/test_firewalls.rb +188 -0
- data/tests/oneandone/test_images.rb +79 -0
- data/tests/oneandone/test_load_balancers.rb +192 -0
- data/tests/oneandone/test_monitoring_policies.rb +342 -0
- data/tests/oneandone/test_private_networks.rb +123 -0
- data/tests/oneandone/test_public_ips.rb +75 -0
- data/tests/oneandone/test_servers.rb +465 -0
- data/tests/oneandone/test_shared_storages.rb +131 -0
- metadata +259 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns information about a server's private network
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__private_networks__private_network_id__get]
|
|
10
|
+
##
|
|
11
|
+
def get_server_private_network(server_id: nil, private_network_id: nil)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/servers/#{server_id}/private_networks/#{private_network_id}"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def get_server_private_network(server_id: nil, private_network_id: nil)
|
|
28
|
+
|
|
29
|
+
# Search for server
|
|
30
|
+
if server = self.data[:servers].find {
|
|
31
|
+
|hash| hash['id'] == server_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Search for private network
|
|
39
|
+
if private_network = server['private_networks'].find {
|
|
40
|
+
|hash| hash['id'] == private_network_id
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
raise Fog::Errors::NotFound.new('The requested private network could
|
|
44
|
+
not be found.')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Return Response Object to User
|
|
48
|
+
response = Excon::Response.new
|
|
49
|
+
response.status = 200
|
|
50
|
+
response.body = private_network
|
|
51
|
+
response
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end # Mock
|
|
56
|
+
|
|
57
|
+
end # OneAndOne
|
|
58
|
+
end # Compute
|
|
59
|
+
end # Fog
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns information about a shared storage
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#shared_storages__shared_storage_id__get]
|
|
10
|
+
##
|
|
11
|
+
def get_shared_storage(shared_storage_id)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/shared_storages/#{shared_storage_id}"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def get_shared_storage(shared_storage_id)
|
|
28
|
+
|
|
29
|
+
# Search for shared storage to return
|
|
30
|
+
if shared_storage = self.data[:shared_storages].find {
|
|
31
|
+
|hash| hash['id'] == shared_storage_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Return Response Object to User
|
|
39
|
+
response = Excon::Response.new
|
|
40
|
+
response.status = 202
|
|
41
|
+
response.body = shared_storage
|
|
42
|
+
response
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end # Mock
|
|
47
|
+
|
|
48
|
+
end # OneAndOne
|
|
49
|
+
end # Compute
|
|
50
|
+
end # Fog
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns information about a server attached to a shared storage
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#shared_storages__shared_storage_id__servers__server_id__get]
|
|
10
|
+
##
|
|
11
|
+
def get_shared_storage_server(shared_storage_id: nil, server_id: nil)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/shared_storages/#{shared_storage_id}/servers/#{server_id}"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def get_shared_storage_server(shared_storage_id: nil, server_id: nil)
|
|
28
|
+
|
|
29
|
+
# Search for shared storage
|
|
30
|
+
if shared_storage = self.data[:shared_storages].find {
|
|
31
|
+
|hash| hash['id'] == shared_storage_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Search for server to return
|
|
39
|
+
if server = shared_storage['servers'].find {
|
|
40
|
+
|index| index['id'] == server_id
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
raise Fog::Errors::NotFound.new('The requested server could
|
|
44
|
+
not be found.')
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Return Response Object to User
|
|
48
|
+
response = Excon::Response.new
|
|
49
|
+
response.status = 202
|
|
50
|
+
response.body = server
|
|
51
|
+
response
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end # Mock
|
|
56
|
+
|
|
57
|
+
end # OneAndOne
|
|
58
|
+
end # Compute
|
|
59
|
+
end # Fog
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns information about a server's snapshot
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__snapshots_get]
|
|
10
|
+
##
|
|
11
|
+
def get_snapshot(server_id)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/servers/#{server_id}/snapshots"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def get_snapshot(server_id)
|
|
28
|
+
|
|
29
|
+
# Search for server
|
|
30
|
+
if server = self.data[:servers].find {
|
|
31
|
+
|hash| hash['id'] == server_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Return Response Object to User
|
|
39
|
+
response = Excon::Response.new
|
|
40
|
+
response.status = 200
|
|
41
|
+
response.body = server['snapshot']
|
|
42
|
+
response
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end # Mock
|
|
47
|
+
|
|
48
|
+
end # OneAndOne
|
|
49
|
+
end # Compute
|
|
50
|
+
end # Fog
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns information about a VPN
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#vpns__vpn_id__get]
|
|
10
|
+
##
|
|
11
|
+
def get_vpn(vpn_id)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/vpns/#{vpn_id}"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def get_vpn(vpn_id)
|
|
28
|
+
|
|
29
|
+
# Search for VPN to return
|
|
30
|
+
if vpn = self.data[:vpns].find {
|
|
31
|
+
|hash| hash['id'] == vpn_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Return Response Object to User
|
|
39
|
+
response = Excon::Response.new
|
|
40
|
+
response.status = 200
|
|
41
|
+
response.body = vpn
|
|
42
|
+
response
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end # Mock
|
|
47
|
+
|
|
48
|
+
end # OneAndOne
|
|
49
|
+
end # Compute
|
|
50
|
+
end # Fog
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Install an image onto a server
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__image_put]
|
|
10
|
+
##
|
|
11
|
+
def install_server_image(server_id: nil, image_id: nil, password: nil,
|
|
12
|
+
firewall_id: nil)
|
|
13
|
+
|
|
14
|
+
# Build PUT body
|
|
15
|
+
image_specs = {
|
|
16
|
+
'id' => image_id,
|
|
17
|
+
'password' => password,
|
|
18
|
+
'firewall_policy' => {
|
|
19
|
+
'id' => firewall_id
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Clean out null keys in PUT body
|
|
24
|
+
body = clean_hash(image_specs)
|
|
25
|
+
|
|
26
|
+
# Stringify the PUT body
|
|
27
|
+
string_body = Fog::JSON.encode(body)
|
|
28
|
+
|
|
29
|
+
# Request
|
|
30
|
+
params = {
|
|
31
|
+
'method' => :put,
|
|
32
|
+
'endpoint' => "/servers/#{server_id}/image",
|
|
33
|
+
'body' => string_body
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
request(params)
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end # Real
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class Mock
|
|
44
|
+
|
|
45
|
+
def install_server_image(server_id: nil, image_id: nil, password: nil,
|
|
46
|
+
firewall_id: nil)
|
|
47
|
+
|
|
48
|
+
# Search for server
|
|
49
|
+
if server = self.data[:servers].find {
|
|
50
|
+
|hash| hash['id'] == server_id
|
|
51
|
+
}
|
|
52
|
+
else
|
|
53
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
54
|
+
not be found.')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Update image info
|
|
58
|
+
server['image']['id'] = image_id
|
|
59
|
+
|
|
60
|
+
# Return Response Object to User
|
|
61
|
+
response = Excon::Response.new
|
|
62
|
+
response.status = 202
|
|
63
|
+
response.body = server
|
|
64
|
+
response
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
end # Mock
|
|
69
|
+
|
|
70
|
+
end # OneAndOne
|
|
71
|
+
end # Compute
|
|
72
|
+
end # Fog
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of all available data centers.
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#datacenters_get]
|
|
10
|
+
##
|
|
11
|
+
def list_datacenters(page: nil, per_page: nil, sort: nil, q: nil,
|
|
12
|
+
fields: nil)
|
|
13
|
+
|
|
14
|
+
# Build hash for query parameters
|
|
15
|
+
keyword_args = {
|
|
16
|
+
:page => page,
|
|
17
|
+
:per_page => per_page,
|
|
18
|
+
:sort => sort,
|
|
19
|
+
:q => q,
|
|
20
|
+
:fields => fields
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Clean out null query parameters
|
|
24
|
+
query = clean_hash(keyword_args)
|
|
25
|
+
|
|
26
|
+
# Request
|
|
27
|
+
params = {
|
|
28
|
+
'method' => :get,
|
|
29
|
+
'endpoint' => '/datacenters',
|
|
30
|
+
'params' => query
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
request(params)
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end # Real
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Mock
|
|
41
|
+
|
|
42
|
+
def list_datacenters(page: nil, per_page: nil, sort: nil, q: nil,
|
|
43
|
+
fields: nil)
|
|
44
|
+
|
|
45
|
+
response = Excon::Response.new
|
|
46
|
+
response.status = 200
|
|
47
|
+
response.body = self.data[:datacenters]
|
|
48
|
+
response
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end # Mock
|
|
53
|
+
|
|
54
|
+
end # OneAndOne
|
|
55
|
+
end # Compute
|
|
56
|
+
end # Fog
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of operative systems and tools that you can load into your virtual DVD unit
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#dvd_isos_get]
|
|
10
|
+
##
|
|
11
|
+
def list_dvds(page: nil, per_page: nil, sort: nil, q: nil,
|
|
12
|
+
fields: nil)
|
|
13
|
+
|
|
14
|
+
# Build hash for query parameters
|
|
15
|
+
keyword_args = {
|
|
16
|
+
:page => page,
|
|
17
|
+
:per_page => per_page,
|
|
18
|
+
:sort => sort,
|
|
19
|
+
:q => q,
|
|
20
|
+
:fields => fields
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Clean out null query parameters
|
|
24
|
+
query = clean_hash(keyword_args)
|
|
25
|
+
|
|
26
|
+
# Request
|
|
27
|
+
params = {
|
|
28
|
+
'method' => :get,
|
|
29
|
+
'endpoint' => '/dvd_isos',
|
|
30
|
+
'params' => query
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
request(params)
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end # Real
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Mock
|
|
41
|
+
|
|
42
|
+
def list_dvds(page: nil, per_page: nil, sort: nil, q: nil,
|
|
43
|
+
fields: nil)
|
|
44
|
+
|
|
45
|
+
response = Excon::Response.new
|
|
46
|
+
response.status = 200
|
|
47
|
+
response.body = self.data[:dvd_isos]
|
|
48
|
+
response
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end # Mock
|
|
53
|
+
|
|
54
|
+
end # OneAndOne
|
|
55
|
+
end # Compute
|
|
56
|
+
end # Fog
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of IPs assigned to a firewall policy
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies__firewall_id__server_ips_get]
|
|
10
|
+
##
|
|
11
|
+
def list_firewall_ips(firewall_id)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/firewall_policies/#{firewall_id}/server_ips"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def list_firewall_ips(firewall_id)
|
|
28
|
+
|
|
29
|
+
# Search for firewall to return
|
|
30
|
+
if firewall = self.data[:firewalls].find {
|
|
31
|
+
|hash| hash['id'] == firewall_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Return Response Object to User
|
|
39
|
+
response = Excon::Response.new
|
|
40
|
+
response.status = 202
|
|
41
|
+
response.body = firewall['server_ips']
|
|
42
|
+
response
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end # Mock
|
|
47
|
+
|
|
48
|
+
end # OneAndOne
|
|
49
|
+
end # Compute
|
|
50
|
+
end # Fog
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of a firewall policy's rules
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies__firewall_id__rules_get]
|
|
10
|
+
##
|
|
11
|
+
def list_firewall_rules(firewall_id)
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => "/firewall_policies/#{firewall_id}/rules"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def list_firewall_rules(firewall_id)
|
|
28
|
+
|
|
29
|
+
# Search for firewall to return
|
|
30
|
+
if firewall = self.data[:firewalls].find {
|
|
31
|
+
|hash| hash['id'] == firewall_id
|
|
32
|
+
}
|
|
33
|
+
else
|
|
34
|
+
raise Fog::Errors::NotFound.new('The requested resource could
|
|
35
|
+
not be found.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Return Response Object to User
|
|
39
|
+
response = Excon::Response.new
|
|
40
|
+
response.status = 202
|
|
41
|
+
response.body = firewall['rules']
|
|
42
|
+
response
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end # Mock
|
|
47
|
+
|
|
48
|
+
end # OneAndOne
|
|
49
|
+
end # Compute
|
|
50
|
+
end # Fog
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of all firewall policies on your account
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies_get]
|
|
10
|
+
##
|
|
11
|
+
def list_firewalls(page: nil, per_page: nil, sort: nil, q: nil,
|
|
12
|
+
fields: nil)
|
|
13
|
+
|
|
14
|
+
# Build hash for query parameters
|
|
15
|
+
keyword_args = {
|
|
16
|
+
:page => page,
|
|
17
|
+
:per_page => per_page,
|
|
18
|
+
:sort => sort,
|
|
19
|
+
:q => q,
|
|
20
|
+
:fields => fields
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Clean out null query parameters
|
|
24
|
+
query = clean_hash(keyword_args)
|
|
25
|
+
|
|
26
|
+
# Request
|
|
27
|
+
params = {
|
|
28
|
+
'method' => :get,
|
|
29
|
+
'endpoint' => '/firewall_policies',
|
|
30
|
+
'params' => query
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
request(params)
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end # Real
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Mock
|
|
41
|
+
|
|
42
|
+
def list_firewalls(page: nil, per_page: nil, sort: nil, q: nil,
|
|
43
|
+
fields: nil)
|
|
44
|
+
|
|
45
|
+
response = Excon::Response.new
|
|
46
|
+
response.status = 200
|
|
47
|
+
response.body = self.data[:firewalls]
|
|
48
|
+
response
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
end # Mock
|
|
53
|
+
|
|
54
|
+
end # OneAndOne
|
|
55
|
+
end # Compute
|
|
56
|
+
end # Fog
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class OneAndOne
|
|
4
|
+
|
|
5
|
+
class Real
|
|
6
|
+
|
|
7
|
+
##
|
|
8
|
+
# Returns a list of fixed server options
|
|
9
|
+
# URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers_fixed_instance_sizes_get]
|
|
10
|
+
##
|
|
11
|
+
def list_fixed_servers
|
|
12
|
+
|
|
13
|
+
params = {
|
|
14
|
+
'method' => :get,
|
|
15
|
+
'endpoint' => '/servers/fixed_instance_sizes'
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
request(params)
|
|
19
|
+
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end # Real
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Mock
|
|
26
|
+
|
|
27
|
+
def list_fixed_servers
|
|
28
|
+
|
|
29
|
+
response = Excon::Response.new
|
|
30
|
+
response.status = 200
|
|
31
|
+
response.body = self.data[:fixed_servers]
|
|
32
|
+
response
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end # Mock
|
|
37
|
+
|
|
38
|
+
end # OneAndOne
|
|
39
|
+
end # Compute
|
|
40
|
+
end # Fog
|