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,25 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Isoimages < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Isoimage
8
+
9
+
10
+ def all(filters={})
11
+ data = service.isoimages_get(filters)
12
+ droplets = data.body["isoimages"].values
13
+ load(droplets)
14
+ end
15
+
16
+ def get(object_uuid)
17
+ isoimage = service.isoimage_get(object_uuid).body['isoimage']
18
+ new(isoimage) if isoimage
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,64 @@
1
+ require 'fog/compute/gridscale/models/loadbalancer'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Loadbalancer < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :algorithm
10
+ attribute :backend_servers
11
+ attribute :change_time
12
+ attribute :create_time
13
+ attribute :current_price
14
+ attribute :forwarding_rules
15
+ attribute :labels
16
+ attribute :listen_ipv4_uuid
17
+ attribute :listen_ipv6_uuid
18
+ attribute :location_country
19
+ attribute :location_iata
20
+ attribute :location_name
21
+ attribute :location_site
22
+ attribute :location_uuid
23
+ attribute :name
24
+ attribute :object_uuid
25
+ attribute :redirect_http_to_https
26
+ attribute :status
27
+ attribute :usage_in_minutes
28
+
29
+ def save
30
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
31
+ requires :name, :algorithm, :listen_ipv4_uuid, :listen_ipv6_uuid, :backend_servers, :forwarding_rules, :redirect_http_to_https, :labels
32
+
33
+ options = {}
34
+
35
+ if attributes[:storage_type]
36
+ options[:storage_type] = storage_type
37
+ end
38
+
39
+ if attributes[:location_uuid]
40
+ options[:location_uuid] = location_uuid
41
+ end
42
+
43
+ data = service.load_balancer_create(name, algorithm, listen_ipv4_uuid, listen_ipv6_uuid, backend_servers, forwarding_rules, redirect_http_to_https, labels, options)
44
+
45
+ merge_attributes(data.body)
46
+ true
47
+ end
48
+
49
+ def delete
50
+ requires :object_uuid
51
+ response = service.load_balancer_delete object_uuid
52
+ response.body
53
+ end
54
+
55
+ def destroy
56
+ requires :object_uuid
57
+ response = service.load_balancer_delete(object_uuid)
58
+ response.body
59
+ end
60
+
61
+ end
62
+ end
63
+ end
64
+ 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 Loadbalancers < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Loadbalancer
8
+
9
+ def all(filters={})
10
+ data = service.load_balancers_get(filters)
11
+ loadbalancers = data.body["loadbalancers"].values
12
+ load(loadbalancers)
13
+ end
14
+
15
+
16
+ def get(object_uuid)
17
+ loadbalancer = service.load_balancer_get(object_uuid).body['loadbalancer']
18
+ new(loadbalancer) if loadbalancer
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Location < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :iata
10
+ attribute :labels
11
+ attribute :name
12
+ attribute :object_uuid
13
+ attribute :country
14
+ attribute :status
15
+ end
16
+ end
17
+ end
18
+ 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 Locations < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Location
8
+
9
+
10
+ def all(filters={})
11
+ data = service.locations_get(filters)
12
+ droplets = data.body["locations"].values
13
+ load(droplets)
14
+ end
15
+
16
+ def get(object_uuid)
17
+ location = service.location_get(object_uuid).body
18
+ new(location) if location
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,71 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class MarketplaceTemplate < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :name
10
+ attribute :object_uuid
11
+ attribute :capacity
12
+ attribute :labels
13
+ attribute :status
14
+ attribute :create_time
15
+ attribute :change_time
16
+ attribute :object_storage_path
17
+ attribute :template_type
18
+ attribute :location_iata
19
+ attribute :relations
20
+ attribute :template
21
+ attribute :unique_hash
22
+
23
+
24
+ def delete
25
+ requires :object_uuid
26
+ response = service.marketplace_template_delete object_uuid
27
+ response.body
28
+ end
29
+
30
+ def destroy
31
+ requires :object_uuid
32
+ response = service.marketplace_template_delete object_uuid
33
+ response.body
34
+ end
35
+
36
+ def save
37
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
38
+
39
+ options = {}
40
+
41
+ if attributes[:name]
42
+ options[:name] = name
43
+ end
44
+
45
+ if attributes[:labels]
46
+ options[:labels] = labels
47
+ end
48
+
49
+ if attributes[:capacity]
50
+ options[:capacity] = capacity
51
+ end
52
+
53
+ if attributes[:object_storage_path]
54
+ options[:object_storage_path] = object_storage_path
55
+ end
56
+
57
+ if attributes[:unique_hash]
58
+ options[:unique_hash] = unique_hash
59
+ end
60
+
61
+ data = service.marketplace_template_create(options)
62
+
63
+
64
+ merge_attributes(data.body)
65
+ true
66
+ end
67
+
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/compute/gridscale/models/paging_collection'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class MarketplaceTemplates < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::MarketplaceTemplate
8
+
9
+
10
+ def all(filters={})
11
+ data = service.marketplace_templates_get(filters)
12
+ droplets = data.body["marketplace_templates"].values
13
+ load(droplets)
14
+ end
15
+
16
+
17
+ def get(object_uuid)
18
+ marketplace_template = service.marketplace_template_get(object_uuid).body['marketplace_template']
19
+ new(marketplace_template) if marketplace_template
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,73 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class Network < 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
+
26
+ def delete
27
+ requires :object_uuid
28
+ response = service.network_delete object_uuid
29
+ response.body
30
+ end
31
+
32
+ def destroy
33
+ requires :object_uuid
34
+ response = service.network_delete object_uuid
35
+ response.body
36
+ end
37
+
38
+ def save
39
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
40
+ requires :name
41
+
42
+ options = {}
43
+ if attributes[:labels]
44
+ options[:labels] = labels
45
+ end
46
+
47
+ if attributes[:l2security]
48
+ options[:l2security] = l2security
49
+ end
50
+
51
+ if attributes[:location_uuid]
52
+ options[:location_uuid] = location_uuid
53
+ end
54
+
55
+ data = service.network_create(name, options)
56
+
57
+ merge_attributes(data.body)
58
+ true
59
+ end
60
+
61
+ def update
62
+ requires :object_uuid
63
+
64
+ payload = {}
65
+
66
+ data = service.network_update(object_uuid, payload)
67
+ merge_attributes(data.body)
68
+ true
69
+ end
70
+ end
71
+ end
72
+ end
73
+ 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 Networks < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::Network
8
+
9
+ def all(filters={})
10
+ data = service.networks_get(filters)
11
+ droplets = data.body["networks"].values
12
+ load(droplets)
13
+ end
14
+
15
+ def get(object_uuid)
16
+ network = service.network_get(object_uuid).body['network']
17
+ new(network) if network
18
+ rescue Fog::Errors::NotFound
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,65 @@
1
+ require 'fog/compute/gridscale/models/storage'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Gridscale
6
+ class PaasSecurityZone < Fog::Model
7
+ identity :object_uuid
8
+
9
+ attribute :name
10
+ attribute :object_uuid
11
+ attribute :location_uuid
12
+ attribute :labels
13
+ attribute :status
14
+ attribute :create_time
15
+ attribute :change_time
16
+ attribute :location_name
17
+ attribute :location_country
18
+ attribute :location_iata
19
+ attribute :relations
20
+
21
+ def delete
22
+ requires :object_uuid
23
+ response = service.paas_security_zone_delete object_uuid
24
+ response.body
25
+ end
26
+
27
+ def destroy
28
+ requires :object_uuid
29
+ response = service.paas_security_zone_delete object_uuid
30
+ response.body
31
+ end
32
+
33
+ def save
34
+ raise Fog::Errors::Error.new('Re-saving an existing object may create a duplicate') if persisted?
35
+ requires :name
36
+
37
+ options = {}
38
+
39
+ if attributes[:labels]
40
+ options[:labels] = labels
41
+ end
42
+
43
+
44
+
45
+ if attributes[:location_uuid]
46
+ options[:location_uuid] = location_uuid
47
+ end
48
+
49
+ data = service.paas_security_zone_create(name, options)
50
+
51
+ merge_attributes(data.body)
52
+ true
53
+ end
54
+
55
+ def update
56
+ requires :object_uuid
57
+ data = service.paas_security_zone_update(object_uuid)
58
+ merge_attributes(data.body)
59
+ true
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+ 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 PaasSecurityZones < Fog::Compute::Gridscale::PagingCollection
7
+ model Fog::Compute::Gridscale::PaasSecurityZone
8
+
9
+ def all(filters={})
10
+ data = service.paas_security_zones_get(filters)
11
+ droplets = data.body["paas_security_zones"].values
12
+ load(droplets)
13
+ end
14
+
15
+
16
+ def get(object_uuid)
17
+ paas_security_zone = service.paas_security_zone_get(object_uuid).body['paas_security_zone']
18
+ new(paas_security_zone) if paas_security_zone
19
+ rescue Fog::Errors::NotFound
20
+ nil
21
+ end
22
+
23
+ end
24
+ end
25
+ end
26
+ end