fog-vcloud-director 0.1.0

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 (315) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +11 -0
  3. data/.gitignore +17 -0
  4. data/.hound.yml +2 -0
  5. data/.rubocop.yml +240 -0
  6. data/.ruby-gemset +1 -0
  7. data/.travis.yml +15 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE.md +20 -0
  10. data/README.md +962 -0
  11. data/Rakefile +19 -0
  12. data/fog-vcloud-director.gemspec +31 -0
  13. data/lib/fog/vcloud_director.rb +1 -0
  14. data/lib/fog/vcloud_director/compute.rb +916 -0
  15. data/lib/fog/vcloud_director/core.rb +69 -0
  16. data/lib/fog/vcloud_director/generators/compute/compose_common.rb +122 -0
  17. data/lib/fog/vcloud_director/generators/compute/compose_vapp.rb +25 -0
  18. data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
  19. data/lib/fog/vcloud_director/generators/compute/customization.rb +105 -0
  20. data/lib/fog/vcloud_director/generators/compute/disks.rb +186 -0
  21. data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +243 -0
  22. data/lib/fog/vcloud_director/generators/compute/instantiate_vapp_template_params.rb +30 -0
  23. data/lib/fog/vcloud_director/generators/compute/metadata.rb +104 -0
  24. data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +88 -0
  25. data/lib/fog/vcloud_director/generators/compute/recompose_vapp.rb +34 -0
  26. data/lib/fog/vcloud_director/generators/compute/vapp.rb +28 -0
  27. data/lib/fog/vcloud_director/generators/compute/vm.rb +32 -0
  28. data/lib/fog/vcloud_director/generators/compute/vm_network.rb +119 -0
  29. data/lib/fog/vcloud_director/models/compute/catalog.rb +22 -0
  30. data/lib/fog/vcloud_director/models/compute/catalog_item.rb +30 -0
  31. data/lib/fog/vcloud_director/models/compute/catalog_items.rb +33 -0
  32. data/lib/fog/vcloud_director/models/compute/catalogs.rb +30 -0
  33. data/lib/fog/vcloud_director/models/compute/custom_field.rb +18 -0
  34. data/lib/fog/vcloud_director/models/compute/custom_fields.rb +67 -0
  35. data/lib/fog/vcloud_director/models/compute/disk.rb +53 -0
  36. data/lib/fog/vcloud_director/models/compute/disks.rb +44 -0
  37. data/lib/fog/vcloud_director/models/compute/media.rb +26 -0
  38. data/lib/fog/vcloud_director/models/compute/medias.rb +75 -0
  39. data/lib/fog/vcloud_director/models/compute/network.rb +25 -0
  40. data/lib/fog/vcloud_director/models/compute/networks.rb +62 -0
  41. data/lib/fog/vcloud_director/models/compute/organization.rb +37 -0
  42. data/lib/fog/vcloud_director/models/compute/organizations.rb +28 -0
  43. data/lib/fog/vcloud_director/models/compute/tag.rb +31 -0
  44. data/lib/fog/vcloud_director/models/compute/tags.rb +41 -0
  45. data/lib/fog/vcloud_director/models/compute/task.rb +55 -0
  46. data/lib/fog/vcloud_director/models/compute/tasks.rb +36 -0
  47. data/lib/fog/vcloud_director/models/compute/template_vm.rb +52 -0
  48. data/lib/fog/vcloud_director/models/compute/template_vms.rb +41 -0
  49. data/lib/fog/vcloud_director/models/compute/vapp.rb +144 -0
  50. data/lib/fog/vcloud_director/models/compute/vapp_template.rb +26 -0
  51. data/lib/fog/vcloud_director/models/compute/vapp_templates.rb +40 -0
  52. data/lib/fog/vcloud_director/models/compute/vapps.rb +40 -0
  53. data/lib/fog/vcloud_director/models/compute/vdc.rb +45 -0
  54. data/lib/fog/vcloud_director/models/compute/vdcs.rb +37 -0
  55. data/lib/fog/vcloud_director/models/compute/vm.rb +197 -0
  56. data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
  57. data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +29 -0
  58. data/lib/fog/vcloud_director/models/compute/vm_network.rb +27 -0
  59. data/lib/fog/vcloud_director/models/compute/vm_networks.rb +19 -0
  60. data/lib/fog/vcloud_director/models/compute/vms.rb +46 -0
  61. data/lib/fog/vcloud_director/parsers/compute/disks.rb +53 -0
  62. data/lib/fog/vcloud_director/parsers/compute/metadata.rb +61 -0
  63. data/lib/fog/vcloud_director/parsers/compute/network.rb +104 -0
  64. data/lib/fog/vcloud_director/parsers/compute/vm.rb +86 -0
  65. data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +55 -0
  66. data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +107 -0
  67. data/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb +62 -0
  68. data/lib/fog/vcloud_director/parsers/compute/vms.rb +68 -0
  69. data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +37 -0
  70. data/lib/fog/vcloud_director/query.rb +59 -0
  71. data/lib/fog/vcloud_director/requests/compute/delete_catalog_item.rb +22 -0
  72. data/lib/fog/vcloud_director/requests/compute/delete_catalog_item_metadata_item_metadata.rb +25 -0
  73. data/lib/fog/vcloud_director/requests/compute/delete_disk.rb +60 -0
  74. data/lib/fog/vcloud_director/requests/compute/delete_disk_metadata_item_metadata.rb +25 -0
  75. data/lib/fog/vcloud_director/requests/compute/delete_logout.rb +18 -0
  76. data/lib/fog/vcloud_director/requests/compute/delete_media.rb +122 -0
  77. data/lib/fog/vcloud_director/requests/compute/delete_media_metadata_item_metadata.rb +25 -0
  78. data/lib/fog/vcloud_director/requests/compute/delete_network.rb +62 -0
  79. data/lib/fog/vcloud_director/requests/compute/delete_shadow_vm.rb +30 -0
  80. data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +59 -0
  81. data/lib/fog/vcloud_director/requests/compute/delete_vapp_metadata_item_metadata.rb +30 -0
  82. data/lib/fog/vcloud_director/requests/compute/delete_vapp_template.rb +27 -0
  83. data/lib/fog/vcloud_director/requests/compute/delete_vapp_template_metadata_item_metadata.rb +26 -0
  84. data/lib/fog/vcloud_director/requests/compute/get_allocated_ip_addresses.rb +25 -0
  85. data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +63 -0
  86. data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +48 -0
  87. data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata.rb +25 -0
  88. data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata_item_metadata.rb +26 -0
  89. data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata.rb +25 -0
  90. data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata_item_metadata.rb +26 -0
  91. data/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb +94 -0
  92. data/lib/fog/vcloud_director/requests/compute/get_control_access_params_catalog.rb +26 -0
  93. data/lib/fog/vcloud_director/requests/compute/get_control_access_params_vapp.rb +25 -0
  94. data/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb +65 -0
  95. data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +83 -0
  96. data/lib/fog/vcloud_director/requests/compute/get_disk.rb +123 -0
  97. data/lib/fog/vcloud_director/requests/compute/get_disk_metadata.rb +25 -0
  98. data/lib/fog/vcloud_director/requests/compute/get_disk_metadata_item_metadata.rb +26 -0
  99. data/lib/fog/vcloud_director/requests/compute/get_disk_owner.rb +70 -0
  100. data/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb +94 -0
  101. data/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb +90 -0
  102. data/lib/fog/vcloud_director/requests/compute/get_edge_gateway.rb +109 -0
  103. data/lib/fog/vcloud_director/requests/compute/get_entity.rb +38 -0
  104. data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +736 -0
  105. data/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb +95 -0
  106. data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb +69 -0
  107. data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp_template.rb +25 -0
  108. data/lib/fog/vcloud_director/requests/compute/get_href.rb +21 -0
  109. data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb +59 -0
  110. data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp_template.rb +25 -0
  111. data/lib/fog/vcloud_director/requests/compute/get_media.rb +111 -0
  112. data/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb +92 -0
  113. data/lib/fog/vcloud_director/requests/compute/get_media_metadata.rb +25 -0
  114. data/lib/fog/vcloud_director/requests/compute/get_media_metadata_item_metadata.rb +26 -0
  115. data/lib/fog/vcloud_director/requests/compute/get_media_owner.rb +70 -0
  116. data/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb +94 -0
  117. data/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb +64 -0
  118. data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +41 -0
  119. data/lib/fog/vcloud_director/requests/compute/get_network.rb +67 -0
  120. data/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb +70 -0
  121. data/lib/fog/vcloud_director/requests/compute/get_network_complete.rb +78 -0
  122. data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb +61 -0
  123. data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp_template.rb +25 -0
  124. data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb +68 -0
  125. data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp_template.rb +25 -0
  126. data/lib/fog/vcloud_director/requests/compute/get_network_metadata.rb +25 -0
  127. data/lib/fog/vcloud_director/requests/compute/get_network_metadata_item_metadata.rb +26 -0
  128. data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp.rb +25 -0
  129. data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp_template.rb +25 -0
  130. data/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb +59 -0
  131. data/lib/fog/vcloud_director/requests/compute/get_org_settings.rb +38 -0
  132. data/lib/fog/vcloud_director/requests/compute/get_org_vdc_gateways.rb +83 -0
  133. data/lib/fog/vcloud_director/requests/compute/get_organization.rb +100 -0
  134. data/lib/fog/vcloud_director/requests/compute/get_organization_metadata.rb +25 -0
  135. data/lib/fog/vcloud_director/requests/compute/get_organization_metadata_item_metadata.rb +28 -0
  136. data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +52 -0
  137. data/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb +95 -0
  138. data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp.rb +25 -0
  139. data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp_template.rb +26 -0
  140. data/lib/fog/vcloud_director/requests/compute/get_request.rb +19 -0
  141. data/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb +57 -0
  142. data/lib/fog/vcloud_director/requests/compute/get_serial_ports_items_list.rb +25 -0
  143. data/lib/fog/vcloud_director/requests/compute/get_shadow_vm.rb +24 -0
  144. data/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb +55 -0
  145. data/lib/fog/vcloud_director/requests/compute/get_startup_section.rb +64 -0
  146. data/lib/fog/vcloud_director/requests/compute/get_supported_systems_info.rb +239 -0
  147. data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1159 -0
  148. data/lib/fog/vcloud_director/requests/compute/get_task.rb +168 -0
  149. data/lib/fog/vcloud_director/requests/compute/get_task_list.rb +130 -0
  150. data/lib/fog/vcloud_director/requests/compute/get_template_vm.rb +74 -0
  151. data/lib/fog/vcloud_director/requests/compute/get_template_vms.rb +41 -0
  152. data/lib/fog/vcloud_director/requests/compute/get_thumbnail.rb +28 -0
  153. data/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb +95 -0
  154. data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +176 -0
  155. data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +84 -0
  156. data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata_item_metadata.rb +26 -0
  157. data/lib/fog/vcloud_director/requests/compute/get_vapp_ovf_descriptor.rb +24 -0
  158. data/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb +58 -0
  159. data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +25 -0
  160. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_customization_system_section.rb +25 -0
  161. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata.rb +25 -0
  162. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata_item_metadata.rb +27 -0
  163. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_ovf_descriptor.rb +24 -0
  164. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_owner.rb +25 -0
  165. data/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb +95 -0
  166. data/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb +94 -0
  167. data/lib/fog/vcloud_director/requests/compute/get_vcloud.rb +76 -0
  168. data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +174 -0
  169. data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata.rb +25 -0
  170. data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata_item_metadata.rb +28 -0
  171. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class.rb +83 -0
  172. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata.rb +27 -0
  173. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata_item_metadata.rb +25 -0
  174. data/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb +94 -0
  175. data/lib/fog/vcloud_director/requests/compute/get_virtual_hardware_section.rb +29 -0
  176. data/lib/fog/vcloud_director/requests/compute/get_vm.rb +74 -0
  177. data/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb +61 -0
  178. data/lib/fog/vcloud_director/requests/compute/get_vm_compliance_results.rb +24 -0
  179. data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +31 -0
  180. data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +51 -0
  181. data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +56 -0
  182. data/lib/fog/vcloud_director/requests/compute/get_vm_pending_question.rb +34 -0
  183. data/lib/fog/vcloud_director/requests/compute/get_vms.rb +41 -0
  184. data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
  185. data/lib/fog/vcloud_director/requests/compute/get_vms_disk_attached_to.rb +39 -0
  186. data/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb +150 -0
  187. data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +173 -0
  188. data/lib/fog/vcloud_director/requests/compute/post_acquire_ticket.rb +27 -0
  189. data/lib/fog/vcloud_director/requests/compute/post_answer_vm_pending_question.rb +36 -0
  190. data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +51 -0
  191. data/lib/fog/vcloud_director/requests/compute/post_cancel_task.rb +43 -0
  192. data/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb +70 -0
  193. data/lib/fog/vcloud_director/requests/compute/post_check_vm_compliance.rb +28 -0
  194. data/lib/fog/vcloud_director/requests/compute/post_clone_media.rb +102 -0
  195. data/lib/fog/vcloud_director/requests/compute/post_clone_vapp.rb +62 -0
  196. data/lib/fog/vcloud_director/requests/compute/post_clone_vapp_template.rb +52 -0
  197. data/lib/fog/vcloud_director/requests/compute/post_compose_vapp.rb +45 -0
  198. data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +73 -0
  199. data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp.rb +27 -0
  200. data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp_template.rb +27 -0
  201. data/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb +56 -0
  202. data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +171 -0
  203. data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
  204. data/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb +51 -0
  205. data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +39 -0
  206. data/lib/fog/vcloud_director/requests/compute/post_disable_nested_hv.rb +27 -0
  207. data/lib/fog/vcloud_director/requests/compute/post_disable_vapp_template_download.rb +24 -0
  208. data/lib/fog/vcloud_director/requests/compute/post_discard_vapp_state.rb +30 -0
  209. data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +39 -0
  210. data/lib/fog/vcloud_director/requests/compute/post_enable_nested_hv.rb +27 -0
  211. data/lib/fog/vcloud_director/requests/compute/post_enable_vapp_template_download.rb +24 -0
  212. data/lib/fog/vcloud_director/requests/compute/post_enter_maintenance_mode.rb +26 -0
  213. data/lib/fog/vcloud_director/requests/compute/post_exit_maintenance_mode.rb +22 -0
  214. data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +39 -0
  215. data/lib/fog/vcloud_director/requests/compute/post_install_vmware_tools.rb +27 -0
  216. data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +196 -0
  217. data/lib/fog/vcloud_director/requests/compute/post_login_session.rb +39 -0
  218. data/lib/fog/vcloud_director/requests/compute/post_power_off_vapp.rb +36 -0
  219. data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +71 -0
  220. data/lib/fog/vcloud_director/requests/compute/post_reboot_vapp.rb +33 -0
  221. data/lib/fog/vcloud_director/requests/compute/post_recompose_vapp.rb +21 -0
  222. data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
  223. data/lib/fog/vcloud_director/requests/compute/post_remove_all_snapshots.rb +27 -0
  224. data/lib/fog/vcloud_director/requests/compute/post_reset_vapp.rb +33 -0
  225. data/lib/fog/vcloud_director/requests/compute/post_revert_snapshot.rb +27 -0
  226. data/lib/fog/vcloud_director/requests/compute/post_shutdown_vapp.rb +33 -0
  227. data/lib/fog/vcloud_director/requests/compute/post_suspend_vapp.rb +33 -0
  228. data/lib/fog/vcloud_director/requests/compute/post_undeploy_vapp.rb +66 -0
  229. data/lib/fog/vcloud_director/requests/compute/post_update_catalog_item_metadata.rb +52 -0
  230. data/lib/fog/vcloud_director/requests/compute/post_update_disk_metadata.rb +52 -0
  231. data/lib/fog/vcloud_director/requests/compute/post_update_media_metadata.rb +52 -0
  232. data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +86 -0
  233. data/lib/fog/vcloud_director/requests/compute/post_update_vapp_template_metadata.rb +52 -0
  234. data/lib/fog/vcloud_director/requests/compute/post_upgrade_hw_version.rb +28 -0
  235. data/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb +133 -0
  236. data/lib/fog/vcloud_director/requests/compute/post_upload_media.rb +120 -0
  237. data/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb +46 -0
  238. data/lib/fog/vcloud_director/requests/compute/put_catalog_item_metadata_item_metadata.rb +50 -0
  239. data/lib/fog/vcloud_director/requests/compute/put_cpu.rb +88 -0
  240. data/lib/fog/vcloud_director/requests/compute/put_disk_metadata_item_metadata.rb +46 -0
  241. data/lib/fog/vcloud_director/requests/compute/put_disks.rb +39 -0
  242. data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +141 -0
  243. data/lib/fog/vcloud_director/requests/compute/put_media_metadata_item_metadata.rb +50 -0
  244. data/lib/fog/vcloud_director/requests/compute/put_memory.rb +89 -0
  245. data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +26 -0
  246. data/lib/fog/vcloud_director/requests/compute/put_network.rb +162 -0
  247. data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +152 -0
  248. data/lib/fog/vcloud_director/requests/compute/put_product_sections.rb +46 -0
  249. data/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb +85 -0
  250. data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +36 -0
  251. data/lib/fog/vcloud_director/requests/compute/put_vapp_template_metadata_item_metadata.rb +50 -0
  252. data/lib/fog/vcloud_director/requests/compute/put_vm.rb +72 -0
  253. data/lib/fog/vcloud_director/requests/compute/put_vm_capabilities.rb +44 -0
  254. data/lib/fog/vcloud_director/version.rb +5 -0
  255. data/spec/spec_helper.rb +15 -0
  256. data/spec/vcloud_director/generators/compute/instantiate_vapp_template_params_spec.rb +68 -0
  257. data/spec/vcloud_director/requests/compute/instantiate_vapp_template_spec.rb +78 -0
  258. data/spec/vcloud_director/spec_helper.rb +11 -0
  259. data/tasks/bundler.rake +3 -0
  260. data/tasks/console.rake +12 -0
  261. data/tasks/lint.rake +3 -0
  262. data/tasks/test.rake +13 -0
  263. data/tests/helper.rb +32 -0
  264. data/tests/helpers/collection_helper.rb +97 -0
  265. data/tests/helpers/compute/flavors_helper.rb +32 -0
  266. data/tests/helpers/compute/server_helper.rb +25 -0
  267. data/tests/helpers/compute/servers_helper.rb +10 -0
  268. data/tests/helpers/formats_helper.rb +98 -0
  269. data/tests/helpers/formats_helper_tests.rb +110 -0
  270. data/tests/helpers/mock_helper.rb +95 -0
  271. data/tests/helpers/model_helper.rb +31 -0
  272. data/tests/helpers/responds_to_helper.rb +11 -0
  273. data/tests/helpers/schema_validator_tests.rb +107 -0
  274. data/tests/helpers/succeeds_helper.rb +9 -0
  275. data/tests/lorem.txt +1 -0
  276. data/tests/vcloud_director/ensure_list_tests.rb +84 -0
  277. data/tests/vcloud_director/fixtures/test.iso +1 -0
  278. data/tests/vcloud_director/fixtures/vapp.xml +532 -0
  279. data/tests/vcloud_director/fixtures/vm.xml +213 -0
  280. data/tests/vcloud_director/generators/compute/compose_vapp_tests.rb +108 -0
  281. data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
  282. data/tests/vcloud_director/models/compute/catalogs_tests.rb +40 -0
  283. data/tests/vcloud_director/models/compute/helper.rb +60 -0
  284. data/tests/vcloud_director/models/compute/media_tests.rb +58 -0
  285. data/tests/vcloud_director/models/compute/network_tests.rb +108 -0
  286. data/tests/vcloud_director/models/compute/organizations_tests.rb +18 -0
  287. data/tests/vcloud_director/models/compute/tasks_tests.rb +56 -0
  288. data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +93 -0
  289. data/tests/vcloud_director/models/compute/vapp_template_tests.rb +29 -0
  290. data/tests/vcloud_director/models/compute/vapp_tests.rb +61 -0
  291. data/tests/vcloud_director/models/compute/vdcs_tests.rb +54 -0
  292. data/tests/vcloud_director/models/compute/vms_tests.rb +101 -0
  293. data/tests/vcloud_director/requests/compute/admin_tests.rb +16 -0
  294. data/tests/vcloud_director/requests/compute/catalog_tests.rb +42 -0
  295. data/tests/vcloud_director/requests/compute/disk_tests.rb +178 -0
  296. data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +217 -0
  297. data/tests/vcloud_director/requests/compute/groups_tests.rb +18 -0
  298. data/tests/vcloud_director/requests/compute/helper.rb +32 -0
  299. data/tests/vcloud_director/requests/compute/media_tests.rb +195 -0
  300. data/tests/vcloud_director/requests/compute/network_tests.rb +186 -0
  301. data/tests/vcloud_director/requests/compute/organization_tests.rb +37 -0
  302. data/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb +36 -0
  303. data/tests/vcloud_director/requests/compute/query_tests.rb +99 -0
  304. data/tests/vcloud_director/requests/compute/schema_helper.rb +663 -0
  305. data/tests/vcloud_director/requests/compute/session_tests.rb +14 -0
  306. data/tests/vcloud_director/requests/compute/supported_systems_tests.rb +11 -0
  307. data/tests/vcloud_director/requests/compute/task_tests.rb +35 -0
  308. data/tests/vcloud_director/requests/compute/users_tests.rb +18 -0
  309. data/tests/vcloud_director/requests/compute/vapp_tests.rb +123 -0
  310. data/tests/vcloud_director/requests/compute/vdc_storage_profile_tests.rb +27 -0
  311. data/tests/vcloud_director/requests/compute/vdc_tests.rb +36 -0
  312. data/tests/vcloud_director/requests/compute/versions_tests.rb +13 -0
  313. data/tests/vcloud_director/requests/compute/vm_tests.rb +185 -0
  314. data/tests/watchr.rb +22 -0
  315. metadata +461 -0
@@ -0,0 +1,52 @@
1
+ require 'fog/core/model'
2
+ require 'fog/vcloud_director/models/compute/vm_customization'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class TemplateVm < Model
8
+ identity :id
9
+
10
+ attribute :vapp_template_id
11
+ attribute :vapp_template_name
12
+ attribute :name
13
+ attribute :type
14
+ attribute :href
15
+
16
+ def reload
17
+ #Parent vapp_name & id are nil on a template_vm. Adding them from the collection parent
18
+ self.vapp_template_id = collection.vapp_template.id
19
+ self.vapp_template_name = collection.vapp_template.name
20
+ end
21
+
22
+
23
+ def tags
24
+ requires :id
25
+ service.tags(:vm => self)
26
+ end
27
+
28
+ def customization
29
+ requires :id
30
+ data = service.get_vm_customization(id).body
31
+ service.vm_customizations.new(data)
32
+ end
33
+
34
+ def network
35
+ requires :id
36
+ data = service.get_vm_network(id).body
37
+ service.vm_networks.new(data)
38
+ end
39
+
40
+ def disks
41
+ requires :id
42
+ service.disks(:vm => self)
43
+ end
44
+
45
+
46
+ def vapp_template
47
+ service.vapp_templates.get(vapp_template_id)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,41 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/vcloud_director/models/compute/vm'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class TemplateVms < Collection
8
+
9
+ include Fog::VcloudDirector::Query
10
+
11
+ model Fog::Compute::VcloudDirector::TemplateVm
12
+
13
+ attribute :vapp_template
14
+
15
+
16
+ def get_single_vm(vm_id)
17
+ item = service.get_template_vm(vm_id).body
18
+ return nil unless item
19
+ new(item[:vm])
20
+ end
21
+
22
+ def query_type
23
+ "vm"
24
+ end
25
+
26
+ private
27
+
28
+ def get_by_id(item_id)
29
+ item = item_list.find{ |vm| vm[:id] == item_id }
30
+ item
31
+ end
32
+
33
+ def item_list
34
+ data = service.get_template_vms(vapp_template.id).body # vapp.id
35
+ items = data[:vms]
36
+ items
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,144 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class VcloudDirector
6
+ class Vapp < Model
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :type
11
+ attribute :href
12
+ attribute :description, :aliases => :Description
13
+ attribute :deployed, :type => :boolean
14
+ attribute :status
15
+ attribute :lease_settings, :aliases => :LeaseSettingsSection
16
+ attribute :network_section, :aliases => :"ovf:NetworkSection", :squash => :"ovf:Network"
17
+ attribute :network_config, :aliases => :NetworkConfigSection, :squash => :NetworkConfig
18
+ attribute :owner, :aliases => :Owner, :squash => :User
19
+ attribute :InMaintenanceMode, :type => :boolean
20
+
21
+ def vms
22
+ requires :id
23
+ service.vms(:vapp => self)
24
+ end
25
+
26
+ def tags
27
+ requires :id
28
+ service.tags(:vm => self)
29
+ end
30
+
31
+ def custom_fields
32
+ requires :id
33
+ service.custom_fields( :vapp => self)
34
+ end
35
+
36
+ # @param [String] action The specified action is applied to all virtual
37
+ # machines in the vApp. All values other than **default** ignore
38
+ # actions, order, and delay specified in the StartupSection. One of:
39
+ # * powerOff (Power off the virtual machines. This is the default
40
+ # action if this attribute is missing or empty)
41
+ # * suspend (Suspend the virtual machines)
42
+ # * shutdown (Shut down the virtual machines)
43
+ # * force (Attempt to power off the virtual machines. Failures in
44
+ # undeploying the virtual machine or associated networks are ignored.
45
+ # All references to the vApp and its virtual machines are removed
46
+ # from the database)
47
+ # * default (Use the actions, order, and delay specified in the
48
+ # StartupSection)
49
+ def undeploy(action='powerOff')
50
+ begin
51
+ response = service.post_undeploy_vapp(id, :UndeployPowerAction => action)
52
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
53
+ Fog::Logger.debug(ex.message)
54
+ return false
55
+ end
56
+ service.process_task(response.body)
57
+ end
58
+
59
+ # Power off all VMs in the vApp.
60
+ def power_off
61
+ requires :id
62
+ begin
63
+ response = service.post_power_off_vapp(id)
64
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
65
+ Fog::Logger.debug(ex.message)
66
+ return false
67
+ end
68
+ service.process_task(response.body)
69
+ end
70
+
71
+ # Power on all VMs in the vApp.
72
+ def power_on
73
+ requires :id
74
+ begin
75
+ response = service.post_power_on_vapp(id)
76
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
77
+ Fog::Logger.debug(ex.message)
78
+ return false
79
+ end
80
+ service.process_task(response.body)
81
+ end
82
+
83
+ # Reboot all VMs in the vApp.
84
+ def reboot
85
+ requires :id
86
+ begin
87
+ response = service.post_reboot_vapp(id)
88
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
89
+ Fog::Logger.debug(ex.message)
90
+ return false
91
+ end
92
+ service.process_task(response.body)
93
+ end
94
+
95
+ # Reset all VMs in the vApp.
96
+ def reset
97
+ requires :id
98
+ begin
99
+ response = service.post_reset_vapp(id)
100
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
101
+ Fog::Logger.debug(ex.message)
102
+ return false
103
+ end
104
+ service.process_task(response.body)
105
+ end
106
+
107
+ # Shut down all VMs in the vApp.
108
+ def shutdown
109
+ requires :id
110
+ begin
111
+ response = service.post_shutdown_vapp(id)
112
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
113
+ Fog::Logger.debug(ex.message)
114
+ return false
115
+ end
116
+ service.process_task(response.body)
117
+ end
118
+
119
+ # Suspend all VMs in the vApp.
120
+ def suspend
121
+ requires :id
122
+ begin
123
+ response = service.post_suspend_vapp(id)
124
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
125
+ Fog::Logger.debug(ex.message)
126
+ return false
127
+ end
128
+ service.process_task(response.body)
129
+ end
130
+
131
+ def destroy
132
+ requires :id
133
+ begin
134
+ response = service.delete_vapp(id)
135
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
136
+ Fog::Logger.debug(ex.message)
137
+ return false
138
+ end
139
+ service.process_task(response.body)
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,26 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class VcloudDirector
6
+ class VappTemplate < Model
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :type
11
+ attribute :href
12
+ attribute :description, :aliases => :Description
13
+ attribute :status
14
+ attribute :lease_settings, :aliases => :LeaseSettingsSection
15
+ attribute :network_section, :aliases => :"ovf:NetworkSection", :squash => :"ovf:Network"
16
+ attribute :network_config, :aliases => :NetworkConfigSection, :squash => :NetworkConfig
17
+ attribute :owner, :aliases => :Owner, :squash => :User
18
+
19
+ def vms
20
+ requires :id
21
+ service.template_vms(:vapp_template => self)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,40 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/vcloud_director/models/compute/vapp'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class VappTemplates < Collection
8
+
9
+ include Fog::VcloudDirector::Query
10
+
11
+ model Fog::Compute::VcloudDirector::VappTemplate
12
+
13
+ attribute :vdc
14
+
15
+ def query_type
16
+ "vAppTemplate"
17
+ end
18
+
19
+ private
20
+
21
+ def get_by_id(item_id)
22
+ item = service.get_vapp_template(item_id).body
23
+ %w(:Link).each {|key_to_delete| item.delete(key_to_delete) }
24
+ service.add_id_from_href!(item)
25
+ item[:Description] ||= ""
26
+ item
27
+ end
28
+
29
+ def item_list
30
+ data = service.get_vdc(vdc.id).body
31
+ return [] if data[:ResourceEntities].empty?
32
+ resource_entities = data[:ResourceEntities][:ResourceEntity]
33
+ items = resource_entities.select { |link| link[:type] == "application/vnd.vmware.vcloud.vAppTemplate+xml" }
34
+ items.each{|item| service.add_id_from_href!(item) }
35
+ items
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/vcloud_director/models/compute/vapp'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class Vapps < Collection
8
+
9
+ include Fog::VcloudDirector::Query
10
+
11
+ model Fog::Compute::VcloudDirector::Vapp
12
+
13
+ attribute :vdc
14
+
15
+ def query_type
16
+ "vApp"
17
+ end
18
+
19
+ private
20
+
21
+ def get_by_id(item_id)
22
+ item = service.get_vapp(item_id).body
23
+ %w(:Link).each {|key_to_delete| item.delete(key_to_delete) }
24
+ service.add_id_from_href!(item)
25
+ item[:Description] ||= ""
26
+ item
27
+ end
28
+
29
+ def item_list
30
+ data = service.get_vdc(vdc.id).body
31
+ return [] if data[:ResourceEntities].empty?
32
+ resource_entities = data[:ResourceEntities][:ResourceEntity]
33
+ items = resource_entities.select { |link| link[:type] == "application/vnd.vmware.vcloud.vApp+xml" }
34
+ items.each{|item| service.add_id_from_href!(item) }
35
+ items
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,45 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Compute
5
+ class VcloudDirector
6
+ class Vdc < Model
7
+ identity :id
8
+
9
+ attribute :name
10
+ attribute :type
11
+ attribute :href
12
+ attribute :description, :aliases => :Description
13
+ attribute :available_networks, :aliases => :AvailableNetworks, :squash => :Network
14
+ attribute :compute_capacity, :aliases => :ComputeCapacity
15
+ attribute :storage_capacity , :aliases => :StorageCapacity
16
+ attribute :allocation_model, :aliases => :AllocationModel
17
+ attribute :capabilities, :aliases => :Capabilities, :squash => :SupportedHardwareVersions
18
+ attribute :nic_quota, :aliases => :NicQuota, :type => :integer
19
+ attribute :network_quota ,:aliases => :NetworkQuota, :type => :integer
20
+ attribute :vm_quota ,:aliases => :VmQuota, :type => :integer
21
+ attribute :is_enabled ,:aliases => :IsEnabled, :type => :boolean
22
+
23
+ def medias
24
+ requires :id
25
+ service.medias(:vdc => self)
26
+ end
27
+
28
+ def vapps
29
+ requires :id
30
+ service.vapps(:vdc => self)
31
+ end
32
+
33
+ def vapp_templates
34
+ requires :id
35
+ service.vapp_templates(:vdc => self)
36
+ end
37
+
38
+ def networks
39
+ requires :available_networks
40
+ service.networks(:vdc => self)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,37 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/vcloud_director/models/compute/vdc'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class Vdcs < Collection
8
+
9
+ include Fog::VcloudDirector::Query
10
+
11
+ model Fog::Compute::VcloudDirector::Vdc
12
+
13
+ attribute :organization
14
+
15
+ def query_type
16
+ "orgVdc"
17
+ end
18
+
19
+ private
20
+
21
+ def get_by_id(item_id)
22
+ item = service.get_vdc(item_id).body
23
+ %w(:VdcItems :Link :ResourceEntities).each {|key_to_delete| item.delete(key_to_delete) }
24
+ service.add_id_from_href!(item)
25
+ item
26
+ end
27
+
28
+ def item_list
29
+ data = service.get_organization(organization.id).body
30
+ items = data[:Link].select { |link| link[:type] == "application/vnd.vmware.vcloud.vdc+xml" }
31
+ items.each{|item| service.add_id_from_href!(item) }
32
+ items
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,197 @@
1
+ require 'fog/core/model'
2
+ require 'fog/vcloud_director/models/compute/vm_customization'
3
+
4
+ module Fog
5
+ module Compute
6
+ class VcloudDirector
7
+ class Vm < Model
8
+ identity :id
9
+
10
+ attribute :vapp_id
11
+ attribute :vapp_name
12
+ attribute :name
13
+ attribute :type
14
+ attribute :description
15
+ attribute :href
16
+ attribute :status
17
+ attribute :deployed
18
+ attribute :operating_system
19
+ attribute :ip_address
20
+ attribute :cpu, :type => :integer
21
+ attribute :memory, :type => :integer
22
+ attribute :hard_disks, :aliases => :disks
23
+ attribute :network_adapters
24
+
25
+ def reload
26
+ # when collection.vapp is nil, it means it's fatherless,
27
+ # vms from different vapps are loaded in the same collection.
28
+ # This situation comes from a "query" result
29
+ collection.vapp.nil? ? reload_single_vm : super
30
+ end
31
+
32
+ def reload_single_vm
33
+ return unless data = begin
34
+ collection.get_single_vm(identity)
35
+ rescue Excon::Errors::SocketError
36
+ nil
37
+ end
38
+ # these two attributes don't exists in the get_single_vm response
39
+ # that's why i use the old attributes
40
+ data.attributes[:vapp_id] = attributes[:vapp_id]
41
+ data.attributes[:vapp_name] = attributes[:vapp_name]
42
+ new_attributes = data.attributes
43
+ merge_attributes(new_attributes)
44
+ self
45
+ end
46
+
47
+ # Power off the VM.
48
+ def power_off
49
+ requires :id
50
+ begin
51
+ response = service.post_power_off_vapp(id)
52
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
53
+ Fog::Logger.debug(ex.message)
54
+ return false
55
+ end
56
+ service.process_task(response.body)
57
+ end
58
+
59
+ # Power on the VM.
60
+ def power_on
61
+ requires :id
62
+ begin
63
+ response = service.post_power_on_vapp(id)
64
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
65
+ Fog::Logger.debug(ex.message)
66
+ return false
67
+ end
68
+ service.process_task(response.body)
69
+ end
70
+
71
+ # Reboot the VM.
72
+ def reboot
73
+ requires :id
74
+ begin
75
+ response = service.post_reboot_vapp(id)
76
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
77
+ Fog::Logger.debug(ex.message)
78
+ return false
79
+ end
80
+ service.process_task(response.body)
81
+ end
82
+
83
+ # Reset the VM.
84
+ def reset
85
+ requires :id
86
+ begin
87
+ response = service.post_reset_vapp(id)
88
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
89
+ Fog::Logger.debug(ex.message)
90
+ return false
91
+ end
92
+ service.process_task(response.body)
93
+ end
94
+
95
+ def undeploy
96
+ requires :id
97
+ begin
98
+ response = service.post_undeploy_vapp(id)
99
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
100
+ Fog::Logger.debug(ex.message)
101
+ return false
102
+ end
103
+ service.process_task(response.body)
104
+ end
105
+
106
+ # Shut down the VM.
107
+ def shutdown
108
+ requires :id
109
+ begin
110
+ response = service.post_shutdown_vapp(id)
111
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
112
+ Fog::Logger.debug(ex.message)
113
+ return false
114
+ end
115
+ service.process_task(response.body)
116
+ end
117
+
118
+ # Suspend the VM.
119
+ def suspend
120
+ requires :id
121
+ begin
122
+ response = service.post_suspend_vapp(id)
123
+ rescue Fog::Compute::VcloudDirector::BadRequest => ex
124
+ Fog::Logger.debug(ex.message)
125
+ return false
126
+ end
127
+ service.process_task(response.body)
128
+ end
129
+
130
+ def tags
131
+ requires :id
132
+ service.tags(:vm => self)
133
+ end
134
+
135
+ def customization
136
+ requires :id
137
+ data = service.get_vm_customization(id).body
138
+ service.vm_customizations.new(data)
139
+ end
140
+
141
+ def network
142
+ requires :id
143
+ data = service.get_vm_network(id).body
144
+ service.vm_networks.new(data)
145
+ end
146
+
147
+ def disks
148
+ requires :id
149
+ service.disks(:vm => self)
150
+ end
151
+
152
+ def memory=(new_memory)
153
+ has_changed = ( memory != new_memory.to_i )
154
+ not_first_set = !memory.nil?
155
+ attributes[:memory] = new_memory.to_i
156
+ if not_first_set && has_changed
157
+ response = service.put_memory(id, memory)
158
+ service.process_task(response.body)
159
+ end
160
+ end
161
+
162
+ def cpu=(new_cpu)
163
+ has_changed = ( cpu != new_cpu.to_i )
164
+ not_first_set = !cpu.nil?
165
+ attributes[:cpu] = new_cpu.to_i
166
+ if not_first_set && has_changed
167
+ response = service.put_cpu(id, cpu)
168
+ service.process_task(response.body)
169
+ end
170
+ end
171
+
172
+ # Reconfigure a VM using any of the options documented in
173
+ # post_reconfigure_vm
174
+ def reconfigure(options)
175
+ options[:name] ||= name # name has to be sent
176
+ # Delete those things that are not changing for performance
177
+ [:cpu, :memory, :description].each do |k|
178
+ options.delete(k) if options.key? k and options[k] == attributes[k]
179
+ end
180
+ response = service.post_reconfigure_vm(id, options)
181
+ service.process_task(response.body)
182
+ options.each {|k,v| attributes[k] = v}
183
+ end
184
+
185
+ def ready?
186
+ reload
187
+ status == 'on'
188
+ end
189
+
190
+ def vapp
191
+ # get_by_metadata returns a vm collection where every vapp parent is orpahn
192
+ collection.vapp ||= service.vapps.get(vapp_id)
193
+ end
194
+ end
195
+ end
196
+ end
197
+ end