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,105 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class PrivateNetwork < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :description
11
+ attribute :datacenter_id
12
+ attribute :network_address
13
+ attribute :subnet_mask
14
+
15
+ attribute :state
16
+ attribute :creation_date
17
+ attribute :datacenter
18
+ attribute :servers
19
+
20
+
21
+ def save
22
+
23
+ requires :name
24
+
25
+ # Perform Request
26
+ response = service.create_private_network(name: name,
27
+ description: description, network_address: network_address,
28
+ subnet_mask: subnet_mask, datacenter_id: datacenter_id)
29
+
30
+ # Merge Attributes
31
+ merge_attributes(response.body)
32
+
33
+ true
34
+
35
+ end
36
+
37
+
38
+ def update(options = {})
39
+
40
+ requires :id
41
+
42
+ response = service.update_private_network(private_network_id: id,
43
+ name: options[:name], description: options[:description],
44
+ network_address: options[:network_address],
45
+ subnet_mask: options[:subnet_mask])
46
+
47
+ # Merge Attributes
48
+ merge_attributes(response.body)
49
+
50
+ true
51
+
52
+ end
53
+
54
+
55
+ def add_servers(options = {})
56
+
57
+ requires :id
58
+
59
+ response = service.add_private_network_servers(private_network_id: id,
60
+ servers: options[:servers])
61
+
62
+ # Merge Attributes
63
+ merge_attributes(response.body)
64
+
65
+ true
66
+
67
+ end
68
+
69
+
70
+ def remove_server(options = {})
71
+
72
+ requires :id
73
+
74
+ response = service.remove_private_network_server(private_network_id: id,
75
+ server_id: options[:server_id])
76
+
77
+ # Merge Attributes
78
+ merge_attributes(response.body)
79
+
80
+ true
81
+
82
+ end
83
+
84
+
85
+ def destroy
86
+
87
+ requires :id
88
+
89
+ service.delete_private_network(id)
90
+
91
+ true
92
+
93
+ end
94
+
95
+
96
+ def ready?
97
+
98
+ state == 'ACTIVE'
99
+
100
+ end
101
+
102
+ end # PrivateNetwork
103
+ end # OneAndOne
104
+ end # Compute
105
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'private_network'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class PrivateNetworks < Fog::Collection
7
+ model Fog::Compute::OneAndOne::PrivateNetwork
8
+
9
+ def all
10
+ response = service.list_private_networks
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_private_network(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # PrivateNetworks
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,68 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class PublicIp < Fog::Model
5
+
6
+ # Declare Model Attributes
7
+ identity :id
8
+
9
+ attribute :type
10
+ attribute :reverse_dns
11
+ attribute :datacenter_id
12
+ attribute :datacenter
13
+ attribute :ip
14
+ attribute :assigned_to
15
+ attribute :state
16
+ attribute :creation_date
17
+
18
+
19
+ def save
20
+
21
+ # Perform Request
22
+ response = service.create_public_ip(type: type,
23
+ reverse_dns: reverse_dns, datacenter_id: datacenter_id)
24
+
25
+ # Merge Attributes
26
+ merge_attributes(response.body)
27
+
28
+ true
29
+
30
+ end
31
+
32
+
33
+ def update(options = {})
34
+
35
+ requires :id
36
+
37
+ response = service.update_public_ip(ip_id: id,
38
+ reverse_dns: options[:reverse_dns])
39
+
40
+ # Merge Attributes
41
+ merge_attributes(response.body)
42
+
43
+ true
44
+
45
+ end
46
+
47
+
48
+ def destroy
49
+
50
+ requires :id
51
+
52
+ service.delete_public_ip(id)
53
+
54
+ true
55
+
56
+ end
57
+
58
+
59
+ def ready?
60
+
61
+ state == 'ACTIVE'
62
+
63
+ end
64
+
65
+ end # PublicIp
66
+ end # OneAndOne
67
+ end # Compute
68
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'public_ip'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class PublicIps < Fog::Collection
7
+ model Fog::Compute::OneAndOne::PublicIp
8
+
9
+ def all
10
+ response = service.list_public_ips
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_public_ip(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # PublicIps
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog
@@ -0,0 +1,434 @@
1
+ module Fog
2
+ module Compute
3
+ class OneAndOne
4
+ class Server < Fog::Model
5
+
6
+ # Globals
7
+ GOOD_STATES = ['POWERED_ON', 'POWERED_OFF']
8
+
9
+ # Declare Model Attributes
10
+ identity :id
11
+
12
+ attribute :name
13
+ attribute :description
14
+ attribute :rsa_key
15
+ attribute :fixed_instance_id
16
+ attribute :ram
17
+ attribute :vcore
18
+ attribute :cores_per_processor
19
+ attribute :hdds
20
+ attribute :datacenter
21
+ attribute :datacenter_id
22
+ attribute :creation_date
23
+ attribute :first_password
24
+ attribute :status
25
+ attribute :hardware
26
+ attribute :image
27
+ attribute :appliance_id
28
+ attribute :password
29
+ attribute :power_on
30
+ attribute :firewall_id
31
+ attribute :ip_id
32
+ attribute :load_balancer_id
33
+ attribute :monitoring_policy_id
34
+ attribute :dvd
35
+ attribute :snapshot
36
+ attribute :ips
37
+ attribute :alerts
38
+ attribute :monitoring_policy
39
+ attribute :private_networks
40
+
41
+
42
+ def save
43
+
44
+ requires :name, :appliance_id
45
+
46
+ # Check for Additional Required Parameters
47
+ if (!fixed_instance_id)
48
+ requires :ram, :vcore, :cores_per_processor, :hdds
49
+ end
50
+
51
+ # Perform Request
52
+ response = service.create_server(name: name, description: description,
53
+ rsa_key: rsa_key, fixed_instance_id: fixed_instance_id,
54
+ vcore: vcore, cores_per_processor: cores_per_processor, ram: ram,
55
+ appliance_id: appliance_id, hdds: hdds, datacenter_id: datacenter_id,
56
+ password: password, power_on: power_on, firewall_id: firewall_id,
57
+ ip_id: ip_id, load_balancer_id: load_balancer_id,
58
+ monitoring_policy_id: monitoring_policy_id)
59
+
60
+ # Merge Attributes
61
+ merge_attributes(response.body)
62
+
63
+ true
64
+
65
+ end
66
+
67
+
68
+ def update(options = {})
69
+
70
+ requires :id
71
+
72
+ response = service.update_server(server_id: id, name: options[:name],
73
+ description: options[:description])
74
+
75
+ # Merge Attributes
76
+ merge_attributes(response.body)
77
+
78
+ true
79
+
80
+ end
81
+
82
+
83
+ def update_hardware(options = {})
84
+
85
+ requires :id
86
+
87
+ response = service.update_hardware(server_id: id,
88
+ fixed_instance_id: options[:fixed_instance_id],
89
+ vcore: options[:vcore], ram: options[:ram],
90
+ cores_per_processor: options[:cores_per_processor])
91
+
92
+ # Merge Attributes
93
+ merge_attributes(response.body)
94
+
95
+ true
96
+
97
+ end
98
+
99
+
100
+ def add_hdds(options = {})
101
+
102
+ requires :id
103
+
104
+ response = service.add_hdds(server_id: id,
105
+ hdds: options[:hdds])
106
+
107
+ # Merge Attributes
108
+ merge_attributes(response.body)
109
+
110
+ true
111
+
112
+ end
113
+
114
+
115
+ def delete_hdd(options = {})
116
+
117
+ requires :id
118
+
119
+ response = service.delete_hdd(server_id: id,
120
+ hdd_id: options[:hdd_id])
121
+
122
+ # Merge Attributes
123
+ merge_attributes(response.body)
124
+
125
+ true
126
+
127
+ end
128
+
129
+
130
+ def resize_hdd(options = {})
131
+
132
+ requires :id
133
+
134
+ response = service.update_hdd(server_id: id,
135
+ hdd_id: options[:hdd_id], size: options[:size])
136
+
137
+ # Merge Attributes
138
+ merge_attributes(response.body)
139
+
140
+ true
141
+
142
+ end
143
+
144
+
145
+ def install_image(options = {})
146
+
147
+ requires :id
148
+
149
+ response = service.install_server_image(server_id: id,
150
+ image_id: options[:image_id], password: options[:password],
151
+ firewall_id: options[:firewall_id])
152
+
153
+ # Merge Attributes
154
+ merge_attributes(response.body)
155
+
156
+ true
157
+
158
+ end
159
+
160
+
161
+ def add_ip
162
+
163
+ requires :id
164
+
165
+ response = service.add_server_ip(server_id: id)
166
+
167
+ # Merge Attributes
168
+ merge_attributes(response.body)
169
+
170
+ true
171
+
172
+ end
173
+
174
+
175
+ def delete_ip(options = {})
176
+
177
+ requires :id
178
+
179
+ response = service.delete_server_ip(server_id: id,
180
+ ip_id: options[:ip_id])
181
+
182
+ # Merge Attributes
183
+ merge_attributes(response.body)
184
+
185
+ true
186
+
187
+ end
188
+
189
+
190
+ def add_firewall(options = {})
191
+
192
+ requires :id
193
+
194
+ response = service.add_firewall(server_id: id,
195
+ ip_id: options[:ip_id], firewall_id: options[:firewall_id])
196
+
197
+ # Merge Attributes
198
+ merge_attributes(response.body)
199
+
200
+ true
201
+
202
+ end
203
+
204
+
205
+ def remove_firewall(options = {})
206
+
207
+ requires :id
208
+
209
+ response = service.remove_firewall(server_id: id,
210
+ ip_id: options[:ip_id])
211
+
212
+ # Merge Attributes
213
+ merge_attributes(response.body)
214
+
215
+ true
216
+
217
+ end
218
+
219
+
220
+ def add_load_balancer(options = {})
221
+
222
+ requires :id
223
+
224
+ response = service.add_load_balancer(server_id: id,
225
+ ip_id: options[:ip_id],
226
+ load_balancer_id: options[:load_balancer_id])
227
+
228
+ # Merge Attributes
229
+ merge_attributes(response.body)
230
+
231
+ true
232
+
233
+ end
234
+
235
+
236
+ def remove_load_balancer(options = {})
237
+
238
+ requires :id
239
+
240
+ response = service.remove_load_balancer(server_id: id,
241
+ ip_id: options[:ip_id],
242
+ load_balancer_id: options[:load_balancer_id])
243
+
244
+ # Merge Attributes
245
+ merge_attributes(response.body)
246
+
247
+ true
248
+
249
+ end
250
+
251
+
252
+ def on
253
+
254
+ requires :id
255
+
256
+ response = service.change_status(server_id: id,
257
+ action: 'POWER_ON', method: 'SOFTWARE')
258
+
259
+ # Merge Attributes
260
+ merge_attributes(response.body)
261
+
262
+ true
263
+
264
+ end
265
+
266
+
267
+ def off
268
+
269
+ requires :id
270
+
271
+ response = service.change_status(server_id: id,
272
+ action: 'POWER_OFF', method: 'SOFTWARE')
273
+
274
+ # Merge Attributes
275
+ merge_attributes(response.body)
276
+
277
+ true
278
+
279
+ end
280
+
281
+
282
+ def reboot
283
+
284
+ requires :id
285
+
286
+ response = service.change_status(server_id: id,
287
+ action: 'REBOOT', method: 'SOFTWARE')
288
+
289
+ # Merge Attributes
290
+ merge_attributes(response.body)
291
+
292
+ true
293
+
294
+ end
295
+
296
+
297
+ def load_dvd(options = {})
298
+
299
+ requires :id
300
+
301
+ response = service.load_dvd(server_id: id, dvd_id: options[:dvd_id])
302
+
303
+ # Merge Attributes
304
+ merge_attributes(response.body)
305
+
306
+ true
307
+
308
+ end
309
+
310
+
311
+ def eject_dvd
312
+
313
+ requires :id
314
+
315
+ response = service.eject_dvd(server_id: id)
316
+
317
+ # Merge Attributes
318
+ merge_attributes(response.body)
319
+
320
+ true
321
+
322
+ end
323
+
324
+
325
+ def add_private_network(options = {})
326
+
327
+ requires :id
328
+
329
+ response = service.add_private_network(server_id: id,
330
+ private_network_id: options[:private_network_id])
331
+
332
+ # Merge Attributes
333
+ merge_attributes(response.body)
334
+
335
+ true
336
+
337
+ end
338
+
339
+
340
+ def remove_private_network(options = {})
341
+
342
+ requires :id
343
+
344
+ response = service.remove_private_network(server_id: id,
345
+ private_network_id: options[:private_network_id])
346
+
347
+ # Merge Attributes
348
+ merge_attributes(response.body)
349
+
350
+ true
351
+
352
+ end
353
+
354
+
355
+ def create_snapshot
356
+
357
+ requires :id
358
+
359
+ response = service.create_snapshot(server_id: id)
360
+
361
+ # Merge Attributes
362
+ merge_attributes(response.body)
363
+
364
+ true
365
+
366
+ end
367
+
368
+
369
+ def restore_snapshot(options = {})
370
+
371
+ requires :id
372
+
373
+ response = service.restore_snapshot(server_id: id,
374
+ snapshot_id: options[:snapshot_id])
375
+
376
+ # Merge Attributes
377
+ merge_attributes(response.body)
378
+
379
+ true
380
+
381
+ end
382
+
383
+
384
+ def delete_snapshot(options = {})
385
+
386
+ requires :id
387
+
388
+ response = service.delete_snapshot(server_id: id,
389
+ snapshot_id: options[:snapshot_id])
390
+
391
+ # Merge Attributes
392
+ merge_attributes(response.body)
393
+
394
+ true
395
+
396
+ end
397
+
398
+
399
+ def clone(options = {})
400
+
401
+ requires :id
402
+
403
+ response = service.clone_server(server_id: id, name: options[:name],
404
+ datacenter_id: options[:datacenter_id])
405
+
406
+ # Merge Attributes
407
+ merge_attributes(response.body)
408
+
409
+ true
410
+
411
+ end
412
+
413
+
414
+ def destroy
415
+
416
+ requires :id
417
+
418
+ service.delete_server(id)
419
+
420
+ true
421
+
422
+ end
423
+
424
+
425
+ def ready?
426
+
427
+ (GOOD_STATES.include? status['state']) && (status['percent'] == nil)
428
+
429
+ end
430
+
431
+ end # Server
432
+ end # OneAndOne
433
+ end # Compute
434
+ end # Fog
@@ -0,0 +1,24 @@
1
+ require_relative 'server'
2
+
3
+ module Fog
4
+ module Compute
5
+ class OneAndOne
6
+ class Servers < Fog::Collection
7
+ model Fog::Compute::OneAndOne::Server
8
+
9
+ def all
10
+ response = service.list_servers
11
+ load(response.body)
12
+ end
13
+
14
+ def get(id)
15
+ response = service.get_server(id)
16
+ new(response.body)
17
+ rescue Excon::Errors::NotFound
18
+ nil
19
+ end
20
+
21
+ end # Servers
22
+ end # OneAndOne
23
+ end # Compute
24
+ end # Fog