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.
Files changed (174) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +36 -0
  3. data/CONTRIBUTING.md +276 -0
  4. data/CONTRIBUTORS.md +1 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.md +20 -0
  7. data/README.md +317 -0
  8. data/bin/fog +78 -0
  9. data/examples/example_app.rb +80 -0
  10. data/fog-oneandone.gemspec +22 -0
  11. data/gemfiles/Gemfile-edge +7 -0
  12. data/lib/fog-oneandone.rb +10 -0
  13. data/lib/oneandone/compute.rb +713 -0
  14. data/lib/oneandone/core.rb +11 -0
  15. data/lib/oneandone/models/compute/firewall.rb +128 -0
  16. data/lib/oneandone/models/compute/firewalls.rb +24 -0
  17. data/lib/oneandone/models/compute/image.rb +72 -0
  18. data/lib/oneandone/models/compute/images.rb +24 -0
  19. data/lib/oneandone/models/compute/load_balancer.rb +149 -0
  20. data/lib/oneandone/models/compute/load_balancers.rb +24 -0
  21. data/lib/oneandone/models/compute/monitoring_policies.rb +24 -0
  22. data/lib/oneandone/models/compute/monitoring_policy.rb +196 -0
  23. data/lib/oneandone/models/compute/private_network.rb +105 -0
  24. data/lib/oneandone/models/compute/private_networks.rb +24 -0
  25. data/lib/oneandone/models/compute/public_ip.rb +68 -0
  26. data/lib/oneandone/models/compute/public_ips.rb +24 -0
  27. data/lib/oneandone/models/compute/server.rb +434 -0
  28. data/lib/oneandone/models/compute/servers.rb +24 -0
  29. data/lib/oneandone/models/compute/shared_storage.rb +101 -0
  30. data/lib/oneandone/models/compute/shared_storages.rb +24 -0
  31. data/lib/oneandone/models/compute/vpn.rb +70 -0
  32. data/lib/oneandone/models/compute/vpns.rb +24 -0
  33. data/lib/oneandone/requests/compute/access.rb +35 -0
  34. data/lib/oneandone/requests/compute/add_firewall.rb +70 -0
  35. data/lib/oneandone/requests/compute/add_firewall_ips.rb +67 -0
  36. data/lib/oneandone/requests/compute/add_firewall_rules.rb +68 -0
  37. data/lib/oneandone/requests/compute/add_hdds.rb +65 -0
  38. data/lib/oneandone/requests/compute/add_load_balancer.rb +76 -0
  39. data/lib/oneandone/requests/compute/add_load_balancer_ips.rb +67 -0
  40. data/lib/oneandone/requests/compute/add_load_balancer_rules.rb +68 -0
  41. data/lib/oneandone/requests/compute/add_mp_servers.rb +64 -0
  42. data/lib/oneandone/requests/compute/add_ports.rb +65 -0
  43. data/lib/oneandone/requests/compute/add_private_network.rb +65 -0
  44. data/lib/oneandone/requests/compute/add_private_network_servers.rb +67 -0
  45. data/lib/oneandone/requests/compute/add_processes.rb +65 -0
  46. data/lib/oneandone/requests/compute/add_server_ip.rb +72 -0
  47. data/lib/oneandone/requests/compute/add_shared_storage_servers.rb +64 -0
  48. data/lib/oneandone/requests/compute/change_password.rb +45 -0
  49. data/lib/oneandone/requests/compute/change_status.rb +69 -0
  50. data/lib/oneandone/requests/compute/clone_server.rb +67 -0
  51. data/lib/oneandone/requests/compute/create_firewall.rb +78 -0
  52. data/lib/oneandone/requests/compute/create_image.rb +101 -0
  53. data/lib/oneandone/requests/compute/create_load_balancer.rb +104 -0
  54. data/lib/oneandone/requests/compute/create_monitoring_policy.rb +93 -0
  55. data/lib/oneandone/requests/compute/create_private_network.rb +82 -0
  56. data/lib/oneandone/requests/compute/create_public_ip.rb +77 -0
  57. data/lib/oneandone/requests/compute/create_server.rb +139 -0
  58. data/lib/oneandone/requests/compute/create_shared_storage.rb +83 -0
  59. data/lib/oneandone/requests/compute/create_snapshot.rb +51 -0
  60. data/lib/oneandone/requests/compute/create_vpn.rb +80 -0
  61. data/lib/oneandone/requests/compute/delete_firewall.rb +51 -0
  62. data/lib/oneandone/requests/compute/delete_firewall_rule.rb +60 -0
  63. data/lib/oneandone/requests/compute/delete_hdd.rb +61 -0
  64. data/lib/oneandone/requests/compute/delete_image.rb +51 -0
  65. data/lib/oneandone/requests/compute/delete_load_balancer.rb +51 -0
  66. data/lib/oneandone/requests/compute/delete_load_balancer_rule.rb +60 -0
  67. data/lib/oneandone/requests/compute/delete_monitoring_policy.rb +51 -0
  68. data/lib/oneandone/requests/compute/delete_port.rb +60 -0
  69. data/lib/oneandone/requests/compute/delete_private_network.rb +51 -0
  70. data/lib/oneandone/requests/compute/delete_process.rb +60 -0
  71. data/lib/oneandone/requests/compute/delete_public_ip.rb +51 -0
  72. data/lib/oneandone/requests/compute/delete_server.rb +51 -0
  73. data/lib/oneandone/requests/compute/delete_server_ip.rb +60 -0
  74. data/lib/oneandone/requests/compute/delete_shared_storage.rb +51 -0
  75. data/lib/oneandone/requests/compute/delete_snapshot.rb +51 -0
  76. data/lib/oneandone/requests/compute/delete_vpn.rb +51 -0
  77. data/lib/oneandone/requests/compute/eject_dvd.rb +51 -0
  78. data/lib/oneandone/requests/compute/get_datacenter.rb +50 -0
  79. data/lib/oneandone/requests/compute/get_dvd.rb +50 -0
  80. data/lib/oneandone/requests/compute/get_dvd_iso.rb +50 -0
  81. data/lib/oneandone/requests/compute/get_firewall.rb +50 -0
  82. data/lib/oneandone/requests/compute/get_firewall_ip.rb +59 -0
  83. data/lib/oneandone/requests/compute/get_firewall_rule.rb +59 -0
  84. data/lib/oneandone/requests/compute/get_fixed_server.rb +50 -0
  85. data/lib/oneandone/requests/compute/get_hardware.rb +50 -0
  86. data/lib/oneandone/requests/compute/get_hdd.rb +60 -0
  87. data/lib/oneandone/requests/compute/get_hdds.rb +50 -0
  88. data/lib/oneandone/requests/compute/get_image.rb +50 -0
  89. data/lib/oneandone/requests/compute/get_load_balancer.rb +50 -0
  90. data/lib/oneandone/requests/compute/get_load_balancer_ip.rb +59 -0
  91. data/lib/oneandone/requests/compute/get_load_balancer_rule.rb +59 -0
  92. data/lib/oneandone/requests/compute/get_log.rb +51 -0
  93. data/lib/oneandone/requests/compute/get_monitored_server.rb +49 -0
  94. data/lib/oneandone/requests/compute/get_monitoring_policy.rb +50 -0
  95. data/lib/oneandone/requests/compute/get_mp_server.rb +59 -0
  96. data/lib/oneandone/requests/compute/get_port.rb +59 -0
  97. data/lib/oneandone/requests/compute/get_private_network.rb +50 -0
  98. data/lib/oneandone/requests/compute/get_private_network_server.rb +59 -0
  99. data/lib/oneandone/requests/compute/get_process.rb +59 -0
  100. data/lib/oneandone/requests/compute/get_public_ip.rb +50 -0
  101. data/lib/oneandone/requests/compute/get_server.rb +50 -0
  102. data/lib/oneandone/requests/compute/get_server_appliance.rb +50 -0
  103. data/lib/oneandone/requests/compute/get_server_image.rb +50 -0
  104. data/lib/oneandone/requests/compute/get_server_ip.rb +59 -0
  105. data/lib/oneandone/requests/compute/get_server_private_network.rb +59 -0
  106. data/lib/oneandone/requests/compute/get_shared_storage.rb +50 -0
  107. data/lib/oneandone/requests/compute/get_shared_storage_server.rb +59 -0
  108. data/lib/oneandone/requests/compute/get_snapshot.rb +50 -0
  109. data/lib/oneandone/requests/compute/get_vpn.rb +50 -0
  110. data/lib/oneandone/requests/compute/install_server_image.rb +72 -0
  111. data/lib/oneandone/requests/compute/list_datacenters.rb +56 -0
  112. data/lib/oneandone/requests/compute/list_dvds.rb +56 -0
  113. data/lib/oneandone/requests/compute/list_firewall_ips.rb +50 -0
  114. data/lib/oneandone/requests/compute/list_firewall_rules.rb +50 -0
  115. data/lib/oneandone/requests/compute/list_firewalls.rb +56 -0
  116. data/lib/oneandone/requests/compute/list_fixed_servers.rb +40 -0
  117. data/lib/oneandone/requests/compute/list_images.rb +56 -0
  118. data/lib/oneandone/requests/compute/list_ip_firewalls.rb +59 -0
  119. data/lib/oneandone/requests/compute/list_ip_load_balancers.rb +59 -0
  120. data/lib/oneandone/requests/compute/list_load_balancer_ips.rb +50 -0
  121. data/lib/oneandone/requests/compute/list_load_balancer_rules.rb +50 -0
  122. data/lib/oneandone/requests/compute/list_load_balancers.rb +56 -0
  123. data/lib/oneandone/requests/compute/list_logs.rb +59 -0
  124. data/lib/oneandone/requests/compute/list_monitored_servers.rb +51 -0
  125. data/lib/oneandone/requests/compute/list_monitoring_policies.rb +56 -0
  126. data/lib/oneandone/requests/compute/list_mp_servers.rb +50 -0
  127. data/lib/oneandone/requests/compute/list_ports.rb +51 -0
  128. data/lib/oneandone/requests/compute/list_private_network_servers.rb +50 -0
  129. data/lib/oneandone/requests/compute/list_private_networks.rb +56 -0
  130. data/lib/oneandone/requests/compute/list_processes.rb +51 -0
  131. data/lib/oneandone/requests/compute/list_public_ips.rb +56 -0
  132. data/lib/oneandone/requests/compute/list_server_appliances.rb +56 -0
  133. data/lib/oneandone/requests/compute/list_server_ips.rb +50 -0
  134. data/lib/oneandone/requests/compute/list_server_private_networks.rb +50 -0
  135. data/lib/oneandone/requests/compute/list_servers.rb +56 -0
  136. data/lib/oneandone/requests/compute/list_shared_storage_servers.rb +50 -0
  137. data/lib/oneandone/requests/compute/list_shared_storages.rb +56 -0
  138. data/lib/oneandone/requests/compute/list_usages.rb +54 -0
  139. data/lib/oneandone/requests/compute/list_vpns.rb +56 -0
  140. data/lib/oneandone/requests/compute/load_dvd.rb +65 -0
  141. data/lib/oneandone/requests/compute/ping.rb +38 -0
  142. data/lib/oneandone/requests/compute/ping_auth.rb +38 -0
  143. data/lib/oneandone/requests/compute/remove_firewall.rb +60 -0
  144. data/lib/oneandone/requests/compute/remove_firewall_ip.rb +60 -0
  145. data/lib/oneandone/requests/compute/remove_load_balancer.rb +71 -0
  146. data/lib/oneandone/requests/compute/remove_load_balancer_ip.rb +60 -0
  147. data/lib/oneandone/requests/compute/remove_mp_server.rb +60 -0
  148. data/lib/oneandone/requests/compute/remove_private_network.rb +60 -0
  149. data/lib/oneandone/requests/compute/remove_private_network_server.rb +60 -0
  150. data/lib/oneandone/requests/compute/remove_shared_storage_server.rb +60 -0
  151. data/lib/oneandone/requests/compute/restore_snapshot.rb +35 -0
  152. data/lib/oneandone/requests/compute/status.rb +50 -0
  153. data/lib/oneandone/requests/compute/update_firewall.rb +76 -0
  154. data/lib/oneandone/requests/compute/update_hardware.rb +82 -0
  155. data/lib/oneandone/requests/compute/update_hdd.rb +71 -0
  156. data/lib/oneandone/requests/compute/update_image.rb +80 -0
  157. data/lib/oneandone/requests/compute/update_load_balancer.rb +96 -0
  158. data/lib/oneandone/requests/compute/update_monitoring_policy.rb +82 -0
  159. data/lib/oneandone/requests/compute/update_port.rb +74 -0
  160. data/lib/oneandone/requests/compute/update_private_network.rb +82 -0
  161. data/lib/oneandone/requests/compute/update_process.rb +76 -0
  162. data/lib/oneandone/requests/compute/update_public_ip.rb +71 -0
  163. data/lib/oneandone/requests/compute/update_server.rb +76 -0
  164. data/lib/oneandone/requests/compute/update_shared_storage.rb +80 -0
  165. data/lib/oneandone/requests/compute/update_vpn.rb +76 -0
  166. data/tests/oneandone/test_firewalls.rb +188 -0
  167. data/tests/oneandone/test_images.rb +79 -0
  168. data/tests/oneandone/test_load_balancers.rb +192 -0
  169. data/tests/oneandone/test_monitoring_policies.rb +342 -0
  170. data/tests/oneandone/test_private_networks.rb +123 -0
  171. data/tests/oneandone/test_public_ips.rb +75 -0
  172. data/tests/oneandone/test_servers.rb +465 -0
  173. data/tests/oneandone/test_shared_storages.rb +131 -0
  174. metadata +259 -0
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about an ISO image
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#dvd_isos__id__get]
10
+ ##
11
+ def get_dvd_iso(dvd_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/dvd_isos/#{dvd_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_dvd_iso(dvd_id)
28
+
29
+ # Search for dvd to return
30
+ if dvd = self.data[:dvd_isos].find {
31
+ |hash| hash['id'] == dvd_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 = dvd
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 firewall policy
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies__firewall_id__get]
10
+ ##
11
+ def get_firewall(firewall_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/firewall_policies/#{firewall_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_firewall(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
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 an IP assigned to a firewall policy
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies__firewall_id__server_ips__server_ip__get]
10
+ ##
11
+ def get_firewall_ip(firewall_id: nil, ip_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/firewall_policies/#{firewall_id}/server_ips/#{ip_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_firewall_ip(firewall_id: nil, ip_id: nil)
28
+
29
+ # Search for firewall
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
+ # Search for server IP to return
39
+ if ip = firewall['server_ips'].find {
40
+ |string| string == ip_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 = 200
50
+ response.body = ip
51
+ response
52
+
53
+ end
54
+
55
+ end # Mock
56
+
57
+ end # OneAndOne
58
+ end # Compute
59
+ 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 firewall policy's rule
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#firewall_policies__firewall_id__rules__rule_id__get]
10
+ ##
11
+ def get_firewall_rule(firewall_id: nil, rule_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/firewall_policies/#{firewall_id}/rules/#{rule_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_firewall_rule(firewall_id: nil, rule_id: nil)
28
+
29
+ # Search for firewall
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
+ # Search for rule to return
39
+ if rule = firewall['rules'].find {
40
+ |index| index['id'] == rule_id
41
+ }
42
+ else
43
+ raise Fog::Errors::NotFound.new('The requested rule 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 = rule
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 fixed server option
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers_fixed_instance_sizes__fixed_instance_size_id__get]
10
+ ##
11
+ def get_fixed_server(fixed_instance_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/fixed_instance_sizes/#{fixed_instance_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_fixed_server(fixed_instance_id)
28
+
29
+ # Search for fixed server to return
30
+ if fixed_server = self.data[:fixed_servers].find {
31
+ |hash| hash['id'] == fixed_instance_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 = fixed_server
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 server's current hardware configurations
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__hardware_get]
10
+ ##
11
+ def get_hardware(server_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/#{server_id}/hardware"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_hardware(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['hardware']
42
+ response
43
+
44
+ end
45
+
46
+ end # Mock
47
+
48
+ end # OneAndOne
49
+ end # Compute
50
+ end # Fog
@@ -0,0 +1,60 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about a server's HDD
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__hardware_hdds__hdd_id__get]
10
+ ##
11
+ def get_hdd(server_id: nil, hdd_id: nil)
12
+
13
+ # Request
14
+ params = {
15
+ 'method' => :get,
16
+ 'endpoint' => "/servers/#{server_id}/hardware/hdds/#{hdd_id}"
17
+ }
18
+
19
+ request(params)
20
+
21
+ end
22
+
23
+ end # Real
24
+
25
+
26
+ class Mock
27
+
28
+ def get_hdd(server_id: nil, hdd_id: nil)
29
+
30
+ # Search for server
31
+ if server = self.data[:servers].find {
32
+ |hash| hash['id'] == server_id
33
+ }
34
+ else
35
+ raise Fog::Errors::NotFound.new('The requested resource could
36
+ not be found.')
37
+ end
38
+
39
+ # Search for hdd to return
40
+ if hdd = server['hardware']['hdds'].find {
41
+ |index| index['id'] == hdd_id
42
+ }
43
+ else
44
+ raise Fog::Errors::NotFound.new('The requested HDD could
45
+ not be found.')
46
+ end
47
+
48
+ # Return Response Object to User
49
+ response = Excon::Response.new
50
+ response.status = 200
51
+ response.body = hdd
52
+ response
53
+
54
+ end
55
+
56
+ end # Mock
57
+
58
+ end # OneAndOne
59
+ end # Compute
60
+ end # Fog
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # List a server's HDD's
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__hardware_hdds_get]
10
+ ##
11
+ def get_hdds(server_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/#{server_id}/hardware/hdds"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_hdds(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['hardware']['hdds']
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 an image
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#images__image_id__get]
10
+ ##
11
+ def get_image(image_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/images/#{image_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_image(image_id)
28
+
29
+ # Search for image to return
30
+ if image = self.data[:images].find {
31
+ |hash| hash['id'] == image_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 = image
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 load balancer
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#load_balancers__load_balancer_id__get]
10
+ ##
11
+ def get_load_balancer(load_balancer_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/load_balancers/#{load_balancer_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_load_balancer(load_balancer_id)
28
+
29
+ # Search for load balancer to return
30
+ if load_balancer = self.data[:load_balancers].find {
31
+ |hash| hash['id'] == load_balancer_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 = load_balancer
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 an IP assigned to a load balancer
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#load_balancers__load_balancer_id__server_ips__server_ip__get]
10
+ ##
11
+ def get_load_balancer_ip(load_balancer_id: nil, ip_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/load_balancers/#{load_balancer_id}/server_ips/#{ip_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_load_balancer_ip(load_balancer_id: nil, ip_id: nil)
28
+
29
+ # Search for load balancer
30
+ if load_balancer = self.data[:load_balancers].find {
31
+ |hash| hash['id'] == load_balancer_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 IP to return
39
+ if ip = load_balancer['server_ips'].find {
40
+ |string| string == ip_id
41
+ }
42
+ else
43
+ raise Fog::Errors::NotFound.new('The requested server IP 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 = ip
51
+ response
52
+
53
+ end
54
+
55
+ end # Mock
56
+
57
+ end # OneAndOne
58
+ end # Compute
59
+ 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 load balancer's rule
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#load_balancers__load_balancer_id__rules__rule_id__get]
10
+ ##
11
+ def get_load_balancer_rule(load_balancer_id: nil, rule_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/load_balancers/#{load_balancer_id}/rules/#{rule_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_load_balancer_rule(load_balancer_id: nil, rule_id: nil)
28
+
29
+ # Search for load balancer
30
+ if load_balancer = self.data[:load_balancers].find {
31
+ |hash| hash['id'] == load_balancer_id
32
+ }
33
+ else
34
+ raise Fog::Errors::NotFound.new('The requested resource could
35
+ not be found.')
36
+ end
37
+
38
+ # Search for rule to return
39
+ if rule = load_balancer['rules'].find {
40
+ |index| index['id'] == rule_id
41
+ }
42
+ else
43
+ raise Fog::Errors::NotFound.new('The requested rule 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 = rule
51
+ response
52
+
53
+ end
54
+
55
+ end # Mock
56
+
57
+ end # OneAndOne
58
+ end # Compute
59
+ end # Fog
@@ -0,0 +1,51 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about a log
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#logs__log_id__get]
10
+ ##
11
+ def get_log(log_id)
12
+
13
+ # Request
14
+ params = {
15
+ 'method' => :get,
16
+ 'endpoint' => "/logs/#{log_id}"
17
+ }
18
+
19
+ request(params)
20
+
21
+ end
22
+
23
+ end # Real
24
+
25
+
26
+ class Mock
27
+
28
+ def get_log(log_id)
29
+
30
+ # Search for log to return
31
+ if log = self.data[:logs].find {
32
+ |hash| hash['id'] == log_id
33
+ }
34
+ else
35
+ raise Fog::Errors::NotFound.new('The requested resource could
36
+ not be found.')
37
+ end
38
+
39
+ # Return Response Object to User
40
+ response = Excon::Response.new
41
+ response.status = 200
42
+ response.body = log
43
+ response
44
+
45
+ end
46
+
47
+ end # Mock
48
+
49
+ end # OneAndOne
50
+ end # Compute
51
+ end # Fog