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,18 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class DeletedSnapshots < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::DeletedSnapshots
8
+
9
+ def all(filters={})
10
+ data = service.deleted_snapshots_get(filters)
11
+ deleted_snapshots = data.body["deleted_snapshots"].values
12
+ load(deleted_snapshots)
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,30 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class DeletedStorage < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :name
10
+ attribute :object_uuid
11
+ attribute :location_uuid
12
+ attribute :storage_type
13
+ attribute :license_product_no
14
+ attribute :capacity
15
+ attribute :labels
16
+ attribute :status
17
+ attribute :create_time
18
+ attribute :change_time
19
+ attribute :current_price
20
+ attribute :location_uuid
21
+ attribute :location_name
22
+ attribute :location_country
23
+ attribute :location_iata
24
+ attribute :relations
25
+
26
+
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,18 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class DeletedStorages < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::DeletedStorage
8
+
9
+ def all(filters={})
10
+ data = service.deleted_storages_get(filters)
11
+ deleted_storages = data.body["deleted_storages"].values
12
+ load(deleted_storages)
13
+ end
14
+
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,33 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class DeletedTemplate < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :capacity
10
+ attribute :change_time
11
+ attribute :create_time
12
+ attribute :current_price
13
+ attribute :description
14
+ attribute :distro
15
+ attribute :labels
16
+ attribute :license_product_no
17
+ attribute :location_country
18
+ attribute :location_name
19
+ attribute :location_uuid
20
+ attribute :name
21
+ attribute :object_uuid
22
+ attribute :ostype
23
+ attribute :private
24
+ attribute :status
25
+ attribute :usage_in_minutes
26
+ attribute :version
27
+ attribute :snapshot_uuid
28
+
29
+
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,19 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class DeletedeTemplates < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::DeletedTemplate
8
+
9
+
10
+ def all(filters={})
11
+ data = service.deleted_templates_get(filters)
12
+ deleted_templates = data.body["deleted_templates"].values
13
+ load(deleted_templates)
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,46 @@
1
+ require 'fog/compute/models/server'
2
+ require 'fog/core'
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Firewall < 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 :rules
15
+ attribute :status
16
+ attribute :private
17
+
18
+
19
+
20
+ def save
21
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
22
+ requires :name, :rules
23
+ options = {}
24
+
25
+
26
+ if attributes[:labels]
27
+ options[:labels] = labels
28
+ end
29
+
30
+ data = service.firewall_create(name, rules, options)
31
+ merge_attributes(data.body)
32
+ true
33
+ end
34
+
35
+ def destroy
36
+ requires :object_uuid
37
+ response = service.firewall_delete object_uuid
38
+ response.body
39
+ end
40
+
41
+
42
+ private
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/compute/gridscale/models/firewall'
3
+ require 'fog/compute/gridscale/models/paging_collection'
4
+
5
+ module Fog
6
+ module Compute
7
+ class Gridscale
8
+ class Firewalls < Fog::Compute::Gridscale::PagingCollection
9
+ model Fog::Compute::Gridscale::Firewall
10
+
11
+ def all(filters={})
12
+ data = service.firewalls_get(filters)
13
+ droplets = data.body["firewalls"].values
14
+ load(droplets)
15
+ end
16
+
17
+ def get(object_uuid)
18
+ data = service.firewall_get(object_uuid).body['firewall']
19
+ new(data) if data
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,44 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Interface < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :account_uuid
10
+ attribute :change_time
11
+ attribute :create_time
12
+ attribute :delete_block
13
+ attribute :l2security
14
+ attribute :labels
15
+ attribute :location_country
16
+ attribute :location_iata
17
+ attribute :location_name
18
+ attribute :location_uuid
19
+ attribute :name
20
+ attribute :network_type
21
+ attribute :object_uuid
22
+ attribute :public_net
23
+ attribute :relations
24
+ attribute :status
25
+ attribute :ipaddr_uuid
26
+ attribute :network_uuid
27
+ attribute :mac
28
+ attribute :bootable
29
+ attribute :server_uuid
30
+ attribute :ipv4_uuid
31
+ attribute :ipv6_uuid
32
+
33
+ def to_s
34
+ :name
35
+ end
36
+
37
+ def type
38
+ :network_type
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ 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 Interfaces < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Interface
8
+
9
+ def all(server_uuid)
10
+ # requires :server_uuid
11
+ data = service.server_relation_networks_get(server_uuid)
12
+ relations = data.body['network_relations'].each
13
+ load(relations)
14
+ end
15
+
16
+ def get(server_uuid, network_uuid)
17
+ networks_relation = service.server_relation_network_get(server_uuid, network_uuid).body['network_relation']
18
+ new(networks_relation) if networks_relation
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,72 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Ip < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :current_price
10
+ attribute :delete_block
11
+ attribute :failover
12
+ attribute :family
13
+ attribute :ip
14
+ attribute :labels
15
+ attribute :location_country
16
+ attribute :location_iata
17
+ attribute :location_name
18
+ attribute :location_uuid
19
+ attribute :object_uuid, :aliases => 'ipaddr_uuid'
20
+ attribute :partner_uuid
21
+ attribute :prefix
22
+ attribute :relations
23
+ attribute :reverse_dns
24
+ attribute :status
25
+ attribute :usage_in_minutes
26
+
27
+ def save
28
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
29
+ requires :family
30
+
31
+ options = {}
32
+ if attributes[:labels]
33
+ options[:labels] = labels
34
+ end
35
+
36
+ if attributes[:failover]
37
+ options[:failover] = failover
38
+ end
39
+
40
+ if attributes[:name]
41
+ options[:name] = name
42
+ end
43
+
44
+ if attributes[:reverse_dns]
45
+ options[:reverse_dns] = reverse_dns
46
+ end
47
+
48
+ if attributes[:location_uuid]
49
+ options[:location_uuid] = location_uuid
50
+ end
51
+ data = service.ip_create(family, options)
52
+
53
+ merge_attributes(data.body)
54
+ true
55
+ end
56
+
57
+ def delete
58
+ requires :object_uuid
59
+ response = service.ip_delete object_uuid
60
+ response.body
61
+ end
62
+
63
+ def destroy
64
+ requires :object_uuid
65
+ response = service.ip_delete(object_uuid)
66
+ response
67
+ end
68
+
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Ips < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Ip
8
+
9
+ def all(filters={})
10
+ data = service.ips_get(filters)
11
+ ips = data.body["ips"].values
12
+ load(ips)
13
+ end
14
+
15
+
16
+ def get(object_uuid)
17
+ ip = service.ip_get(object_uuid).body['ip']
18
+ new(ip) if ip
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,68 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Isoimage < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :capacity
10
+ attribute :change_time
11
+ attribute :create_time
12
+ attribute :current_price
13
+ attribute :description
14
+ attribute :labels
15
+ attribute :location_country
16
+ attribute :location_iata
17
+ attribute :location_name
18
+ attribute :location_uuid
19
+ attribute :name
20
+ attribute :object_uuid
21
+ attribute :private
22
+ attribute :relations
23
+ attribute :source_url
24
+ attribute :status
25
+ attribute :usage_in_minutes
26
+ attribute :version
27
+
28
+ def delete
29
+ requires :object_uuid
30
+ response = service.isoimage_delete object_uuid
31
+ response.body
32
+ end
33
+
34
+ def destroy
35
+ requires :object_uuid
36
+ response = service.isoimage_delete object_uuid
37
+ response.body
38
+ end
39
+
40
+ def save
41
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
42
+ requires :name, :source_url
43
+
44
+ options = {}
45
+ options[:labels] = labels
46
+ if attributes[:location_uuid]
47
+ options[:location_uuid] = location_uuid
48
+ end
49
+
50
+ data = service.isoimage_create(name, source_url, options)
51
+
52
+ merge_attributes(data.body)
53
+ true
54
+ end
55
+
56
+ def update
57
+ requires :object_uuid
58
+
59
+ payload = {}
60
+
61
+ data = service.isoimage_update(object_uuid, payload)
62
+ merge_attributes(data.body)
63
+ true
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end