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,111 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Environment < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd
8
+
9
+ attribute :name
10
+ attribute :type
11
+ attribute :other_links, :aliases => :Links, :squash => :Link
12
+
13
+ def public_ips
14
+ @public_ips ||= Fog::Compute::Ecloud::PublicIps.new(:service => service, :href => "#{service.base_path}/publicIps/environments/#{id}")
15
+ end
16
+
17
+ def internet_services
18
+ @internet_services ||= Fog::Compute::Ecloud::InternetServices.new(:service => service, :href => "#{service.base_path}/networkSummary/environments/#{id}")
19
+ end
20
+
21
+ def node_services
22
+ @node_services ||= Fog::Compute::Ecloud::Nodes.new(:service => service, :href => "#{service.base_path}/networkSummary/environments/#{id}")
23
+ end
24
+
25
+ def backup_internet_services
26
+ @backup_internet_services ||= Fog::Compute::Ecloud::BackupInternetServices.new(:service => service, :href => "#{service.base_path}/backupInternetServices/environments/#{id}")
27
+ end
28
+
29
+ def networks
30
+ @networks ||= self.service.networks(:href => "#{service.base_path}/networks/environments/#{id}")
31
+ end
32
+
33
+ def servers
34
+ @servers = nil
35
+ pools = compute_pools
36
+ pools.each do |c|
37
+ if pools.index(c) == 0
38
+ @servers = c.servers
39
+ else
40
+ c.servers.each { |s| @servers << s }
41
+ end
42
+ end
43
+ @servers
44
+ end
45
+
46
+ def layout
47
+ @layout ||= self.service.layouts(:href => "#{service.base_path}/layout/environments/#{id}").first
48
+ end
49
+
50
+ def rows
51
+ @rows ||= layout.rows
52
+ end
53
+
54
+ def tasks
55
+ @tasks ||= Fog::Compute::Ecloud::Tasks.new(:service => service, :href => "#{service.base_path}/tasks/environments/#{id}")
56
+ end
57
+
58
+ def firewall_acls
59
+ @firewall_acls ||= Fog::Compute::Ecloud::FirewallAcls.new(:service => service, :href => "#{service.base_path}/firewallAcls/environments/#{id}")
60
+ end
61
+
62
+ def compute_pools
63
+ @compute_pools ||= Fog::Compute::Ecloud::ComputePools.new(:service => service, :href => "#{service.base_path}/computePools/environments/#{id}")
64
+ end
65
+
66
+ def physical_devices
67
+ @physical_devices ||= Fog::Compute::Ecloud::PhysicalDevices.new(:service => service, :href => "#{service.base_path}/physicalDevices/environments/#{id}")
68
+ end
69
+
70
+ def trusted_network_groups
71
+ @trusted_network_groups ||= Fog::Compute::Ecloud::TrustedNetworkGroups.new(:service => service, :href => "#{service.base_path}/trustedNetworkGroups/environments/#{id}")
72
+ end
73
+
74
+ def catalog
75
+ @catalog = service.catalog(:href => "#{service.base_path}/admin/catalog/organizations/#{organization.id}")
76
+ end
77
+
78
+ def rnats
79
+ @rnats ||= Fog::Compute::Ecloud::Rnats.new(:service => service, :href => "#{service.base_path}/rnats/environments/#{id}")
80
+ end
81
+
82
+ def create_trusted_network_group(options = {})
83
+ options[:uri] = "#{service.base_path}/trustedNetworkGroups/environments/#{id}/action/createTrustedNetworkGroup"
84
+ data = service.trusted_network_groups_create(options).body
85
+ tng = Fog::Compute::Ecloud::TrustedNetworkGroups.new(:service => service, :href => data[:href])[0]
86
+ end
87
+
88
+ def create_firewall_acl(options = {})
89
+ options[:uri] = "#{service.base_path}/firewallAcls/environments/#{id}/action/createFirewallAcl"
90
+ options[:permission] ||= "deny"
91
+ options[:protocol] ||= "any"
92
+ data = service.firewall_acls_create(options).body
93
+ acl = Fog::Compute::Ecloud::FirewallAcls.new(:service => service, :href => data[:href])[0]
94
+ end
95
+
96
+ def id
97
+ href.scan(/\d+/)[0]
98
+ end
99
+
100
+ def organization
101
+ @organization ||= begin
102
+ reload unless other_links
103
+ organization_link = other_links.find{|l| l[:type] == "application/vnd.tmrk.cloud.organization"}
104
+ self.service.organizations.new(organization_link)
105
+ end
106
+ end
107
+ end
108
+ Vdc = Environment
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,39 @@
1
+ require 'fog/ecloud/models/compute/environment'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Environments < Fog::Ecloud::Collection
7
+ model Fog::Compute::Ecloud::Environment
8
+
9
+ undef_method :create
10
+
11
+ identity :href
12
+
13
+ def all
14
+ data = []
15
+ service.get_organization(href).body[:Locations][:Location].each do |d|
16
+ environments = d[:Environments]
17
+ next unless environments
18
+ if environments[:Environment].is_a?(Array)
19
+ environments[:Environment].each { |e| data << e }
20
+ else
21
+ data << environments[:Environment]
22
+ end
23
+ end
24
+ load(data)
25
+ end
26
+
27
+ def get(uri)
28
+ if data = service.get_environment(uri)
29
+ new(data.body)
30
+ end
31
+ rescue Fog::Errors::NotFound
32
+ nil
33
+ end
34
+
35
+ Vdcs = Environments
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class FirewallAcl < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :type, :aliases => :Type
8
+ attribute :links, :aliases => :Links
9
+ attribute :permission, :aliases => :Permission
10
+ attribute :acl_type, :aliases => :AclType
11
+ attribute :port_type, :aliases => :PortType
12
+ attribute :protocol, :aliases => :Protocol
13
+ attribute :source, :aliases => :Source
14
+ attribute :destination, :aliases => :Destination
15
+ attribute :port_range, :aliases => :PortRange
16
+
17
+ def tasks
18
+ @tasks = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => "#{service.base_path}/tasks/virtualMachines/#{id}")
19
+ end
20
+
21
+ def id
22
+ href.scan(/\d+/)[0]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ require 'fog/ecloud/models/compute/firewall_acl'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class FirewallAcls < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::FirewallAcl
10
+
11
+ def all
12
+ data = service.get_firewall_acls(href).body
13
+ data = data[:FirewallAcl] ? data[:FirewallAcl] : data
14
+ load(data)
15
+ end
16
+
17
+ def get(uri)
18
+ if data = service.get_firewall_acl(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,41 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Group < 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 :index, :aliases => :Index
11
+
12
+ def servers
13
+ @servers = Fog::Compute::Ecloud::Servers.new(:service => service, :href => href)
14
+ end
15
+
16
+ def edit(options = {})
17
+ options[:uri] = href
18
+ data = service.groups_edit(options).body
19
+ end
20
+
21
+ def move_up
22
+ service.groups_moveup(href).body
23
+ end
24
+
25
+ def move_down
26
+ service.groups_movedown(href).body
27
+ end
28
+
29
+ def delete
30
+ service.groups_delete(href).body
31
+ end
32
+
33
+ def id
34
+ href.scan(/\d+/)[0]
35
+ end
36
+
37
+ alias_method :destroy, :delete
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,38 @@
1
+ require 'fog/ecloud/models/compute/group'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Groups < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::Group
10
+
11
+ def all
12
+ data = service.get_groups(href).body
13
+ data = if data == ""
14
+ ""
15
+ else
16
+ data[:Groups] ? data[:Groups][:Group] : data
17
+ end
18
+ if data == "" || !data.is_a?(Array) && data[:type] == "application/vnd.tmrk.cloud.layoutRow"
19
+ nil
20
+ else
21
+ load(data)
22
+ end
23
+ end
24
+
25
+ def get(uri)
26
+ data = service.get_group(uri).body
27
+ if data == ""
28
+ nil
29
+ else
30
+ new(data)
31
+ end
32
+ rescue Excon::Errors::NotFound
33
+ nil
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,15 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class GuestProcess < Fog::Ecloud::Model
5
+ identity :name
6
+
7
+ attribute :process_id, :aliases => :ProcessId
8
+
9
+ def id
10
+ href.scan(/\d+/)[0]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/guest_process'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class GuestProcesses < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::GuestProcess
10
+
11
+ def all
12
+ data = service.get_guest_processes(href).body[:GuestProcess]
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_guest_process(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,18 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class HardwareConfiguration < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :processor_count, :aliases => :ProcessorCount, :type => :integer
8
+ attribute :memory, :aliases => :Memory, :squash => :Value # {:Memory => {:Value => 15}}
9
+ attribute :storage, :aliases => :Disks, :squash => :Disk
10
+ attribute :network_cards, :aliases => :Nics, :squash => :Nic
11
+
12
+ def id
13
+ href.scan(/\d+/)[0]
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/hardware_configuration'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class HardwareConfigurations < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::HardwareConfiguration
10
+
11
+ def all
12
+ data = service.get_server(href).body
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_hardware_configuration(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,97 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class InternetService < 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 :actions, :aliases => :Actions
11
+ attribute :protocol, :aliases => :Protocol
12
+ attribute :port, :aliases => :Port, :type => :integer
13
+ attribute :enabled, :aliases => :Enabled, :type => :boolean
14
+ attribute :description, :aliases => :Description
15
+ attribute :public_ip, :aliases => :PublicIp
16
+ attribute :persistence, :aliases => :Persistence
17
+ attribute :redirect_url, :aliases => :RedirectUrl
18
+ attribute :trusted_network_group, :aliases => :TrustedNetworkGroup
19
+ attribute :backup_internet_service, :aliases => :BackupInternetService
20
+
21
+ def ready?
22
+ !self.port.nil?
23
+ end
24
+
25
+ def nodes
26
+ @nodes ||= Fog::Compute::Ecloud::Nodes.new(:service => service, :href => href)
27
+ end
28
+
29
+ def monitors
30
+ @monitors ||= Fog::Compute::Ecloud::Monitors.new(:service => service, :href => "#{service.base_path}/internetServices/#{id}/monitor")
31
+ end
32
+
33
+ def save
34
+ unless persisted?
35
+ result = service.internet_service_create( collection.href, _compose_service_data )
36
+ merge_attributes(result.body)
37
+ else
38
+ service.configure_internet_service( href, _compose_service_data, _compose_ip_data )
39
+ end
40
+ end
41
+
42
+ def edit(options)
43
+ options[:uri] = href
44
+ data = service.internet_service_edit(options).body
45
+ task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])[0]
46
+ end
47
+
48
+ def delete
49
+ data = service.internet_service_delete(href).body
50
+ self.service.tasks.new(data)
51
+ end
52
+
53
+ def create_monitor(options = {})
54
+ options = {:type => :default}.merge(options)
55
+ case options[:type]
56
+ when :default
57
+ data = service.monitors_create_default(href + "/action/createDefaultMonitor").body
58
+ when :ping
59
+ options[:enabled] ||= true
60
+ options[:uri] = href + "/action/createPingMonitor"
61
+ data = service.monitors_create_ping(options).body
62
+ when :http
63
+ options[:uri] = href + "/action/createHttpMonitor"
64
+ data = service.monitors_create_http(options).body
65
+ when :ecv
66
+ options[:uri] = href + "/action/createEcvMonitor"
67
+ data = service.monitors_create_ecv(options).body
68
+ when :loopback
69
+ data = service.monitors_create_loopback(href).body
70
+ end
71
+ monitor = Fog::Compute::Ecloud::Monitors.new(:service => service, :href => data[:href])
72
+ end
73
+
74
+ def disable_monitor
75
+ data = service.monitors_disable(href + "/action/disableMonitor").body
76
+ task = Fog::Compute::Ecloud::Tasks.new(:service => service, :href => data[:href])
77
+ end
78
+
79
+ def id
80
+ href.scan(/\d+/)[0]
81
+ end
82
+
83
+ private
84
+
85
+ def _compose_service_data
86
+ #For some reason inject didn't work
87
+ service_data = {}
88
+ self.class.attributes.select{ |attribute| attribute != :backup_service_data }.each { |attribute| service_data[attribute] = send(attribute) }
89
+ service_data.reject! {|k, v| v.nil? }
90
+ service_data
91
+ end
92
+
93
+ alias_method :destroy, :delete
94
+ end
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,44 @@
1
+ require 'fog/ecloud/models/compute/internet_service'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class InternetServices < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::InternetService
10
+
11
+ def all
12
+ data = service.get_internet_services(href).body[:InternetServices]
13
+ if data.is_a?(Hash)
14
+ load(data[:InternetService])
15
+ elsif data.is_a?(String) && data.empty?
16
+ load([])
17
+ end
18
+ end
19
+
20
+ def get(uri)
21
+ data = service.get_internet_service(uri).body
22
+ new(data)
23
+ rescue Fog::Errors::NotFound
24
+ nil
25
+ end
26
+
27
+ def create(options)
28
+ options[:uri] = "#{service.base_path}/internetServices/publicIps/#{public_ip_id}/action/createInternetService"
29
+ options[:protocol] ||= "TCP"
30
+ options[:enabled] ||= true
31
+ options[:description] ||= ""
32
+ options[:persistence] ||= {}
33
+ options[:persistence][:type] ||= "None"
34
+ data = service.internet_service_create(options).body
35
+ object = new(data)
36
+ end
37
+
38
+ def public_ip_id
39
+ href.scan(/\d+/)[0]
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,39 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class IpAddress < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :name, :aliases => :Name
8
+ attribute :type, :aliases => :Type
9
+ attribute :other_links, :aliases => :Links, :squash => :Link
10
+ attribute :host, :aliases => :Host
11
+ attribute :detected_on, :aliases => :DetectedOn
12
+ attribute :rnat, :aliases => :RnatAddress
13
+ attribute :reserved, :aliases => :Reserved, :type => :boolean
14
+
15
+ def status
16
+ (detected_on || host) ? "Assigned" : "Available"
17
+ end
18
+
19
+ def id
20
+ href.match(/((\d+{1,3}\.){3}(\d+{1,3}))$/)[1]
21
+ end
22
+
23
+ def server
24
+ @server ||= begin
25
+ reload unless other_links
26
+ server_link = other_links.find{|l| l[:type] == "application/vnd.tmrk.cloud.virtualMachine"}
27
+ self.service.servers.get(server_link[:href])
28
+ end
29
+ end
30
+
31
+ def network
32
+ reload if other_links.nil?
33
+ network_href = other_links.find { |l| l[:type] == "application/vnd.tmrk.cloud.network" }[:href]
34
+ network = self.service.networks.get(network_href)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,32 @@
1
+ require 'fog/ecloud/models/compute/ip_address'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class IpAddresses < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::IpAddress
10
+
11
+ def all
12
+ data = service.get_network(href).body
13
+ data = if data[:IpAddresses]
14
+ data[:IpAddresses][:IpAddress]
15
+ else
16
+ data
17
+ end
18
+ data = data.nil? ? [] : data
19
+ load(data)
20
+ end
21
+
22
+ def get(uri)
23
+ if data = service.get_ip_address(uri)
24
+ new(data.body)
25
+ end
26
+ rescue Fog::Errors::NotFound
27
+ nil
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Layout < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ attribute :type, :aliases => :Type
8
+ attribute :other_links, :aliases => :Links
9
+
10
+ def rows
11
+ @rows ||= self.service.rows(:href => href)
12
+ end
13
+
14
+ def id
15
+ href.scan(/\d+/)[0]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/ecloud/models/compute/layout'
2
+
3
+ module Fog
4
+ module Compute
5
+ class Ecloud
6
+ class Layouts < Fog::Ecloud::Collection
7
+ identity :href
8
+
9
+ model Fog::Compute::Ecloud::Layout
10
+
11
+ def all
12
+ data = service.get_layouts(href).body
13
+ load(data)
14
+ end
15
+
16
+ def get(uri)
17
+ if data = service.get_layout(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,22 @@
1
+ module Fog
2
+ module Compute
3
+ class Ecloud
4
+ class Location < Fog::Ecloud::Model
5
+ identity :href
6
+
7
+ ignore_attributes :xmlns, :xmlns_xsi, :xmlns_xsd, :xmlns_i
8
+
9
+ attribute :name, :aliases => :Name
10
+ attribute :type, :aliases => :Type
11
+
12
+ def catalog(org_href)
13
+ @catalog ||= Fog::Compute::Ecloud::Catalog.new(:service => service, :href => "#{service.base_path}/admin/catalog/organizations/#{org_href.scan(/\d+/)[0]}/locations/#{id}")
14
+ end
15
+
16
+ def id
17
+ href.scan(/\d+/)[0]
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end