fog-ecloud 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 (286) 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 +16 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.md +20 -0
  11. data/README.md +38 -0
  12. data/Rakefile +18 -0
  13. data/fog-ecloud.gemspec +35 -0
  14. data/gemfiles/Gemfile.1.9.2- +8 -0
  15. data/gemfiles/Gemfile.1.9.3+ +7 -0
  16. data/lib/fog/ecloud/collection.rb +24 -0
  17. data/lib/fog/ecloud/compute.rb +824 -0
  18. data/lib/fog/ecloud/core.rb +32 -0
  19. data/lib/fog/ecloud/generate_collection.rb +127 -0
  20. data/lib/fog/ecloud/ipaddr.rb +5 -0
  21. data/lib/fog/ecloud/mock_data_classes.rb +766 -0
  22. data/lib/fog/ecloud/model.rb +20 -0
  23. data/lib/fog/ecloud/models/compute/admin_organization.rb +43 -0
  24. data/lib/fog/ecloud/models/compute/admin_organizations.rb +21 -0
  25. data/lib/fog/ecloud/models/compute/api_key.rb +20 -0
  26. data/lib/fog/ecloud/models/compute/api_keys.rb +26 -0
  27. data/lib/fog/ecloud/models/compute/association.rb +23 -0
  28. data/lib/fog/ecloud/models/compute/associations.rb +34 -0
  29. data/lib/fog/ecloud/models/compute/authentication_level.rb +21 -0
  30. data/lib/fog/ecloud/models/compute/authentication_levels.rb +26 -0
  31. data/lib/fog/ecloud/models/compute/backup_internet_service.rb +45 -0
  32. data/lib/fog/ecloud/models/compute/backup_internet_services.rb +41 -0
  33. data/lib/fog/ecloud/models/compute/catalog.rb +39 -0
  34. data/lib/fog/ecloud/models/compute/catalog_configuration.rb +22 -0
  35. data/lib/fog/ecloud/models/compute/catalog_configurations.rb +26 -0
  36. data/lib/fog/ecloud/models/compute/catalog_item.rb +24 -0
  37. data/lib/fog/ecloud/models/compute/compute_pool.rb +70 -0
  38. data/lib/fog/ecloud/models/compute/compute_pools.rb +33 -0
  39. data/lib/fog/ecloud/models/compute/cpu_usage_detail.rb +16 -0
  40. data/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb +26 -0
  41. data/lib/fog/ecloud/models/compute/detached_disk.rb +27 -0
  42. data/lib/fog/ecloud/models/compute/detached_disks.rb +26 -0
  43. data/lib/fog/ecloud/models/compute/environment.rb +111 -0
  44. data/lib/fog/ecloud/models/compute/environments.rb +39 -0
  45. data/lib/fog/ecloud/models/compute/firewall_acl.rb +27 -0
  46. data/lib/fog/ecloud/models/compute/firewall_acls.rb +27 -0
  47. data/lib/fog/ecloud/models/compute/group.rb +41 -0
  48. data/lib/fog/ecloud/models/compute/groups.rb +38 -0
  49. data/lib/fog/ecloud/models/compute/guest_process.rb +15 -0
  50. data/lib/fog/ecloud/models/compute/guest_processes.rb +26 -0
  51. data/lib/fog/ecloud/models/compute/hardware_configuration.rb +18 -0
  52. data/lib/fog/ecloud/models/compute/hardware_configurations.rb +26 -0
  53. data/lib/fog/ecloud/models/compute/internet_service.rb +97 -0
  54. data/lib/fog/ecloud/models/compute/internet_services.rb +44 -0
  55. data/lib/fog/ecloud/models/compute/ip_address.rb +39 -0
  56. data/lib/fog/ecloud/models/compute/ip_addresses.rb +32 -0
  57. data/lib/fog/ecloud/models/compute/layout.rb +20 -0
  58. data/lib/fog/ecloud/models/compute/layouts.rb +26 -0
  59. data/lib/fog/ecloud/models/compute/location.rb +22 -0
  60. data/lib/fog/ecloud/models/compute/locations.rb +28 -0
  61. data/lib/fog/ecloud/models/compute/login_banner.rb +16 -0
  62. data/lib/fog/ecloud/models/compute/login_banners.rb +26 -0
  63. data/lib/fog/ecloud/models/compute/memory_usage_detail.rb +16 -0
  64. data/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb +26 -0
  65. data/lib/fog/ecloud/models/compute/monitor.rb +46 -0
  66. data/lib/fog/ecloud/models/compute/monitors.rb +30 -0
  67. data/lib/fog/ecloud/models/compute/network.rb +46 -0
  68. data/lib/fog/ecloud/models/compute/networks.rb +32 -0
  69. data/lib/fog/ecloud/models/compute/node.rb +45 -0
  70. data/lib/fog/ecloud/models/compute/nodes.rb +42 -0
  71. data/lib/fog/ecloud/models/compute/operating_system.rb +16 -0
  72. data/lib/fog/ecloud/models/compute/operating_system_families.rb +26 -0
  73. data/lib/fog/ecloud/models/compute/operating_system_family.rb +21 -0
  74. data/lib/fog/ecloud/models/compute/operating_systems.rb +25 -0
  75. data/lib/fog/ecloud/models/compute/organization.rb +78 -0
  76. data/lib/fog/ecloud/models/compute/organizations.rb +38 -0
  77. data/lib/fog/ecloud/models/compute/password_complexity_rule.rb +49 -0
  78. data/lib/fog/ecloud/models/compute/password_complexity_rules.rb +26 -0
  79. data/lib/fog/ecloud/models/compute/physical_device.rb +21 -0
  80. data/lib/fog/ecloud/models/compute/physical_devices.rb +26 -0
  81. data/lib/fog/ecloud/models/compute/public_ip.rb +26 -0
  82. data/lib/fog/ecloud/models/compute/public_ips.rb +31 -0
  83. data/lib/fog/ecloud/models/compute/rnat.rb +27 -0
  84. data/lib/fog/ecloud/models/compute/rnats.rb +26 -0
  85. data/lib/fog/ecloud/models/compute/role.rb +23 -0
  86. data/lib/fog/ecloud/models/compute/roles.rb +36 -0
  87. data/lib/fog/ecloud/models/compute/row.rb +56 -0
  88. data/lib/fog/ecloud/models/compute/rows.rb +39 -0
  89. data/lib/fog/ecloud/models/compute/server.rb +323 -0
  90. data/lib/fog/ecloud/models/compute/server_configuration_option.rb +16 -0
  91. data/lib/fog/ecloud/models/compute/server_configuration_options.rb +26 -0
  92. data/lib/fog/ecloud/models/compute/servers.rb +65 -0
  93. data/lib/fog/ecloud/models/compute/ssh_key.rb +19 -0
  94. data/lib/fog/ecloud/models/compute/ssh_keys.rb +26 -0
  95. data/lib/fog/ecloud/models/compute/storage_usage_detail.rb +16 -0
  96. data/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb +26 -0
  97. data/lib/fog/ecloud/models/compute/support_ticket.rb +28 -0
  98. data/lib/fog/ecloud/models/compute/support_tickets.rb +26 -0
  99. data/lib/fog/ecloud/models/compute/tag.rb +13 -0
  100. data/lib/fog/ecloud/models/compute/tags.rb +26 -0
  101. data/lib/fog/ecloud/models/compute/task.rb +23 -0
  102. data/lib/fog/ecloud/models/compute/tasks.rb +29 -0
  103. data/lib/fog/ecloud/models/compute/template.rb +23 -0
  104. data/lib/fog/ecloud/models/compute/templates.rb +41 -0
  105. data/lib/fog/ecloud/models/compute/trusted_network_group.rb +33 -0
  106. data/lib/fog/ecloud/models/compute/trusted_network_groups.rb +27 -0
  107. data/lib/fog/ecloud/models/compute/user.rb +35 -0
  108. data/lib/fog/ecloud/models/compute/users.rb +26 -0
  109. data/lib/fog/ecloud/models/compute/virtual_machine_assigned_ip.rb +32 -0
  110. data/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb +26 -0
  111. data/lib/fog/ecloud/requests/compute/admin_disable_support_access.rb +9 -0
  112. data/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb +32 -0
  113. data/lib/fog/ecloud/requests/compute/admin_edit_login_banner.rb +30 -0
  114. data/lib/fog/ecloud/requests/compute/admin_edit_password_complexity_rules.rb +72 -0
  115. data/lib/fog/ecloud/requests/compute/admin_enable_support_access.rb +9 -0
  116. data/lib/fog/ecloud/requests/compute/backup_internet_service_create.rb +47 -0
  117. data/lib/fog/ecloud/requests/compute/backup_internet_service_delete.rb +9 -0
  118. data/lib/fog/ecloud/requests/compute/backup_internet_service_edit.rb +47 -0
  119. data/lib/fog/ecloud/requests/compute/compute_pool_edit.rb +35 -0
  120. data/lib/fog/ecloud/requests/compute/firewall_acls_create.rb +78 -0
  121. data/lib/fog/ecloud/requests/compute/firewall_acls_delete.rb +9 -0
  122. data/lib/fog/ecloud/requests/compute/get_admin_organization.rb +23 -0
  123. data/lib/fog/ecloud/requests/compute/get_api_key.rb +9 -0
  124. data/lib/fog/ecloud/requests/compute/get_api_keys.rb +9 -0
  125. data/lib/fog/ecloud/requests/compute/get_association.rb +9 -0
  126. data/lib/fog/ecloud/requests/compute/get_associations.rb +9 -0
  127. data/lib/fog/ecloud/requests/compute/get_authentication_level.rb +9 -0
  128. data/lib/fog/ecloud/requests/compute/get_authentication_levels.rb +9 -0
  129. data/lib/fog/ecloud/requests/compute/get_backup_internet_service.rb +9 -0
  130. data/lib/fog/ecloud/requests/compute/get_backup_internet_services.rb +9 -0
  131. data/lib/fog/ecloud/requests/compute/get_catalog.rb +9 -0
  132. data/lib/fog/ecloud/requests/compute/get_catalog_configuration.rb +9 -0
  133. data/lib/fog/ecloud/requests/compute/get_catalog_configurations.rb +9 -0
  134. data/lib/fog/ecloud/requests/compute/get_catalog_item.rb +9 -0
  135. data/lib/fog/ecloud/requests/compute/get_compute_pool.rb +21 -0
  136. data/lib/fog/ecloud/requests/compute/get_compute_pools.rb +31 -0
  137. data/lib/fog/ecloud/requests/compute/get_cpu_usage_detail.rb +9 -0
  138. data/lib/fog/ecloud/requests/compute/get_cpu_usage_detail_summary.rb +9 -0
  139. data/lib/fog/ecloud/requests/compute/get_detached_disk.rb +21 -0
  140. data/lib/fog/ecloud/requests/compute/get_detached_disks.rb +31 -0
  141. data/lib/fog/ecloud/requests/compute/get_environment.rb +31 -0
  142. data/lib/fog/ecloud/requests/compute/get_environments.rb +0 -0
  143. data/lib/fog/ecloud/requests/compute/get_firewall_acl.rb +9 -0
  144. data/lib/fog/ecloud/requests/compute/get_firewall_acls.rb +9 -0
  145. data/lib/fog/ecloud/requests/compute/get_group.rb +18 -0
  146. data/lib/fog/ecloud/requests/compute/get_groups.rb +18 -0
  147. data/lib/fog/ecloud/requests/compute/get_guest_process.rb +9 -0
  148. data/lib/fog/ecloud/requests/compute/get_guest_processes.rb +9 -0
  149. data/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb +29 -0
  150. data/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb +14 -0
  151. data/lib/fog/ecloud/requests/compute/get_internet_service.rb +21 -0
  152. data/lib/fog/ecloud/requests/compute/get_internet_services.rb +18 -0
  153. data/lib/fog/ecloud/requests/compute/get_ip_address.rb +20 -0
  154. data/lib/fog/ecloud/requests/compute/get_layout.rb +18 -0
  155. data/lib/fog/ecloud/requests/compute/get_layouts.rb +18 -0
  156. data/lib/fog/ecloud/requests/compute/get_location.rb +9 -0
  157. data/lib/fog/ecloud/requests/compute/get_locations.rb +9 -0
  158. data/lib/fog/ecloud/requests/compute/get_login_banner.rb +9 -0
  159. data/lib/fog/ecloud/requests/compute/get_login_banners.rb +9 -0
  160. data/lib/fog/ecloud/requests/compute/get_memory_usage_detail.rb +9 -0
  161. data/lib/fog/ecloud/requests/compute/get_memory_usage_detail_summary.rb +9 -0
  162. data/lib/fog/ecloud/requests/compute/get_monitor.rb +9 -0
  163. data/lib/fog/ecloud/requests/compute/get_monitors.rb +9 -0
  164. data/lib/fog/ecloud/requests/compute/get_network.rb +21 -0
  165. data/lib/fog/ecloud/requests/compute/get_network_summary.rb +9 -0
  166. data/lib/fog/ecloud/requests/compute/get_networks.rb +30 -0
  167. data/lib/fog/ecloud/requests/compute/get_node.rb +21 -0
  168. data/lib/fog/ecloud/requests/compute/get_nodes.rb +18 -0
  169. data/lib/fog/ecloud/requests/compute/get_operating_system.rb +24 -0
  170. data/lib/fog/ecloud/requests/compute/get_operating_system_families.rb +30 -0
  171. data/lib/fog/ecloud/requests/compute/get_organization.rb +24 -0
  172. data/lib/fog/ecloud/requests/compute/get_organizations.rb +23 -0
  173. data/lib/fog/ecloud/requests/compute/get_password_complexity_rule.rb +9 -0
  174. data/lib/fog/ecloud/requests/compute/get_password_complexity_rules.rb +9 -0
  175. data/lib/fog/ecloud/requests/compute/get_physical_device.rb +9 -0
  176. data/lib/fog/ecloud/requests/compute/get_physical_devices.rb +9 -0
  177. data/lib/fog/ecloud/requests/compute/get_process.rb +9 -0
  178. data/lib/fog/ecloud/requests/compute/get_processes.rb +9 -0
  179. data/lib/fog/ecloud/requests/compute/get_public_ip.rb +21 -0
  180. data/lib/fog/ecloud/requests/compute/get_public_ips.rb +31 -0
  181. data/lib/fog/ecloud/requests/compute/get_rnat.rb +9 -0
  182. data/lib/fog/ecloud/requests/compute/get_rnats.rb +9 -0
  183. data/lib/fog/ecloud/requests/compute/get_role.rb +9 -0
  184. data/lib/fog/ecloud/requests/compute/get_roles.rb +9 -0
  185. data/lib/fog/ecloud/requests/compute/get_row.rb +18 -0
  186. data/lib/fog/ecloud/requests/compute/get_rows.rb +12 -0
  187. data/lib/fog/ecloud/requests/compute/get_server.rb +21 -0
  188. data/lib/fog/ecloud/requests/compute/get_server_configuration_option.rb +9 -0
  189. data/lib/fog/ecloud/requests/compute/get_server_configuration_options.rb +9 -0
  190. data/lib/fog/ecloud/requests/compute/get_servers.rb +42 -0
  191. data/lib/fog/ecloud/requests/compute/get_ssh_key.rb +21 -0
  192. data/lib/fog/ecloud/requests/compute/get_ssh_keys.rb +30 -0
  193. data/lib/fog/ecloud/requests/compute/get_storage_usage_detail.rb +9 -0
  194. data/lib/fog/ecloud/requests/compute/get_storage_usage_detail_summary.rb +9 -0
  195. data/lib/fog/ecloud/requests/compute/get_support_ticket.rb +9 -0
  196. data/lib/fog/ecloud/requests/compute/get_support_tickets.rb +9 -0
  197. data/lib/fog/ecloud/requests/compute/get_tag.rb +9 -0
  198. data/lib/fog/ecloud/requests/compute/get_tags.rb +9 -0
  199. data/lib/fog/ecloud/requests/compute/get_task.rb +13 -0
  200. data/lib/fog/ecloud/requests/compute/get_tasks.rb +9 -0
  201. data/lib/fog/ecloud/requests/compute/get_template.rb +21 -0
  202. data/lib/fog/ecloud/requests/compute/get_templates.rb +48 -0
  203. data/lib/fog/ecloud/requests/compute/get_trusted_network_group.rb +9 -0
  204. data/lib/fog/ecloud/requests/compute/get_trusted_network_groups.rb +9 -0
  205. data/lib/fog/ecloud/requests/compute/get_user.rb +9 -0
  206. data/lib/fog/ecloud/requests/compute/get_users.rb +9 -0
  207. data/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb +42 -0
  208. data/lib/fog/ecloud/requests/compute/groups_create.rb +31 -0
  209. data/lib/fog/ecloud/requests/compute/groups_delete.rb +26 -0
  210. data/lib/fog/ecloud/requests/compute/groups_edit.rb +29 -0
  211. data/lib/fog/ecloud/requests/compute/groups_movedown.rb +9 -0
  212. data/lib/fog/ecloud/requests/compute/groups_moveup.rb +9 -0
  213. data/lib/fog/ecloud/requests/compute/internet_service_create.rb +102 -0
  214. data/lib/fog/ecloud/requests/compute/internet_service_delete.rb +33 -0
  215. data/lib/fog/ecloud/requests/compute/internet_service_edit.rb +58 -0
  216. data/lib/fog/ecloud/requests/compute/monitors_create_default.rb +9 -0
  217. data/lib/fog/ecloud/requests/compute/monitors_create_ecv.rb +40 -0
  218. data/lib/fog/ecloud/requests/compute/monitors_create_http.rb +44 -0
  219. data/lib/fog/ecloud/requests/compute/monitors_create_loopback.rb +9 -0
  220. data/lib/fog/ecloud/requests/compute/monitors_create_ping.rb +35 -0
  221. data/lib/fog/ecloud/requests/compute/monitors_disable.rb +9 -0
  222. data/lib/fog/ecloud/requests/compute/monitors_edit_ecv.rb +40 -0
  223. data/lib/fog/ecloud/requests/compute/monitors_edit_http.rb +44 -0
  224. data/lib/fog/ecloud/requests/compute/monitors_edit_ping.rb +35 -0
  225. data/lib/fog/ecloud/requests/compute/monitors_enable.rb +9 -0
  226. data/lib/fog/ecloud/requests/compute/node_service_create.rb +93 -0
  227. data/lib/fog/ecloud/requests/compute/node_service_delete.rb +33 -0
  228. data/lib/fog/ecloud/requests/compute/node_service_edit.rb +39 -0
  229. data/lib/fog/ecloud/requests/compute/power_off.rb +9 -0
  230. data/lib/fog/ecloud/requests/compute/power_on.rb +9 -0
  231. data/lib/fog/ecloud/requests/compute/power_reset.rb +9 -0
  232. data/lib/fog/ecloud/requests/compute/power_shutdown.rb +9 -0
  233. data/lib/fog/ecloud/requests/compute/public_ip_activate.rb +9 -0
  234. data/lib/fog/ecloud/requests/compute/rnat_associations_create_device.rb +32 -0
  235. data/lib/fog/ecloud/requests/compute/rnat_associations_delete.rb +9 -0
  236. data/lib/fog/ecloud/requests/compute/rnat_associations_edit_network.rb +31 -0
  237. data/lib/fog/ecloud/requests/compute/rows_create.rb +29 -0
  238. data/lib/fog/ecloud/requests/compute/rows_delete.rb +21 -0
  239. data/lib/fog/ecloud/requests/compute/rows_edit.rb +29 -0
  240. data/lib/fog/ecloud/requests/compute/rows_movedown.rb +9 -0
  241. data/lib/fog/ecloud/requests/compute/rows_moveup.rb +9 -0
  242. data/lib/fog/ecloud/requests/compute/trusted_network_groups_create.rb +51 -0
  243. data/lib/fog/ecloud/requests/compute/trusted_network_groups_delete.rb +9 -0
  244. data/lib/fog/ecloud/requests/compute/trusted_network_groups_edit.rb +51 -0
  245. data/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb +61 -0
  246. data/lib/fog/ecloud/requests/compute/virtual_machine_copy.rb +116 -0
  247. data/lib/fog/ecloud/requests/compute/virtual_machine_copy_identical.rb +43 -0
  248. data/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb +244 -0
  249. data/lib/fog/ecloud/requests/compute/virtual_machine_delete.rb +46 -0
  250. data/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb +70 -0
  251. data/lib/fog/ecloud/requests/compute/virtual_machine_edit.rb +45 -0
  252. data/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb +80 -0
  253. data/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb +75 -0
  254. data/lib/fog/ecloud/requests/compute/virtual_machine_import.rb +179 -0
  255. data/lib/fog/ecloud/requests/compute/virtual_machine_upload_file.rb +28 -0
  256. data/lib/fog/ecloud/version.rb +5 -0
  257. data/lib/fog/ecloud.rb +8 -0
  258. data/spec/minitest_helper.rb +31 -0
  259. data/tests/compute/helper.rb +27 -0
  260. data/tests/compute/models/admin_organization_tests.rb +16 -0
  261. data/tests/compute/models/compute_pool_tests.rb +17 -0
  262. data/tests/compute/models/detached_disk_tests.rb +26 -0
  263. data/tests/compute/models/environment_tests.rb +23 -0
  264. data/tests/compute/models/internet_service_tests.rb +28 -0
  265. data/tests/compute/models/ip_address_tests.rb +19 -0
  266. data/tests/compute/models/network_tests.rb +17 -0
  267. data/tests/compute/models/operating_system_families_tests.rb +13 -0
  268. data/tests/compute/models/operating_system_tests.rb +22 -0
  269. data/tests/compute/models/organization_tests.rb +21 -0
  270. data/tests/compute/models/public_ip_tests.rb +19 -0
  271. data/tests/compute/models/server_tests.rb +25 -0
  272. data/tests/compute/models/ssh_key_tests.rb +19 -0
  273. data/tests/compute/models/template_tests.rb +20 -0
  274. data/tests/helper.rb +24 -0
  275. data/tests/helpers/collection_helper.rb +97 -0
  276. data/tests/helpers/compute/flavors_helper.rb +32 -0
  277. data/tests/helpers/compute/server_helper.rb +25 -0
  278. data/tests/helpers/compute/servers_helper.rb +10 -0
  279. data/tests/helpers/formats_helper.rb +98 -0
  280. data/tests/helpers/formats_helper_tests.rb +110 -0
  281. data/tests/helpers/mock_helper.rb +115 -0
  282. data/tests/helpers/model_helper.rb +31 -0
  283. data/tests/helpers/responds_to_helper.rb +11 -0
  284. data/tests/helpers/schema_validator_tests.rb +107 -0
  285. data/tests/helpers/succeeds_helper.rb +9 -0
  286. metadata +457 -0
@@ -0,0 +1,65 @@
1
+ require 'fog/ecloud/models/compute/server'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Servers < Fog::Ecloud::Collection
7
+ model Fog::Compute::Ecloud::Server
8
+
9
+ identity :href
10
+
11
+ def all
12
+ data = service.get_servers(href).body
13
+ if data.keys.include?(:VirtualMachines)
14
+ data = data[:VirtualMachines][:VirtualMachine]
15
+ elsif data[:VirtualMachine]
16
+ data = data[:VirtualMachine]
17
+ else
18
+ data = []
19
+ end
20
+ load(data)
21
+ end
22
+
23
+ def get(uri)
24
+ data = service.get_server(uri).body
25
+ new(data)
26
+ rescue Fog::Errors::NotFound
27
+ nil
28
+ end
29
+
30
+ def from_data(data)
31
+ new(data)
32
+ end
33
+
34
+ def create( template_uri, options )
35
+ options[:cpus] ||= 1
36
+ options[:memory] ||= 512
37
+ options[:description] ||= ""
38
+ options[:tags] ||= []
39
+
40
+ if template_uri =~ /\/templates\/\d+/
41
+ options[:uri] = href + "/action/createVirtualMachine"
42
+ options[:customization] ||= :linux
43
+ options[:powered_on] ||= false
44
+ if options[:ips]
45
+ options[:ips] = [*options[:ips]]
46
+ else
47
+ [*options[:network_uri]].each do |uri|
48
+ index = options[:network_uri].index(uri)
49
+ ip = self.service.ip_addresses(:href => uri).find { |i| i.host == nil && i.detected_on.nil? }.name
50
+ options[:ips] ||= []
51
+ options[:ips][index] = ip
52
+ end
53
+ end
54
+ data = service.virtual_machine_create_from_template( template_uri, options ).body
55
+ else
56
+ options[:uri] = href + "/action/importVirtualMachine"
57
+ data = service.virtual_machine_import( template_uri, options ).body
58
+ end
59
+ object = self.service.servers.new(data)
60
+ object
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,19 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class SshKey < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :name, :aliases => :Name
8
+ attribute :type, :aliases => :Type
9
+ attribute :other_links, :aliases => :Links
10
+ attribute :default, :aliases => :Default, :type => :boolean
11
+ attribute :finger_print, :aliases => :FingerPrint
12
+
13
+ def id
14
+ href.scan(/\d+/)[0]
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/ssh_key'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class SshKeys < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::SshKey
10
+
11
+ def all
12
+ data = service.get_ssh_keys(href).body[:SshKey]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_ssh_key(uri)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,16 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class StorageUsageDetail < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :disk_count, :aliases => :DiskCount
8
+ attribute :allocated, :aliases => :Allocated
9
+
10
+ def id
11
+ href.scan(/\d+/)[0]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/storage_usage_detail'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class StorageUsageDetailSummary < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::StorageUsageDetail
10
+
11
+ def all
12
+ data = service.get_storage_usage_detail_summary(href).body[:VirtualMachines][:VirtualMachine]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_storage_usage_detail(uri)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class SupportTicket < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :type, :aliases => :Type
8
+ attribute :other_links, :aliases => :Links
9
+ attribute :date, :aliases => :Date
10
+ attribute :status, :aliases => :Status
11
+ attribute :category, :aliases => :Category
12
+ attribute :detected_by, :aliases => :DetectedBy
13
+ attribute :severity, :aliases => :Severity
14
+ attribute :device, :aliases => :Device
15
+ attribute :classification, :aliases => :Classification
16
+ attribute :owner, :aliases => :Owner
17
+ attribute :description, :aliases => :Description
18
+ attribute :information, :aliases => :Information
19
+ attribute :solution, :aliases => :Solution
20
+ attribute :history, :aliases => :History
21
+
22
+ def id
23
+ href.scan(/\d+/)[0]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/support_ticket'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class SupportTickets < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::SupportTicket
10
+
11
+ def all
12
+ data = service.get_support_tickets(href).body[:TicketReference]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_support_ticket(uri)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Tag < Fog::Ecloud::Model
5
+ identity :name
6
+
7
+ def id
8
+ href.scan(/\d+/)[0]
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/tag'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Tags < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::Tag
10
+
11
+ def all
12
+ data = service.get_tags(href).body[:DeviceTag]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_tag(uri)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Task < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :type , :aliases => :Type
8
+ attribute :operation, :aliases => :Operation
9
+ attribute :status, :aliases => :Status
10
+ attribute :impacted_item, :aliases => :ImpactedItem
11
+ attribute :start_time, :aliases => :StartTime
12
+ attribute :completed_time, :aliases => :CompletedTime
13
+ attribute :notes, :aliases => :Notes
14
+ attribute :error_message, :aliases => :ErrorMessage
15
+ attribute :initiated_by, :aliases => :InitiatedBy
16
+
17
+ def ready?
18
+ !self.completed_time.nil?
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ require 'fog/ecloud/models/compute/task'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Tasks < Fog::Ecloud::Collection
7
+ model Fog::Compute::Ecloud::Task
8
+
9
+ identity :href
10
+ attribute :other_links, :aliases => :Links
11
+ attribute :total_count, :aliases => :TotalCount
12
+
13
+ def all
14
+ data = service.get_tasks(href).body
15
+ data = data[:Task] ? data[:Task] : data
16
+ load(data)
17
+ end
18
+
19
+ def get(uri)
20
+ if data = service.get_task(uri)
21
+ new(data.body)
22
+ end
23
+ rescue Fog::Errors::NotFound
24
+ nil
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,23 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Template < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :name, :aliases => :Name
8
+ attribute :type, :aliases => :Type
9
+ attribute :other_links, :aliases => :Links
10
+ attribute :operating_system, :aliases => :OperatingSystem
11
+ attribute :description, :aliases => :Description
12
+ attribute :storage, :aliases => :Storage
13
+ attribute :network_adapters, :aliases => :NetworkAdapters
14
+ attribute :customization, :aliases => :Customization
15
+ attribute :licensed_software, :aliases => :LicensedSoftware
16
+
17
+ def id
18
+ href.scan(/\d+/)[0]
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,41 @@
1
+ require 'fog/ecloud/models/compute/template'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Templates < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::Template
10
+
11
+ def all
12
+ r_data = []
13
+ data = service.get_templates(href).body[:Families]
14
+ data[:Family].is_a?(Hash) ? data = [data[:Family]] : data = data[:Family]
15
+ data.each do |d|
16
+ cats = d[:Categories][:Category]
17
+ cats = [cats] if cats.is_a?(Hash)
18
+ cats.each do |cat|
19
+ cat[:OperatingSystems][:OperatingSystem].is_a?(Hash) ? cat = [cat[:OperatingSystems][:OperatingSystem]] : cat = cat[:OperatingSystems][:OperatingSystem]
20
+ cat.each do |os|
21
+ os[:Templates][:Template].is_a?(Hash) ? os = [os[:Templates][:Template]] : os = os[:Templates][:Template]
22
+ os.each do |template|
23
+ r_data << template
24
+ end
25
+ end
26
+ end
27
+ end
28
+ load(r_data)
29
+ end
30
+
31
+ def get(uri)
32
+ if data = service.get_template(uri)
33
+ new(data.body)
34
+ end
35
+ rescue Fog::Errors::NotFound
36
+ nil
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class TrustedNetworkGroup < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :name, :aliases => :Name
8
+ attribute :type, :aliases => :Type
9
+ attribute :other_links, :aliases => :Links
10
+ attribute :hosts, :aliases => :Hosts
11
+
12
+ def internet_services
13
+ @internet_services ||= Fog::Compute::Ecloud::InternetServices.new(:service => service, :href => href)
14
+ end
15
+
16
+ def edit(options)
17
+ options[:uri] = href
18
+ data = service.trusted_network_groups_edit(options).body
19
+ task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])[0]
20
+ end
21
+
22
+ def delete
23
+ data = service.trusted_network_groups_delete(href).body
24
+ task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])[0]
25
+ end
26
+
27
+ def id
28
+ href.scan(/\d+/)[0]
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/ecloud/models/compute/trusted_network_group'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class TrustedNetworkGroups < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::TrustedNetworkGroup
10
+
11
+ def all
12
+ data = service.get_trusted_network_groups(href).body
13
+ data = data[:TrustedNetworkGroup] ? data[:TrustedNetworkGroup] : data
14
+ load(data)
15
+ end
16
+
17
+ def get(uri)
18
+ if data = service.get_trusted_network_group(uri)
19
+ new(data.body)
20
+ end
21
+ rescue Fog::Errors::NotFound
22
+ nil
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class User < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :name, :aliases => :Name
8
+ attribute :type, :aliases => :Type
9
+ attribute :other_links, :aliases => :Links
10
+ attribute :first_name, :aliases => :FirstName
11
+ attribute :last_name, :aliases => :LastName
12
+ attribute :email, :aliases => :Email
13
+ attribute :status, :aliases => :Status
14
+ attribute :last_login, :aliases => :LastLogin
15
+ attribute :multifactor_authentication, :aliases => :MultifactorAuthentication
16
+ attribute :is_administrator, :aliases => :IsAdministrator, :type => :boolean
17
+ attribute :is_api_user, :aliases => :IsApiUser, :type => :boolean
18
+ attribute :is_alert_notification_enabled, :aliases => :IsAlertNotificationEnabled, :type => :boolean
19
+ attribute :is_multifactor_authentication_enabled, :aliases => :IsMultifactorAuthenticationEnabled, :type => :boolean
20
+
21
+ def roles
22
+ @roles = Fog::Compute::Ecloud::Roles.new(:service => service, :href => "#{service.base_path}/admin/roles/users/#{id}")
23
+ end
24
+
25
+ def api_keys
26
+ @api_keys = Fog::Compute::Ecloud::ApiKeys.new(:service => service, :href => "#{service.base_path}/admin/apiKeys/users/#{id}")
27
+ end
28
+
29
+ def id
30
+ href.scan(/\d+/)[0]
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/user'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Users < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::User
10
+
11
+ def all
12
+ data = service.get_users(href).body[:User]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_user(uri)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class VirtualMachineAssignedIp < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :network, :aliases => :Networks
8
+ attribute :address
9
+
10
+ def id
11
+ href.scan(/\d+/)[0]
12
+ end
13
+
14
+ def network=(network)
15
+ network = network.dup
16
+ network_address = network[:Network]
17
+ @network = self.service.networks.new(network_address)
18
+ network_id = @network.href.match(/(\d+)$/)[1]
19
+ address_ip = network_address[:IpAddresses][:IpAddress]
20
+ @address = self.service.ip_addresses.new(
21
+ :href => "#{service.base_path}/ipaddresses/networks/#{network_id}/#{address_ip}",
22
+ :name => address_ip
23
+ )
24
+ end
25
+ attr_reader :network
26
+
27
+ def address=(address); end
28
+ attr_reader :address
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/virtual_machine_assigned_ip'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class VirtualMachineAssignedIps < Fog::Ecloud::Collection
7
+ identity :virtual_machine_id
8
+
9
+ model Fog::Compute::Ecloud::VirtualMachineAssignedIp
10
+
11
+ def all
12
+ data = service.get_virtual_machine_assigned_ips(self.identity).body
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_virtual_machine_assigned_ip(self.identity)
18
+ new(data.body)
19
+ end
20
+ rescue Fog::Errors::NotFound
21
+ nil
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,9 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Real
5
+ basic_request :admin_disable_support_access, 204, 'POST'
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Real
5
+ def authentication_levels_edit(data)
6
+ validate_data([:basic, :sha1, :sha256, :sha512], data)
7
+ body = build_authentication_levels_edit(data)
8
+ request(
9
+ :expects => 202,
10
+ :method => 'PUT',
11
+ :headers => {},
12
+ :body => body,
13
+ :uri => data[:uri],
14
+ :parse => true
15
+ )
16
+ end
17
+
18
+ private
19
+
20
+ def build_authentication_levels_edit(data)
21
+ xml = Builder::XmlMarkup.new
22
+ xml.AuthenticationLevels do
23
+ xml.BasicEnabled data[:basic]
24
+ xml.SHA1Enabled data[:sha1]
25
+ xml.SHA256Enabled data[:sha256]
26
+ xml.SHA512Enabled data[:sha512]
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,30 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Real
5
+ def login_banner_edit(data)
6
+ validate_data([:display], data)
7
+ body = build_login_banner_edit(data)
8
+ request(
9
+ :expects => 200,
10
+ :method => 'PUT',
11
+ :headers => {},
12
+ :body => body,
13
+ :uri => data[:uri],
14
+ :parse => true
15
+ )
16
+ end
17
+
18
+ private
19
+
20
+ def build_login_banner_edit(data)
21
+ xml = Builder::XmlMarkup.new
22
+ xml.LoginBanner do
23
+ xml.Display data[:display]
24
+ xml.Text data[:text] if data[:text]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end