fog-storm_on_demand 0.0.1

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 (214) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.rubocop.yml +20 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +17 -0
  7. data/CONTRIBUTING.md +18 -0
  8. data/CONTRIBUTORS.md +15 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.md +20 -0
  11. data/README.md +38 -0
  12. data/Rakefile +11 -0
  13. data/fog-storm_on_demand.gemspec +34 -0
  14. data/gemfiles/Gemfile.1.9.2- +8 -0
  15. data/gemfiles/Gemfile.1.9.3+ +7 -0
  16. data/lib/fog/account/storm_on_demand.rb +51 -0
  17. data/lib/fog/account/storm_on_demand/models/token.rb +14 -0
  18. data/lib/fog/account/storm_on_demand/models/tokens.rb +14 -0
  19. data/lib/fog/account/storm_on_demand/requests/create_token.rb +14 -0
  20. data/lib/fog/account/storm_on_demand/requests/expire_token.rb +14 -0
  21. data/lib/fog/billing/storm_on_demand.rb +57 -0
  22. data/lib/fog/billing/storm_on_demand/models/invoice.rb +19 -0
  23. data/lib/fog/billing/storm_on_demand/models/invoices.rb +24 -0
  24. data/lib/fog/billing/storm_on_demand/models/payment.rb +8 -0
  25. data/lib/fog/billing/storm_on_demand/models/payments.rb +14 -0
  26. data/lib/fog/billing/storm_on_demand/requests/get_invoice.rb +14 -0
  27. data/lib/fog/billing/storm_on_demand/requests/list_invoices.rb +14 -0
  28. data/lib/fog/billing/storm_on_demand/requests/make_payment.rb +14 -0
  29. data/lib/fog/billing/storm_on_demand/requests/next_invoice.rb +14 -0
  30. data/lib/fog/bin/storm_on_demand.rb +29 -0
  31. data/lib/fog/compute/storm_on_demand.rb +115 -0
  32. data/lib/fog/compute/storm_on_demand/models/config.rb +31 -0
  33. data/lib/fog/compute/storm_on_demand/models/configs.rb +19 -0
  34. data/lib/fog/compute/storm_on_demand/models/image.rb +35 -0
  35. data/lib/fog/compute/storm_on_demand/models/images.rb +24 -0
  36. data/lib/fog/compute/storm_on_demand/models/notification.rb +25 -0
  37. data/lib/fog/compute/storm_on_demand/models/notifications.rb +24 -0
  38. data/lib/fog/compute/storm_on_demand/models/product.rb +31 -0
  39. data/lib/fog/compute/storm_on_demand/models/products.rb +22 -0
  40. data/lib/fog/compute/storm_on_demand/models/server.rb +87 -0
  41. data/lib/fog/compute/storm_on_demand/models/servers.rb +24 -0
  42. data/lib/fog/compute/storm_on_demand/models/template.rb +20 -0
  43. data/lib/fog/compute/storm_on_demand/models/templates.rb +19 -0
  44. data/lib/fog/compute/storm_on_demand/requests/clone_server.rb +14 -0
  45. data/lib/fog/compute/storm_on_demand/requests/create_image.rb +14 -0
  46. data/lib/fog/compute/storm_on_demand/requests/create_server.rb +14 -0
  47. data/lib/fog/compute/storm_on_demand/requests/current_notifications.rb +14 -0
  48. data/lib/fog/compute/storm_on_demand/requests/delete_image.rb +14 -0
  49. data/lib/fog/compute/storm_on_demand/requests/delete_server.rb +14 -0
  50. data/lib/fog/compute/storm_on_demand/requests/get_config_details.rb +14 -0
  51. data/lib/fog/compute/storm_on_demand/requests/get_image_details.rb +14 -0
  52. data/lib/fog/compute/storm_on_demand/requests/get_notification.rb +14 -0
  53. data/lib/fog/compute/storm_on_demand/requests/get_product.rb +14 -0
  54. data/lib/fog/compute/storm_on_demand/requests/get_product_code.rb +14 -0
  55. data/lib/fog/compute/storm_on_demand/requests/get_product_price.rb +14 -0
  56. data/lib/fog/compute/storm_on_demand/requests/get_product_starting_price.rb +14 -0
  57. data/lib/fog/compute/storm_on_demand/requests/get_server.rb +14 -0
  58. data/lib/fog/compute/storm_on_demand/requests/get_template_details.rb +14 -0
  59. data/lib/fog/compute/storm_on_demand/requests/list_configs.rb +14 -0
  60. data/lib/fog/compute/storm_on_demand/requests/list_images.rb +14 -0
  61. data/lib/fog/compute/storm_on_demand/requests/list_notifications.rb +14 -0
  62. data/lib/fog/compute/storm_on_demand/requests/list_products.rb +14 -0
  63. data/lib/fog/compute/storm_on_demand/requests/list_servers.rb +14 -0
  64. data/lib/fog/compute/storm_on_demand/requests/list_templates.rb +14 -0
  65. data/lib/fog/compute/storm_on_demand/requests/reboot_server.rb +14 -0
  66. data/lib/fog/compute/storm_on_demand/requests/resize_server.rb +14 -0
  67. data/lib/fog/compute/storm_on_demand/requests/resolve_notification.rb +14 -0
  68. data/lib/fog/compute/storm_on_demand/requests/restore_image.rb +14 -0
  69. data/lib/fog/compute/storm_on_demand/requests/restore_template.rb +14 -0
  70. data/lib/fog/compute/storm_on_demand/requests/server_history.rb +14 -0
  71. data/lib/fog/compute/storm_on_demand/requests/server_status.rb +14 -0
  72. data/lib/fog/compute/storm_on_demand/requests/shutdown_server.rb +14 -0
  73. data/lib/fog/compute/storm_on_demand/requests/start_server.rb +14 -0
  74. data/lib/fog/compute/storm_on_demand/requests/update_image.rb +14 -0
  75. data/lib/fog/compute/storm_on_demand/requests/update_server.rb +14 -0
  76. data/lib/fog/dns/storm_on_demand.rb +82 -0
  77. data/lib/fog/dns/storm_on_demand/models/domain.rb +25 -0
  78. data/lib/fog/dns/storm_on_demand/models/domains.rb +14 -0
  79. data/lib/fog/dns/storm_on_demand/models/record.rb +55 -0
  80. data/lib/fog/dns/storm_on_demand/models/records.rb +24 -0
  81. data/lib/fog/dns/storm_on_demand/models/reverse.rb +8 -0
  82. data/lib/fog/dns/storm_on_demand/models/reverses.rb +17 -0
  83. data/lib/fog/dns/storm_on_demand/models/zone.rb +32 -0
  84. data/lib/fog/dns/storm_on_demand/models/zones.rb +24 -0
  85. data/lib/fog/dns/storm_on_demand/requests/check_zone_delegation.rb +14 -0
  86. data/lib/fog/dns/storm_on_demand/requests/create_record.rb +14 -0
  87. data/lib/fog/dns/storm_on_demand/requests/create_record_region.rb +14 -0
  88. data/lib/fog/dns/storm_on_demand/requests/create_zone.rb +14 -0
  89. data/lib/fog/dns/storm_on_demand/requests/delete_record.rb +14 -0
  90. data/lib/fog/dns/storm_on_demand/requests/delete_record_region.rb +14 -0
  91. data/lib/fog/dns/storm_on_demand/requests/delete_reverse.rb +14 -0
  92. data/lib/fog/dns/storm_on_demand/requests/delete_zone.rb +14 -0
  93. data/lib/fog/dns/storm_on_demand/requests/get_record.rb +14 -0
  94. data/lib/fog/dns/storm_on_demand/requests/get_zone.rb +14 -0
  95. data/lib/fog/dns/storm_on_demand/requests/list_domains.rb +14 -0
  96. data/lib/fog/dns/storm_on_demand/requests/list_records.rb +14 -0
  97. data/lib/fog/dns/storm_on_demand/requests/list_zones.rb +14 -0
  98. data/lib/fog/dns/storm_on_demand/requests/renew_domain.rb +14 -0
  99. data/lib/fog/dns/storm_on_demand/requests/update_record.rb +14 -0
  100. data/lib/fog/dns/storm_on_demand/requests/update_record_region.rb +14 -0
  101. data/lib/fog/dns/storm_on_demand/requests/update_reverse.rb +14 -0
  102. data/lib/fog/dns/storm_on_demand/requests/update_zone.rb +14 -0
  103. data/lib/fog/monitoring/storm_on_demand.rb +65 -0
  104. data/lib/fog/monitoring/storm_on_demand/models/bandwidth.rb +14 -0
  105. data/lib/fog/monitoring/storm_on_demand/models/bandwidths.rb +18 -0
  106. data/lib/fog/monitoring/storm_on_demand/models/load.rb +14 -0
  107. data/lib/fog/monitoring/storm_on_demand/models/loads.rb +18 -0
  108. data/lib/fog/monitoring/storm_on_demand/models/monitor_service.rb +13 -0
  109. data/lib/fog/monitoring/storm_on_demand/models/monitor_services.rb +27 -0
  110. data/lib/fog/monitoring/storm_on_demand/requests/get_bandwidth_graph.rb +14 -0
  111. data/lib/fog/monitoring/storm_on_demand/requests/get_bandwidth_stats.rb +14 -0
  112. data/lib/fog/monitoring/storm_on_demand/requests/get_load_graph.rb +14 -0
  113. data/lib/fog/monitoring/storm_on_demand/requests/get_load_stats.rb +14 -0
  114. data/lib/fog/monitoring/storm_on_demand/requests/get_service.rb +14 -0
  115. data/lib/fog/monitoring/storm_on_demand/requests/get_service_status.rb +14 -0
  116. data/lib/fog/monitoring/storm_on_demand/requests/monitoring_ips.rb +14 -0
  117. data/lib/fog/monitoring/storm_on_demand/requests/update_service.rb +14 -0
  118. data/lib/fog/network/storm_on_demand.rb +115 -0
  119. data/lib/fog/network/storm_on_demand/models/balancer.rb +50 -0
  120. data/lib/fog/network/storm_on_demand/models/balancers.rb +37 -0
  121. data/lib/fog/network/storm_on_demand/models/firewall.rb +12 -0
  122. data/lib/fog/network/storm_on_demand/models/firewalls.rb +28 -0
  123. data/lib/fog/network/storm_on_demand/models/network_ip.rb +15 -0
  124. data/lib/fog/network/storm_on_demand/models/network_ips.rb +43 -0
  125. data/lib/fog/network/storm_on_demand/models/pool.rb +24 -0
  126. data/lib/fog/network/storm_on_demand/models/pools.rb +23 -0
  127. data/lib/fog/network/storm_on_demand/models/private_ip.rb +9 -0
  128. data/lib/fog/network/storm_on_demand/models/private_ips.rb +33 -0
  129. data/lib/fog/network/storm_on_demand/models/ruleset.rb +19 -0
  130. data/lib/fog/network/storm_on_demand/models/rulesets.rb +24 -0
  131. data/lib/fog/network/storm_on_demand/models/zone.rb +19 -0
  132. data/lib/fog/network/storm_on_demand/models/zones.rb +19 -0
  133. data/lib/fog/network/storm_on_demand/requests/add_balancer_node.rb +14 -0
  134. data/lib/fog/network/storm_on_demand/requests/add_balancer_service.rb +14 -0
  135. data/lib/fog/network/storm_on_demand/requests/add_ip_to_server.rb +14 -0
  136. data/lib/fog/network/storm_on_demand/requests/attach_server_to_private_ip.rb +14 -0
  137. data/lib/fog/network/storm_on_demand/requests/check_balancer_available.rb +14 -0
  138. data/lib/fog/network/storm_on_demand/requests/check_server_attached.rb +14 -0
  139. data/lib/fog/network/storm_on_demand/requests/create_balancer.rb +14 -0
  140. data/lib/fog/network/storm_on_demand/requests/create_pool.rb +14 -0
  141. data/lib/fog/network/storm_on_demand/requests/create_ruleset.rb +14 -0
  142. data/lib/fog/network/storm_on_demand/requests/delete_balancer.rb +14 -0
  143. data/lib/fog/network/storm_on_demand/requests/delete_pool.rb +14 -0
  144. data/lib/fog/network/storm_on_demand/requests/detach_server_from_private_ip.rb +14 -0
  145. data/lib/fog/network/storm_on_demand/requests/get_assignments.rb +14 -0
  146. data/lib/fog/network/storm_on_demand/requests/get_balancer_details.rb +14 -0
  147. data/lib/fog/network/storm_on_demand/requests/get_balancer_possible_nodes.rb +14 -0
  148. data/lib/fog/network/storm_on_demand/requests/get_balancer_strategies.rb +14 -0
  149. data/lib/fog/network/storm_on_demand/requests/get_firewall.rb +14 -0
  150. data/lib/fog/network/storm_on_demand/requests/get_firewall_basic_options.rb +14 -0
  151. data/lib/fog/network/storm_on_demand/requests/get_firewall_rules.rb +14 -0
  152. data/lib/fog/network/storm_on_demand/requests/get_ip_details.rb +14 -0
  153. data/lib/fog/network/storm_on_demand/requests/get_pool.rb +14 -0
  154. data/lib/fog/network/storm_on_demand/requests/get_private_ip.rb +14 -0
  155. data/lib/fog/network/storm_on_demand/requests/get_ruleset.rb +14 -0
  156. data/lib/fog/network/storm_on_demand/requests/get_zone.rb +14 -0
  157. data/lib/fog/network/storm_on_demand/requests/list_balancers.rb +14 -0
  158. data/lib/fog/network/storm_on_demand/requests/list_ip_public_accounts.rb +14 -0
  159. data/lib/fog/network/storm_on_demand/requests/list_network_ips.rb +14 -0
  160. data/lib/fog/network/storm_on_demand/requests/list_network_public_ips.rb +14 -0
  161. data/lib/fog/network/storm_on_demand/requests/list_private_ips.rb +14 -0
  162. data/lib/fog/network/storm_on_demand/requests/list_rulesets.rb +14 -0
  163. data/lib/fog/network/storm_on_demand/requests/list_zones.rb +14 -0
  164. data/lib/fog/network/storm_on_demand/requests/remove_balancer_node.rb +14 -0
  165. data/lib/fog/network/storm_on_demand/requests/remove_balancer_service.rb +14 -0
  166. data/lib/fog/network/storm_on_demand/requests/remove_ip_from_server.rb +14 -0
  167. data/lib/fog/network/storm_on_demand/requests/request_new_ips.rb +14 -0
  168. data/lib/fog/network/storm_on_demand/requests/set_default_zone.rb +14 -0
  169. data/lib/fog/network/storm_on_demand/requests/update_balancer.rb +14 -0
  170. data/lib/fog/network/storm_on_demand/requests/update_firewall.rb +14 -0
  171. data/lib/fog/network/storm_on_demand/requests/update_pool.rb +14 -0
  172. data/lib/fog/network/storm_on_demand/requests/update_ruleset.rb +14 -0
  173. data/lib/fog/storage/storm_on_demand.rb +62 -0
  174. data/lib/fog/storage/storm_on_demand/models/cluster.rb +11 -0
  175. data/lib/fog/storage/storm_on_demand/models/clusters.rb +14 -0
  176. data/lib/fog/storage/storm_on_demand/models/volume.rb +45 -0
  177. data/lib/fog/storage/storm_on_demand/models/volumes.rb +24 -0
  178. data/lib/fog/storage/storm_on_demand/requests/attach_volume_to_server.rb +14 -0
  179. data/lib/fog/storage/storm_on_demand/requests/create_volume.rb +14 -0
  180. data/lib/fog/storage/storm_on_demand/requests/delete_volume.rb +14 -0
  181. data/lib/fog/storage/storm_on_demand/requests/detach_volume_from_server.rb +14 -0
  182. data/lib/fog/storage/storm_on_demand/requests/get_volume.rb +14 -0
  183. data/lib/fog/storage/storm_on_demand/requests/list_clusters.rb +14 -0
  184. data/lib/fog/storage/storm_on_demand/requests/list_volumes.rb +14 -0
  185. data/lib/fog/storage/storm_on_demand/requests/resize_volume.rb +14 -0
  186. data/lib/fog/storage/storm_on_demand/requests/update_volume.rb +14 -0
  187. data/lib/fog/storm_on_demand.rb +57 -0
  188. data/lib/fog/storm_on_demand/shared.rb +53 -0
  189. data/lib/fog/storm_on_demand/version.rb +5 -0
  190. data/lib/fog/support/storm_on_demand.rb +63 -0
  191. data/lib/fog/support/storm_on_demand/models/alert.rb +10 -0
  192. data/lib/fog/support/storm_on_demand/models/alerts.rb +14 -0
  193. data/lib/fog/support/storm_on_demand/models/ticket.rb +64 -0
  194. data/lib/fog/support/storm_on_demand/models/tickets.rb +27 -0
  195. data/lib/fog/support/storm_on_demand/requests/add_feedback.rb +14 -0
  196. data/lib/fog/support/storm_on_demand/requests/add_transaction_feedback.rb +14 -0
  197. data/lib/fog/support/storm_on_demand/requests/authenticate.rb +14 -0
  198. data/lib/fog/support/storm_on_demand/requests/close_ticket.rb +14 -0
  199. data/lib/fog/support/storm_on_demand/requests/create_ticket.rb +14 -0
  200. data/lib/fog/support/storm_on_demand/requests/get_active_alert.rb +14 -0
  201. data/lib/fog/support/storm_on_demand/requests/get_ticket_details.rb +14 -0
  202. data/lib/fog/support/storm_on_demand/requests/list_ticket_types.rb +14 -0
  203. data/lib/fog/support/storm_on_demand/requests/list_tickets.rb +14 -0
  204. data/lib/fog/support/storm_on_demand/requests/reopen_ticket.rb +14 -0
  205. data/lib/fog/support/storm_on_demand/requests/reply_ticket.rb +14 -0
  206. data/lib/fog/vpn/storm_on_demand.rb +53 -0
  207. data/lib/fog/vpn/storm_on_demand/models/vpn.rb +22 -0
  208. data/lib/fog/vpn/storm_on_demand/models/vpns.rb +23 -0
  209. data/lib/fog/vpn/storm_on_demand/requests/create_vpn.rb +14 -0
  210. data/lib/fog/vpn/storm_on_demand/requests/get_vpn.rb +14 -0
  211. data/lib/fog/vpn/storm_on_demand/requests/list_vpn_users.rb +14 -0
  212. data/lib/fog/vpn/storm_on_demand/requests/update_vpn.rb +14 -0
  213. data/spec/minitest_helper.rb +31 -0
  214. metadata +371 -0
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Network
3
+ class StormOnDemand
4
+ class Real
5
+ def update_ruleset(options = {})
6
+ request(
7
+ :path => '/Network/Firewall/Ruleset/update',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,62 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand < Fog::Service
4
+ autoload :Cluster, 'fog/storage/storm_on_demand/models/cluster'
5
+ autoload :Clusters, 'fog/storage/storm_on_demand/models/clusters'
6
+ autoload :Volume, 'fog/storage/storm_on_demand/models/volume'
7
+ autoload :Volumes, 'fog/storage/storm_on_demand/models/volumes'
8
+
9
+ requires :storm_on_demand_username, :storm_on_demand_password
10
+ recognizes :storm_on_demand_auth_url
11
+
12
+ model_path 'fog/storage/storm_on_demand/models'
13
+ model :cluster
14
+ collection :clusters
15
+ model :volume
16
+ collection :volumes
17
+
18
+ request_path 'fog/storage/storm_on_demand/requests'
19
+ request :list_clusters
20
+ request :attach_volume_to_server
21
+ request :create_volume
22
+ request :delete_volume
23
+ request :detach_volume_from_server
24
+ request :get_volume
25
+ request :list_volumes
26
+ request :resize_volume
27
+ request :update_volume
28
+
29
+ class Mock
30
+ def self.data
31
+ @data ||= Hash.new
32
+ end
33
+
34
+ def self.reset
35
+ @data = nil
36
+ end
37
+
38
+ def self.reset_data(keys=data.keys)
39
+ for key in [*keys]
40
+ data.delete(key)
41
+ end
42
+ end
43
+
44
+ def initialize(options = {})
45
+ @storm_on_demand_username = options[:storm_on_demand_username]
46
+ end
47
+
48
+ def data
49
+ self.class.data[@storm_on_demand_username]
50
+ end
51
+
52
+ def reset_data
53
+ self.class.data.delete(@storm_on_demand_username)
54
+ end
55
+ end
56
+
57
+ class Real
58
+ include Fog::StormOnDemand::Shared
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,11 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Cluster < Fog::Model
5
+ identity :id
6
+ attribute :description
7
+ attribute :zone
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Clusters < Fog::Collection
5
+ model Fog::Storage::StormOnDemand::Cluster
6
+
7
+ def all(options = {})
8
+ data = service.list_clusters(options).body['items']
9
+ load(data)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,45 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Volume < Fog::Model
5
+ identity :uniq_id
6
+ attribute :attachedTo
7
+ attribute :cross_attach
8
+ attribute :domain
9
+ attribute :label
10
+ attribute :size
11
+ attribute :status
12
+ attribute :zone
13
+
14
+ def attach_to(server_id)
15
+ requires :identity
16
+ service.attach_volume_to_server(:uniq_id => identity,
17
+ :to => server_id).body
18
+ end
19
+
20
+ def destroy
21
+ requires :identity
22
+ service.delete_volume(:uniq_id => identity)
23
+ true
24
+ end
25
+
26
+ def detach_from(server_id)
27
+ requires :identity
28
+ service.detach_volume_from_server(:uniq_id => identity,
29
+ :detach_from => server_id).body
30
+ end
31
+
32
+ def resize(new_size)
33
+ requires :identity
34
+ service.resize_volume(:uniq_id => identity,
35
+ :new_size => new_size).body
36
+ end
37
+
38
+ def update(options = {})
39
+ requires :identity
40
+ service.update_volume({:uniq_id => identity}.merge!(options))
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,24 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Volumes < Fog::Collection
5
+ model Fog::Storage::StormOnDemand::Volume
6
+
7
+ def create(options)
8
+ vol = service.create_volume(options).body
9
+ new(vol)
10
+ end
11
+
12
+ def get(uniq_id)
13
+ vol = service.get_volume(:uniq_id => uniq_id).body
14
+ new(vol)
15
+ end
16
+
17
+ def all(options = {})
18
+ vols = service.list_volumes(options).body['items']
19
+ load(vols)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def attach_volume_to_server(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/attach',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def create_volume(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/create',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def delete_volume(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/delete',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def detach_volume_from_server(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/detach',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def get_volume(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/details',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def list_clusters(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Cluster/list',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def list_volumes(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/list',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def resize_volume(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/resize',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ module Fog
2
+ module Storage
3
+ class StormOnDemand
4
+ class Real
5
+ def update_volume(options = {})
6
+ request(
7
+ :path => '/Storage/Block/Volume/update',
8
+ :body => Fog::JSON.encode(:params => options)
9
+ )
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,57 @@
1
+ require 'fog/storm_on_demand/version'
2
+ require 'fog/core'
3
+ require 'fog/json'
4
+
5
+ module Fog
6
+ module StormOnDemand
7
+ autoload :Shared, 'fog/storm_on_demand/shared'
8
+
9
+ extend Fog::Provider
10
+
11
+ service(:storm_on_demand, 'Compute')
12
+ service(:storm_on_demand, 'Network')
13
+ service(:storm_on_demand, 'Storage')
14
+ service(:storm_on_demand, 'DNS')
15
+ service(:storm_on_demand, 'Billing')
16
+ service(:storm_on_demand, 'Monitoring')
17
+ service(:storm_on_demand, 'Support')
18
+ service(:models, 'Account')
19
+ service(:storm_on_demand, 'VPN')
20
+ end
21
+
22
+ module Account
23
+ autoload :StormOnDemand, 'fog/account/storm_on_demand'
24
+ end
25
+
26
+ module Billing
27
+ autoload :StormOnDemand, 'fog/billing/storm_on_demand'
28
+ end
29
+
30
+ module Compute
31
+ autoload :StormOnDemand, 'fog/compute/storm_on_demand'
32
+ end
33
+
34
+ module DNS
35
+ autoload :StormOnDemand, 'fog/dns/storm_on_demand'
36
+ end
37
+
38
+ module Monitoring
39
+ autoload :StormOnDemand, 'fog/monitoring/storm_on_demand'
40
+ end
41
+
42
+ module Network
43
+ autoload :StormOnDemand, 'fog/network/storm_on_demand'
44
+ end
45
+
46
+ module Storage
47
+ autoload :StormOnDemand, 'fog/storage/storm_on_demand'
48
+ end
49
+
50
+ module Support
51
+ autoload :StormOnDemand, 'fog/support/storm_on_demand'
52
+ end
53
+
54
+ module VPN
55
+ autoload :StormOnDemand, 'fog/vpn/storm_on_demand'
56
+ end
57
+ end
@@ -0,0 +1,53 @@
1
+ module Fog
2
+ module StormOnDemand
3
+ module Shared
4
+ API_URL = 'https://api.stormondemand.com'
5
+ API_VERSION = 'v1'
6
+
7
+ def initialize(options = {})
8
+ uri = URI.parse(options[:storm_on_demand_auth_url] ||= API_URL)
9
+ @connection_options = options[:connection_options] || {}
10
+ @host = uri.host
11
+ @path = uri.path
12
+ @persistent = options[:persistent] || false
13
+ @port = uri.port
14
+ @scheme = uri.scheme
15
+ @storm_on_demand_username = options[:storm_on_demand_username]
16
+ @storm_on_demand_password = options[:storm_on_demand_password]
17
+ @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
18
+ end
19
+
20
+ def reload
21
+ @connection.reset
22
+ end
23
+
24
+ def request(params)
25
+ begin
26
+ response = @connection.request(params.merge!({
27
+ :headers => {
28
+ 'Content-Type' => 'application/json',
29
+ 'Authorization' => 'Basic ' << Base64.encode64("#{@storm_on_demand_username}:#{@storm_on_demand_password}").chomp
30
+ }.merge!(params[:headers] || {}),
31
+ :path => "#{@path}/#{API_VERSION}#{params[:path]}",
32
+ :expects => 200,
33
+ :method => :post
34
+ }))
35
+ rescue Excon::Errors::HTTPStatusError => error
36
+ raise case error
37
+ when Excon::Errors::NotFound
38
+ Fog::StormOnDemand::Compute::NotFound.slurp(error)
39
+ else
40
+ error
41
+ end
42
+ end
43
+ unless response.body.empty?
44
+ response.body = Fog::JSON.decode(response.body)
45
+ end
46
+ if response.body.key?('error_class')
47
+ raise(Fog::Compute::StormOnDemand::Error, response.body.inspect)
48
+ end
49
+ response
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,5 @@
1
+ module Fog
2
+ module StormOnDemand
3
+ VERSION = "0.0.1"
4
+ end
5
+ end