fog-gridscale 0.1.2

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 (209) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.ruby-gemset +0 -0
  4. data/.ruby-version +0 -0
  5. data/.travis.yml +5 -0
  6. data/CHANGELOG.md +14 -0
  7. data/CONTRIBUTING.md +21 -0
  8. data/CONTRIBUTORS.md +2 -0
  9. data/Gemfile +6 -0
  10. data/LICENSE.md +21 -0
  11. data/README.md +87 -0
  12. data/Rakefile +10 -0
  13. data/bin/console +14 -0
  14. data/bin/setup +8 -0
  15. data/fog-gridscale.gemspec +41 -0
  16. data/lib/fog/bin/gridscale.rb +29 -0
  17. data/lib/fog/compute/gridscale.rb +325 -0
  18. data/lib/fog/compute/gridscale/models/access_key.rb +28 -0
  19. data/lib/fog/compute/gridscale/models/access_keys.rb +27 -0
  20. data/lib/fog/compute/gridscale/models/bucket.rb +15 -0
  21. data/lib/fog/compute/gridscale/models/buckets.rb +27 -0
  22. data/lib/fog/compute/gridscale/models/cas.rb +51 -0
  23. data/lib/fog/compute/gridscale/models/cass.rb +27 -0
  24. data/lib/fog/compute/gridscale/models/deleted_ip.rb +30 -0
  25. data/lib/fog/compute/gridscale/models/deleted_ips.rb +18 -0
  26. data/lib/fog/compute/gridscale/models/deleted_isoimage.rb +32 -0
  27. data/lib/fog/compute/gridscale/models/deleted_isoimages.rb +18 -0
  28. data/lib/fog/compute/gridscale/models/deleted_network.rb +29 -0
  29. data/lib/fog/compute/gridscale/models/deleted_networks.rb +18 -0
  30. data/lib/fog/compute/gridscale/models/deleted_server.rb +47 -0
  31. data/lib/fog/compute/gridscale/models/deleted_servers.rb +20 -0
  32. data/lib/fog/compute/gridscale/models/deleted_snapshot.rb +32 -0
  33. data/lib/fog/compute/gridscale/models/deleted_snapshots.rb +18 -0
  34. data/lib/fog/compute/gridscale/models/deleted_storage.rb +30 -0
  35. data/lib/fog/compute/gridscale/models/deleted_storages.rb +18 -0
  36. data/lib/fog/compute/gridscale/models/deleted_template.rb +33 -0
  37. data/lib/fog/compute/gridscale/models/deleted_templates.rb +19 -0
  38. data/lib/fog/compute/gridscale/models/firewall.rb +46 -0
  39. data/lib/fog/compute/gridscale/models/firewalls.rb +27 -0
  40. data/lib/fog/compute/gridscale/models/interface.rb +44 -0
  41. data/lib/fog/compute/gridscale/models/interfaces.rb +25 -0
  42. data/lib/fog/compute/gridscale/models/ip.rb +72 -0
  43. data/lib/fog/compute/gridscale/models/ips.rb +26 -0
  44. data/lib/fog/compute/gridscale/models/isoimage.rb +68 -0
  45. data/lib/fog/compute/gridscale/models/isoimages.rb +25 -0
  46. data/lib/fog/compute/gridscale/models/loadbalancer.rb +64 -0
  47. data/lib/fog/compute/gridscale/models/loadbalancers.rb +26 -0
  48. data/lib/fog/compute/gridscale/models/location.rb +18 -0
  49. data/lib/fog/compute/gridscale/models/locations.rb +26 -0
  50. data/lib/fog/compute/gridscale/models/marketplace_template.rb +71 -0
  51. data/lib/fog/compute/gridscale/models/marketplace_templates.rb +27 -0
  52. data/lib/fog/compute/gridscale/models/network.rb +73 -0
  53. data/lib/fog/compute/gridscale/models/networks.rb +25 -0
  54. data/lib/fog/compute/gridscale/models/paas_security_zone.rb +65 -0
  55. data/lib/fog/compute/gridscale/models/paas_security_zones.rb +26 -0
  56. data/lib/fog/compute/gridscale/models/paas_service.rb +62 -0
  57. data/lib/fog/compute/gridscale/models/paas_services.rb +25 -0
  58. data/lib/fog/compute/gridscale/models/paging_collection.rb +42 -0
  59. data/lib/fog/compute/gridscale/models/request.rb +16 -0
  60. data/lib/fog/compute/gridscale/models/requests.rb +19 -0
  61. data/lib/fog/compute/gridscale/models/server.rb +168 -0
  62. data/lib/fog/compute/gridscale/models/server_relation_ip.rb +49 -0
  63. data/lib/fog/compute/gridscale/models/server_relation_ips.rb +27 -0
  64. data/lib/fog/compute/gridscale/models/server_relation_isoimage.rb +47 -0
  65. data/lib/fog/compute/gridscale/models/server_relation_isoimages.rb +27 -0
  66. data/lib/fog/compute/gridscale/models/server_relation_network.rb +58 -0
  67. data/lib/fog/compute/gridscale/models/server_relation_networks.rb +28 -0
  68. data/lib/fog/compute/gridscale/models/server_relation_storage.rb +53 -0
  69. data/lib/fog/compute/gridscale/models/server_relation_storages.rb +27 -0
  70. data/lib/fog/compute/gridscale/models/servers.rb +27 -0
  71. data/lib/fog/compute/gridscale/models/snapshot.rb +56 -0
  72. data/lib/fog/compute/gridscale/models/snapshot_schedule.rb +50 -0
  73. data/lib/fog/compute/gridscale/models/snapshot_schedules.rb +25 -0
  74. data/lib/fog/compute/gridscale/models/snapshots.rb +25 -0
  75. data/lib/fog/compute/gridscale/models/sshkey.rb +49 -0
  76. data/lib/fog/compute/gridscale/models/sshkeys.rb +25 -0
  77. data/lib/fog/compute/gridscale/models/storage.rb +78 -0
  78. data/lib/fog/compute/gridscale/models/storages.rb +25 -0
  79. data/lib/fog/compute/gridscale/models/template.rb +67 -0
  80. data/lib/fog/compute/gridscale/models/templates.rb +25 -0
  81. data/lib/fog/compute/gridscale/requests/access_key_create.rb +19 -0
  82. data/lib/fog/compute/gridscale/requests/access_key_delete.rb +20 -0
  83. data/lib/fog/compute/gridscale/requests/access_key_get.rb +17 -0
  84. data/lib/fog/compute/gridscale/requests/access_keys_get.rb +19 -0
  85. data/lib/fog/compute/gridscale/requests/bucket_get.rb +18 -0
  86. data/lib/fog/compute/gridscale/requests/buckets_get.rb +18 -0
  87. data/lib/fog/compute/gridscale/requests/cas_actions_get.rb +17 -0
  88. data/lib/fog/compute/gridscale/requests/cas_create.rb +42 -0
  89. data/lib/fog/compute/gridscale/requests/cas_delete.rb +20 -0
  90. data/lib/fog/compute/gridscale/requests/cas_events_get.rb +17 -0
  91. data/lib/fog/compute/gridscale/requests/cas_get.rb +17 -0
  92. data/lib/fog/compute/gridscale/requests/cas_update.rb +23 -0
  93. data/lib/fog/compute/gridscale/requests/cass_get.rb +18 -0
  94. data/lib/fog/compute/gridscale/requests/deleted_ips_get.rb +18 -0
  95. data/lib/fog/compute/gridscale/requests/deleted_isoimages_get.rb +18 -0
  96. data/lib/fog/compute/gridscale/requests/deleted_networks_get.rb +18 -0
  97. data/lib/fog/compute/gridscale/requests/deleted_servers_get.rb +18 -0
  98. data/lib/fog/compute/gridscale/requests/deleted_snapshots_get.rb +18 -0
  99. data/lib/fog/compute/gridscale/requests/deleted_storages_get.rb +18 -0
  100. data/lib/fog/compute/gridscale/requests/deleted_templates_get.rb +18 -0
  101. data/lib/fog/compute/gridscale/requests/firewall_create.rb +31 -0
  102. data/lib/fog/compute/gridscale/requests/firewall_delete.rb +20 -0
  103. data/lib/fog/compute/gridscale/requests/firewall_events_get.rb +17 -0
  104. data/lib/fog/compute/gridscale/requests/firewall_get.rb +17 -0
  105. data/lib/fog/compute/gridscale/requests/firewall_update.rb +24 -0
  106. data/lib/fog/compute/gridscale/requests/firewalls_get.rb +18 -0
  107. data/lib/fog/compute/gridscale/requests/ip_create.rb +46 -0
  108. data/lib/fog/compute/gridscale/requests/ip_delete.rb +20 -0
  109. data/lib/fog/compute/gridscale/requests/ip_events_get.rb +17 -0
  110. data/lib/fog/compute/gridscale/requests/ip_get.rb +17 -0
  111. data/lib/fog/compute/gridscale/requests/ip_update.rb +24 -0
  112. data/lib/fog/compute/gridscale/requests/ips_get.rb +19 -0
  113. data/lib/fog/compute/gridscale/requests/isoimage_create.rb +37 -0
  114. data/lib/fog/compute/gridscale/requests/isoimage_delete.rb +20 -0
  115. data/lib/fog/compute/gridscale/requests/isoimage_events_get.rb +17 -0
  116. data/lib/fog/compute/gridscale/requests/isoimage_get.rb +17 -0
  117. data/lib/fog/compute/gridscale/requests/isoimage_update.rb +24 -0
  118. data/lib/fog/compute/gridscale/requests/isoimages_get.rb +18 -0
  119. data/lib/fog/compute/gridscale/requests/load_balancer_create.rb +40 -0
  120. data/lib/fog/compute/gridscale/requests/load_balancer_delete.rb +20 -0
  121. data/lib/fog/compute/gridscale/requests/load_balancer_events_get.rb +17 -0
  122. data/lib/fog/compute/gridscale/requests/load_balancer_get.rb +17 -0
  123. data/lib/fog/compute/gridscale/requests/load_balancer_update.rb +24 -0
  124. data/lib/fog/compute/gridscale/requests/load_balancers_get.rb +18 -0
  125. data/lib/fog/compute/gridscale/requests/location_get.rb +17 -0
  126. data/lib/fog/compute/gridscale/requests/locations_get.rb +18 -0
  127. data/lib/fog/compute/gridscale/requests/marketplace_template_create.rb +47 -0
  128. data/lib/fog/compute/gridscale/requests/marketplace_template_delete.rb +20 -0
  129. data/lib/fog/compute/gridscale/requests/marketplace_template_events_get.rb +17 -0
  130. data/lib/fog/compute/gridscale/requests/marketplace_template_get.rb +17 -0
  131. data/lib/fog/compute/gridscale/requests/marketplace_template_update.rb +24 -0
  132. data/lib/fog/compute/gridscale/requests/marketplace_templates_get.rb +17 -0
  133. data/lib/fog/compute/gridscale/requests/network_create.rb +41 -0
  134. data/lib/fog/compute/gridscale/requests/network_delete.rb +21 -0
  135. data/lib/fog/compute/gridscale/requests/network_events_get.rb +17 -0
  136. data/lib/fog/compute/gridscale/requests/network_get.rb +17 -0
  137. data/lib/fog/compute/gridscale/requests/network_update.rb +24 -0
  138. data/lib/fog/compute/gridscale/requests/networks_get.rb +18 -0
  139. data/lib/fog/compute/gridscale/requests/paas_security_zone_create.rb +36 -0
  140. data/lib/fog/compute/gridscale/requests/paas_security_zone_delete.rb +20 -0
  141. data/lib/fog/compute/gridscale/requests/paas_security_zone_get.rb +17 -0
  142. data/lib/fog/compute/gridscale/requests/paas_security_zone_update.rb +25 -0
  143. data/lib/fog/compute/gridscale/requests/paas_security_zones_get.rb +18 -0
  144. data/lib/fog/compute/gridscale/requests/paas_service_create.rb +30 -0
  145. data/lib/fog/compute/gridscale/requests/paas_service_delete.rb +20 -0
  146. data/lib/fog/compute/gridscale/requests/paas_service_get.rb +17 -0
  147. data/lib/fog/compute/gridscale/requests/paas_service_update.rb +25 -0
  148. data/lib/fog/compute/gridscale/requests/paas_services_get.rb +18 -0
  149. data/lib/fog/compute/gridscale/requests/request_get.rb +17 -0
  150. data/lib/fog/compute/gridscale/requests/server_create.rb +114 -0
  151. data/lib/fog/compute/gridscale/requests/server_delete.rb +20 -0
  152. data/lib/fog/compute/gridscale/requests/server_events_get.rb +17 -0
  153. data/lib/fog/compute/gridscale/requests/server_get.rb +17 -0
  154. data/lib/fog/compute/gridscale/requests/server_power_get.rb +17 -0
  155. data/lib/fog/compute/gridscale/requests/server_power_off.rb +25 -0
  156. data/lib/fog/compute/gridscale/requests/server_power_on.rb +25 -0
  157. data/lib/fog/compute/gridscale/requests/server_relation_ip_create.rb +32 -0
  158. data/lib/fog/compute/gridscale/requests/server_relation_ip_delete.rb +22 -0
  159. data/lib/fog/compute/gridscale/requests/server_relation_ip_get.rb +19 -0
  160. data/lib/fog/compute/gridscale/requests/server_relation_ips_get.rb +19 -0
  161. data/lib/fog/compute/gridscale/requests/server_relation_isoimage_create.rb +30 -0
  162. data/lib/fog/compute/gridscale/requests/server_relation_isoimage_delete.rb +22 -0
  163. data/lib/fog/compute/gridscale/requests/server_relation_isoimage_get.rb +19 -0
  164. data/lib/fog/compute/gridscale/requests/server_relation_isoimage_update.rb +23 -0
  165. data/lib/fog/compute/gridscale/requests/server_relation_isoimages_get.rb +19 -0
  166. data/lib/fog/compute/gridscale/requests/server_relation_network_create.rb +31 -0
  167. data/lib/fog/compute/gridscale/requests/server_relation_network_delete.rb +24 -0
  168. data/lib/fog/compute/gridscale/requests/server_relation_network_get.rb +19 -0
  169. data/lib/fog/compute/gridscale/requests/server_relation_network_update.rb +23 -0
  170. data/lib/fog/compute/gridscale/requests/server_relation_networks_get.rb +21 -0
  171. data/lib/fog/compute/gridscale/requests/server_relation_storage_create.rb +31 -0
  172. data/lib/fog/compute/gridscale/requests/server_relation_storage_delete.rb +24 -0
  173. data/lib/fog/compute/gridscale/requests/server_relation_storage_get.rb +22 -0
  174. data/lib/fog/compute/gridscale/requests/server_relation_storage_update.rb +23 -0
  175. data/lib/fog/compute/gridscale/requests/server_relation_storages_get.rb +21 -0
  176. data/lib/fog/compute/gridscale/requests/server_shutdown.rb +20 -0
  177. data/lib/fog/compute/gridscale/requests/server_update.rb +24 -0
  178. data/lib/fog/compute/gridscale/requests/servers_get.rb +18 -0
  179. data/lib/fog/compute/gridscale/requests/snapshot_create.rb +29 -0
  180. data/lib/fog/compute/gridscale/requests/snapshot_delete.rb +24 -0
  181. data/lib/fog/compute/gridscale/requests/snapshot_get.rb +19 -0
  182. data/lib/fog/compute/gridscale/requests/snapshot_schedule_create.rb +30 -0
  183. data/lib/fog/compute/gridscale/requests/snapshot_schedule_delete.rb +24 -0
  184. data/lib/fog/compute/gridscale/requests/snapshot_schedule_get.rb +19 -0
  185. data/lib/fog/compute/gridscale/requests/snapshot_schedule_update.rb +24 -0
  186. data/lib/fog/compute/gridscale/requests/snapshot_schedules_get.rb +19 -0
  187. data/lib/fog/compute/gridscale/requests/snapshot_update.rb +23 -0
  188. data/lib/fog/compute/gridscale/requests/snapshots_get.rb +18 -0
  189. data/lib/fog/compute/gridscale/requests/sshkey_create.rb +33 -0
  190. data/lib/fog/compute/gridscale/requests/sshkey_delete.rb +20 -0
  191. data/lib/fog/compute/gridscale/requests/sshkey_get.rb +17 -0
  192. data/lib/fog/compute/gridscale/requests/sshkey_update.rb +23 -0
  193. data/lib/fog/compute/gridscale/requests/sshkeys_get.rb +19 -0
  194. data/lib/fog/compute/gridscale/requests/storage_create.rb +44 -0
  195. data/lib/fog/compute/gridscale/requests/storage_delete.rb +20 -0
  196. data/lib/fog/compute/gridscale/requests/storage_events_get.rb +17 -0
  197. data/lib/fog/compute/gridscale/requests/storage_get.rb +17 -0
  198. data/lib/fog/compute/gridscale/requests/storage_update.rb +24 -0
  199. data/lib/fog/compute/gridscale/requests/storages_get.rb +18 -0
  200. data/lib/fog/compute/gridscale/requests/template_create.rb +31 -0
  201. data/lib/fog/compute/gridscale/requests/template_delete.rb +20 -0
  202. data/lib/fog/compute/gridscale/requests/template_events_get.rb +17 -0
  203. data/lib/fog/compute/gridscale/requests/template_get.rb +17 -0
  204. data/lib/fog/compute/gridscale/requests/template_update.rb +24 -0
  205. data/lib/fog/compute/gridscale/requests/templates_get.rb +19 -0
  206. data/lib/fog/gridscale.rb +15 -0
  207. data/lib/fog/gridscale/service.rb +51 -0
  208. data/lib/fog/gridscale/version.rb +5 -0
  209. metadata +322 -0
@@ -0,0 +1,27 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+ require 'fog/compute/gridscale/models/server_relation_isoimage'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Gridscale
7
+ class ServerRelationIsoimages < Fog::Compute::Gridscale::PagingCollection
8
+ model Fog::Compute::Gridscale::ServerRelationIsoimage
9
+
10
+ def all(server_uuid)
11
+ # requires :server_uuid
12
+ data = service.server_relation_isoimages_get(server_uuid)
13
+ relations = data.body['isoimage_relations']
14
+ load(relations)
15
+ end
16
+
17
+ def get(payload)
18
+ isoimages_relation = service.server_relation_isoimage_get(payload).body['isoimage_relation']
19
+ new(isoimages_relation) if isoimages_relation
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,58 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class ServerRelationNetwork < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :bootdevice
10
+ attribute :create_time
11
+ attribute :firewall
12
+ attribute :firewall_template_uuid
13
+ attribute :l2security
14
+ attribute :l3security
15
+ attribute :mac
16
+ attribute :mcast
17
+ attribute :network_type
18
+ attribute :network_uuid
19
+ attribute :object_name
20
+ attribute :object_uuid
21
+ attribute :ordering
22
+ attribute :partner_uuid
23
+ attribute :public_net
24
+ attribute :server_uuid
25
+ attribute :vlan
26
+ attribute :vxlan
27
+
28
+
29
+ def save
30
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
31
+ requires :server_uuid, :network_uuid
32
+
33
+ options = {}
34
+ if attributes[:bootdevice]
35
+ options[:bootdevice] = bootdevice
36
+ end
37
+
38
+ service.server_relation_network_create(server_uuid, network_uuid, options)
39
+
40
+ end
41
+
42
+ def delete
43
+ object_uuid = {}
44
+ object_uuid[:server_uuid] = attributes[:server_uuid]
45
+ object_uuid[:network_uuid] = attributes[:network_uuid]
46
+ service.server_relation_network_delete(server_uuid, network_uuid)
47
+ end
48
+
49
+ def destroy
50
+
51
+ response = service.server_relation_network_delete(object_uuid)
52
+ response.body
53
+ end
54
+
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,28 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+ require 'fog/compute/gridscale/models/server_relation_network'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Gridscale
7
+ class ServerRelationNetworks < Fog::Compute::Gridscale::PagingCollection
8
+ model Fog::Compute::Gridscale::ServerRelationNetwork
9
+
10
+ def all(server_uuid)
11
+ # requires :server_uuid
12
+ data = service.server_relation_networks_get(server_uuid)
13
+ relations = data.body['network_relations'].each
14
+ load(relations)
15
+ end
16
+
17
+
18
+ def get(server_uuid, network_uuid)
19
+ networks_relation = service.server_relation_network_get(server_uuid, network_uuid).body['network_relation']
20
+ new(networks_relation) if networks_relation
21
+ rescue Fog::Errors::NotFound
22
+ nil
23
+ end
24
+
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,53 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class ServerRelationStorage < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :bootdevice
10
+ attribute :bus
11
+ attribute :capacity
12
+ attribute :controller
13
+ attribute :create_time
14
+ attribute :last_used_template
15
+ attribute :license_product_no
16
+ attribute :lun
17
+ attribute :object_name
18
+ attribute :object_uuid
19
+ attribute :server_uuid
20
+ attribute :storage_type
21
+ attribute :target
22
+ attribute :storage_uuid
23
+ attribute :payload
24
+
25
+ def save
26
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
27
+ requires :server_uuid, :storage_uuid
28
+
29
+ options = {}
30
+ if attributes[:bootdevice]
31
+ options[:bootdevice] = bootdevice
32
+ end
33
+
34
+ service.server_relation_storage_create(server_uuid, storage_uuid, options)
35
+
36
+ end
37
+
38
+ def delete
39
+ object_uuid = {}
40
+ object_uuid[:server_uuid] = attributes[:server_uuid]
41
+ object_uuid[:storage_uuid] = attributes[:storage_uuid]
42
+ service.server_relation_storage_delete(server_uuid, storage_uuid)
43
+ end
44
+
45
+ def destroy
46
+ response = service.server_relation_storage_delete(object_uuid)
47
+ response.body
48
+ end
49
+
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+ require 'fog/compute/gridscale/models/server_relation_storage'
3
+
4
+ module Fog
5
+ module Compute
6
+ class Gridscale
7
+ class ServerRelationStorages < Fog::Compute::Gridscale::PagingCollection
8
+ model Fog::Compute::Gridscale::ServerRelationStorage
9
+
10
+ def all(server_uuid)
11
+ data = service.server_relation_storages_get(server_uuid)
12
+ storages_relations = data.body['storage_relations']
13
+ load(storages_relations)
14
+ end
15
+
16
+
17
+ def get(payload)
18
+ storages_relation = service.server_relation_storage_get(payload).body['storage_relation']
19
+ new(storages_relation) if storages_relation
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/compute/gridscale/models/server'
3
+ require 'fog/compute/gridscale/models/paging_collection'
4
+
5
+ module Fog
6
+ module Compute
7
+ class Gridscale
8
+ class Servers < Fog::Compute::Gridscale::PagingCollection
9
+ model Fog::Compute::Gridscale::Server
10
+
11
+ def all(filters={})
12
+ data = service.servers_get(filters)
13
+ droplets = data.body["servers"].values
14
+ load(droplets)
15
+ end
16
+
17
+ def get(object_uuid)
18
+ server = service.server_get(object_uuid).body['server']
19
+ new(server) if server
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,56 @@
1
+ require 'fog/compute/gridscale/models/snapshot'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Snapshot < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :capacity
10
+ attribute :change_time
11
+ attribute :create_time
12
+ attribute :current_price
13
+ attribute :labels
14
+ attribute :last_used_template
15
+ attribute :location_country
16
+ attribute :location_iata
17
+ attribute :location_name
18
+ attribute :location_uuid
19
+ attribute :object_uuid
20
+ attribute :parent_name
21
+ attribute :parent_uuid
22
+ attribute :storage_uuid
23
+ attribute :reverse_dns
24
+ attribute :status
25
+ attribute :usage_in_minutes
26
+ attribute :name
27
+
28
+ def save
29
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
30
+ requires :storage_uuid , :name
31
+
32
+ options = {}
33
+ if attributes[:labels]
34
+ options[:labels] = labels
35
+ end
36
+
37
+ data = service.snapshot_create(storage_uuid, name, options)
38
+ merge_attributes(data.body)
39
+ true
40
+ end
41
+
42
+ def delete
43
+ requires :object_uuid
44
+ response = service.ip_delete storage_uuid
45
+ response.body
46
+ end
47
+
48
+ def destroy
49
+ response = service.snapshot_delete(object_uuid)
50
+ response.body
51
+ end
52
+
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,50 @@
1
+ require 'fog/compute/gridscale/models/snapshot'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class SnapshotSchedule < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :change_time
10
+ attribute :create_time
11
+ attribute :keep_snapshots
12
+ attribute :labels
13
+ attribute :name
14
+ attribute :next_runtime
15
+ attribute :object_uuid
16
+ attribute :relations
17
+ attribute :run_interval
18
+ attribute :status
19
+ attribute :storage_uuid
20
+
21
+ def save
22
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
23
+ requires :storage_uuid , :name, :run_interval, :keep_snapshots
24
+
25
+ options = {}
26
+
27
+ if attributes[:labels]
28
+ options[:labels] = labels
29
+ end
30
+
31
+ data = service.snapshot_schedule_create(storage_uuid, name, run_interval, keep_snapshots, options)
32
+ merge_attributes(data.body)
33
+ true
34
+ end
35
+
36
+ def delete
37
+ requires :object_uuid
38
+ response = service.ip_delete storage_uuid
39
+ response.body
40
+ end
41
+
42
+ def destroy
43
+ response = service.snapshot_schedule_delete(object_uuid)
44
+ response.body
45
+ end
46
+
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,25 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class SnapshotSchedules < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::SnapshotSchedule
8
+
9
+ def all(filters={})
10
+ data = service.snapshot_schedules_get(filters)
11
+ snapshot_schedules = data.body["snapshot_schedules"].values
12
+ load(snapshot_schedules)
13
+ end
14
+
15
+ def get(payload)
16
+ snapshot_schedule = service.snapshot_schedule_get(payload).body['snapshot_schedule']
17
+ new(snapshot_schedule) if snapshot_schedule
18
+ rescue Fog::Errors::NotFound
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Snapshots < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Snapshot
8
+
9
+ def all(filters={})
10
+ data = service.snapshots_get(filters)
11
+ snapshots = data.body["snapshots"].values
12
+ load(snapshots)
13
+ end
14
+
15
+ def get(payload)
16
+ snapshot = service.snapshot_get(payload).body['snapshot']
17
+ new(snapshot) if snapshot
18
+ rescue Fog::Errors::NotFound
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,49 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Sshkey < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :change_time
10
+ attribute :create_time
11
+ attribute :labels
12
+ attribute :name
13
+ attribute :object_uuid
14
+ attribute :sshkey
15
+ attribute :status
16
+ attribute :user_uuid
17
+
18
+ def save
19
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
20
+ requires :name, :sshkey
21
+
22
+ options = {}
23
+
24
+ if attributes[:labels]
25
+ options[:labels] = labels
26
+ end
27
+
28
+ data = service.sshkey_create(name, sshkey, options)
29
+
30
+ merge_attributes(data.body)
31
+ true
32
+ end
33
+
34
+ def delete
35
+ requires :object_uuid
36
+ response = service.sshkey_delete object_uuid
37
+ response.body
38
+ end
39
+
40
+ def destroy
41
+ requires :object_uuid
42
+ response = service.sshkey_delete(object_uuid)
43
+ response
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,25 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Sshkeys < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Sshkey
8
+
9
+ def all(filters={})
10
+ data = service.sshkeys_get(filters)
11
+ sshkeys = data.body["sshkeys"].values
12
+ load(sshkeys)
13
+ end
14
+
15
+ def get(sshkey_uuid)
16
+ sshkey = service.sshkey_get(sshkey_uuid).body['sshkey']
17
+ new(sshkey) if sshkey
18
+ rescue Fog::Errors::NotFound
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end