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,49 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about a monitoring server for a specified time range
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#monitoring_center__server_id__get]
10
+ ##
11
+ def get_monitored_server(server_id: nil, period: 'LAST_24H',
12
+ start_date: nil, end_date: nil)
13
+
14
+ # Build hash for query parameters
15
+ keyword_args = {
16
+ :period => period,
17
+ :start_date => start_date,
18
+ :end_date => end_date
19
+ }
20
+
21
+ # Clean out null query parameters
22
+ query = clean_hash(keyword_args)
23
+
24
+ # Request
25
+ params = {
26
+ 'method' => :get,
27
+ 'endpoint' => "/monitoring_center/#{server_id}",
28
+ 'params' => query
29
+ }
30
+
31
+ request(params)
32
+
33
+ end
34
+
35
+ end # Real
36
+
37
+
38
+ class Mock
39
+
40
+ def get_monitored_server(server_id: nil, period: 'LAST24H',
41
+ start_date: nil, end_date: nil)
42
+ Fog::Mock.not_implemented
43
+ end
44
+
45
+ end # Mock
46
+
47
+ end # OneAndOne
48
+ end # Compute
49
+ 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 monitoring policy
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#monitoring_policies__monitoring_policy_id__get]
10
+ ##
11
+ def get_monitoring_policy(monitoring_policy_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/monitoring_policies/#{monitoring_policy_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_monitoring_policy(monitoring_policy_id)
28
+
29
+ # Search for MP to return
30
+ if monitoring_policy = self.data[:monitoring_policies].find {
31
+ |hash| hash['id'] == monitoring_policy_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 = monitoring_policy
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 monitoring policy's server
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#monitoring_policies__monitoring_policy_id__servers__server_id__get]
10
+ ##
11
+ def get_mp_server(monitoring_policy_id: nil, server_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/monitoring_policies/#{monitoring_policy_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_mp_server(monitoring_policy_id: nil, server_id: nil)
28
+
29
+ # Search for MP
30
+ if monitoring_policy = self.data[:monitoring_policies].find {
31
+ |hash| hash['id'] == monitoring_policy_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 = monitoring_policy['servers'].find {
40
+ |index| index == 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 = 200
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,59 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about a monitoring policy's port
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#monitoring_policies__monitoring_policy_id__ports__port_id__get]
10
+ ##
11
+ def get_port(monitoring_policy_id: nil, port_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/monitoring_policies/#{monitoring_policy_id}/ports/#{port_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_port(monitoring_policy_id: nil, port_id: nil)
28
+
29
+ # Search for MP
30
+ if monitoring_policy = self.data[:monitoring_policies].find {
31
+ |hash| hash['id'] == monitoring_policy_id
32
+ }
33
+ else
34
+ raise Fog::Errors::NotFound.new('The requested resource could
35
+ not be found.')
36
+ end
37
+
38
+ # Search for port to return
39
+ if port = monitoring_policy['ports'].find {
40
+ |index| index['id'] == port_id
41
+ }
42
+ else
43
+ raise Fog::Errors::NotFound.new('The requested port 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 = port
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 private network
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#private_networks__private_network_id__get]
10
+ ##
11
+ def get_private_network(private_network_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/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_private_network(private_network_id)
28
+
29
+ # Search for private network to return
30
+ if private_network = self.data[:private_networks].find {
31
+ |hash| hash['id'] == private_network_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 = private_network
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 private network's server
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#private_networks__private_network_id__servers__server_id__get]
10
+ ##
11
+ def get_private_network_server(private_network_id: nil, server_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/private_networks/#{private_network_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_private_network_server(private_network_id: nil, server_id: nil)
28
+
29
+ # Search for private network
30
+ if private_network = self.data[:private_networks].find {
31
+ |hash| hash['id'] == private_network_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 = private_network['servers'].find {
40
+ |index| index == 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,59 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+
5
+ class Real
6
+
7
+ ##
8
+ # Returns information about a monitoring policy's process
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#monitoring_policies__monitoring_policy_id__processes__process_id__get]
10
+ ##
11
+ def get_process(monitoring_policy_id: nil, process_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/monitoring_policies/#{monitoring_policy_id}/processes/#{process_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_process(monitoring_policy_id: nil, process_id: nil)
28
+
29
+ # Search for MP
30
+ if monitoring_policy = self.data[:monitoring_policies].find {
31
+ |hash| hash['id'] == monitoring_policy_id
32
+ }
33
+ else
34
+ raise Fog::Errors::NotFound.new('The requested resource could
35
+ not be found.')
36
+ end
37
+
38
+ # Search for process to return
39
+ if process = monitoring_policy['processes'].find {
40
+ |index| index['id'] == process_id
41
+ }
42
+ else
43
+ raise Fog::Errors::NotFound.new('The requested port 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 = process
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 public IP
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#public_ips__ip_id__get]
10
+ ##
11
+ def get_public_ip(ip_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/public_ips/#{ip_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_public_ip(ip_id)
28
+
29
+ # Search for IP to return
30
+ if public_ip = self.data[:public_ips].find {
31
+ |hash| hash['id'] == ip_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 = public_ip
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
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__get]
10
+ ##
11
+ def get_server(server_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/#{server_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_server(server_id)
28
+
29
+ # Search for server to return
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
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 appliance
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#server_appliances__id__get]
10
+ ##
11
+ def get_server_appliance(appliance_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/server_appliances/#{appliance_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_server_appliance(appliance_id)
28
+
29
+ # Search for server appliance to return
30
+ if server_appliance = self.data[:server_appliances].find {
31
+ |hash| hash['id'] == appliance_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_appliance
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 image
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__image_get]
10
+ ##
11
+ def get_server_image(server_id)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/#{server_id}/image"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_server_image(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['image']
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's IP
9
+ # URL: [https://cloudpanel-api.1and1.com/documentation/1and1/v1/en/documentation.html#servers__server_id__ips__ip_id__get]
10
+ ##
11
+ def get_server_ip(server_id: nil, ip_id: nil)
12
+
13
+ params = {
14
+ 'method' => :get,
15
+ 'endpoint' => "/servers/#{server_id}/ips/#{ip_id}"
16
+ }
17
+
18
+ request(params)
19
+
20
+ end
21
+
22
+ end # Real
23
+
24
+
25
+ class Mock
26
+
27
+ def get_server_ip(server_id: nil, ip_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 IP to return
39
+ if ip = server['ips'].find {
40
+ |index| index['id'] == 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