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,83 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ extend Fog::Deprecation
6
+ deprecate :get_edge_gateways, :get_org_vdc_gateways
7
+
8
+ # List all gateways for this Org vDC.
9
+ #
10
+ # @param [String] id Object identifier of the vDC.
11
+ # @return [Excon::Response]
12
+ # * body<~Hash>:
13
+ #
14
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
15
+ #
16
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-OrgVdcGateways.html
17
+ # @since vCloud API version 5.1
18
+ def get_org_vdc_gateways(id)
19
+ response = request(
20
+ :expects => 200,
21
+ :idempotent => true,
22
+ :method => 'GET',
23
+ :parser => Fog::ToHashDocument.new,
24
+ :path => "admin/vdc/#{id}/edgeGateways"
25
+ )
26
+ ensure_list! response.body, :EdgeGatewayRecord
27
+ response
28
+ end
29
+ end
30
+
31
+ class Mock
32
+ def get_org_vdc_gateways(vdc_id)
33
+ unless data[:vdcs][vdc_id]
34
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
35
+ "No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
36
+ )
37
+ end
38
+
39
+ body =
40
+ {:xmlns => xmlns,
41
+ :xmlns_xsi => xmlns_xsi,
42
+ :total => "1",
43
+ :pageSize => "25",
44
+ :page => "1",
45
+ :name => "edgeGateways",
46
+ :type => "application/vnd.vmware.vcloud.query.records+xml",
47
+ :href => make_href("admin/vdc/#{vdc_id}edgeGateways?page=1&pageSize=25&format=records"),
48
+ :xsi_schemaLocation => xsi_schema_location,
49
+ :Link =>
50
+ [{:rel => "alternate",
51
+ :type => "application/vnd.vmware.vcloud.query.references+xml",
52
+ :href => make_href("admin/vdc/#{vdc_id}edgeGateways?page=1&pageSize=25&format=references")},
53
+ {:rel => "alternate",
54
+ :type => "application/vnd.vmware.vcloud.query.idrecords+xml",
55
+ :href => make_href("admin/vdc/#{vdc_id}edgeGateways?page=1&pageSize=25&format=records")}],
56
+ :EdgeGatewayRecord => []}
57
+
58
+ vdc_edge_gateways = data[:edge_gateways].select do |id, edge_gateway|
59
+ edge_gateway[:vdc] == vdc_id
60
+ end
61
+
62
+ body[:EdgeGatewayRecord] += vdc_edge_gateways.map do |id, edge_gateway|
63
+ {:vdc => make_href("vdc/#{vdc_id}"),
64
+ :numberOfOrgNetworks => "1",
65
+ :numberOfExtNetworks => "1",
66
+ :name => edge_gateway[:name],
67
+ :isBusy => "false",
68
+ :haStatus => "DISABLED",
69
+ :gatewayStatus => "READY",
70
+ :href => make_href("admin/edgeGateway/#{id}"),
71
+ :isSyslogServerSettingInSync => "true"}
72
+ end
73
+
74
+ Excon::Response.new(
75
+ :status => 200,
76
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
77
+ :body => body
78
+ )
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,100 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve an organization.
6
+ #
7
+ # @param [String] id The object identifier of the organization.
8
+ # @return [Excon:Response]
9
+ # * body<~Hash>:
10
+ #
11
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
12
+ #
13
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Organization.html
14
+ # @since vCloud API version 0.9
15
+ def get_organization(id)
16
+ response = request(
17
+ :expects => 200,
18
+ :idempotent => true,
19
+ :method => 'GET',
20
+ :parser => Fog::ToHashDocument.new,
21
+ :path => "org/#{id}"
22
+ )
23
+ ensure_list! response.body, :Tasks, :Task
24
+ response
25
+ end
26
+ end
27
+
28
+ class Mock
29
+ def get_organization(id)
30
+ unless id == data[:org][:uuid]
31
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
32
+ "No access to entity \"com.vmware.vcloud.entity.org:#{id}\""
33
+ )
34
+ end
35
+ org = data[:org]
36
+
37
+ body =
38
+ {:href=>make_href("org/#{id}"),
39
+ :type=>"application/vnd.vmware.vcloud.org+xml",
40
+ :id=>"urn:vcloud:org:#{id}",
41
+ :name=>org[:name],
42
+ :Link=>
43
+ [{:href=>make_href("tasksList/#{id}"),
44
+ :type=>"application/vnd.vmware.vcloud.tasksList+xml",
45
+ :rel=>"down"},
46
+ {:href=>make_href("admin/org/#{id}/catalogs"),
47
+ :type=>"application/vnd.vmware.admin.catalog+xml",
48
+ :rel=>"add"},
49
+ {:href=>make_href("org/#{id}/metadata"),
50
+ :type=>"application/vnd.vmware.vcloud.metadata+xml",
51
+ :rel=>"down"}],
52
+ :Description=>org[:description]||'',
53
+ :Tasks=>{:Task=>[]},
54
+ :FullName=>org[:full_name]}
55
+
56
+ body[:Link] += data[:catalogs].map do |catalog_id, catalog|
57
+ [{:href=>make_href("catalog/#{catalog_id}"),
58
+ :name=>catalog[:name],
59
+ :type=>"application/vnd.vmware.vcloud.catalog+xml",
60
+ :rel=>"down"},
61
+ {:href=>make_href("org/#{id}/catalog/#{catalog_id}/controlAccess/"),
62
+ :type=>"application/vnd.vmware.vcloud.controlAccess+xml",
63
+ :rel=>"down"},
64
+ {:href=>
65
+ make_href("org/#{id}/catalog/#{catalog_id}/action/controlAccess"),
66
+ :type=>"application/vnd.vmware.vcloud.controlAccess+xml",
67
+ :rel=>"controlAccess"}]
68
+ end.flatten
69
+
70
+ body[:Link] += data[:networks].map do |network_id, network|
71
+ {:href=>make_href("network/#{network_id}"),
72
+ :name=>network[:name],
73
+ :type=>"application/vnd.vmware.vcloud.orgNetwork+xml",
74
+ :rel=>"down"}
75
+ end
76
+
77
+ body[:Link] += data[:vdcs].map do |vdc_id, vdc|
78
+ {:href=>make_href("vdc/#{vdc_id}"),
79
+ :name=>vdc[:name],
80
+ :type=>"application/vnd.vmware.vcloud.vdc+xml",
81
+ :rel=>"down"}
82
+ end
83
+
84
+ if api_version.to_f >= 5.1
85
+ body[:Link] <<
86
+ {:href=>make_href('supportedSystemsInfo/'),
87
+ :type=>"application/vnd.vmware.vcloud.supportedSystemsInfo+xml",
88
+ :rel=>"down"}
89
+ end
90
+
91
+ Excon::Response.new(
92
+ :body => body,
93
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
94
+ :status => 200
95
+ )
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve metadata associated with the organization.
6
+ #
7
+ # @param [String] id Object identifier of the organization.
8
+ # @return [Excon::Response]
9
+ # * body<~Hash>:
10
+ #
11
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-OrganizationMetadata.html
12
+ # @since vCloud API version 1.5
13
+ def get_organization_metadata(id)
14
+ request(
15
+ :expects => 200,
16
+ :idempotent => true,
17
+ :method => 'GET',
18
+ :parser => Fog::ToHashDocument.new,
19
+ :path => "org/#{id}/metadata"
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,28 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve the value of the specified key in the specified domain from
6
+ # organization metadata.
7
+ #
8
+ # @param [String] id Object identifier of the network.
9
+ # @param [String] domain
10
+ # @param [String] key Key of the metadata.
11
+ # @return [Excon::Response]
12
+ # * body<~Hash>:
13
+ #
14
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-OrganizationMetadataItem-metadata.html
15
+ # @since vCloud API version 5.1
16
+ def get_organization_metadata_item_metadata(id, domain, key)
17
+ request(
18
+ :expects => 200,
19
+ :idempotent => true,
20
+ :method => 'GET',
21
+ :parser => Fog::ToHashDocument.new,
22
+ :path => "admin/org/#{id}/metadata/#{URI.escape(domain)}/#{URI.escape(key)})"
23
+ )
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,52 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve a list of organizations accessible to you.
6
+ #
7
+ # The system administrator has access to all organizations.
8
+ #
9
+ # @return [Excon::Response]
10
+ # * body<~Hash>:
11
+ # * :href<~String> - The URI of the entity.
12
+ # * :type<~String> - The MIME type of the entity.
13
+ # * :Org<~Array<Hash>]:
14
+ # * :href<~String> - Contains the URI to the linked entity.
15
+ # * :name<~String> - Contains the name of the linked entity.
16
+ # * :type<~String> - Contains the type of the linked entity.
17
+ #
18
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Organizations.html
19
+ # @since vCloud API version 0.9
20
+ def get_organizations
21
+ response = request(
22
+ :expects => 200,
23
+ :idempotent => true,
24
+ :method => 'GET',
25
+ :parser => Fog::ToHashDocument.new,
26
+ :path => 'org'
27
+ )
28
+ ensure_list! response.body, :Org
29
+ response
30
+ end
31
+ end
32
+
33
+ class Mock
34
+ def get_organizations
35
+ body =
36
+ {:href=>make_href('org/'),
37
+ :type=>"application/vnd.vmware.vcloud.orgList+xml",
38
+ :Org=>
39
+ [{:href=>make_href("org/#{data[:org][:uuid]}"),
40
+ :name=>data[:org][:name],
41
+ :type=>"application/vnd.vmware.vcloud.org+xml"}]}
42
+
43
+ Excon::Response.new(
44
+ :body => body,
45
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
46
+ :status => 200
47
+ )
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,95 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieves a list of organizations by using REST API general
6
+ # QueryHandler.
7
+ #
8
+ # @param [Hash] options
9
+ # @option options [String] :sortAsc (Sorted by database ID) Sort
10
+ # results by attribute-name in ascending order. attribute-name cannot
11
+ # include metadata.
12
+ # @option options [String] :sortDesc (Sorted by database ID) Sort
13
+ # results by attribute-name in descending order. attribute-name
14
+ # cannot include metadata.
15
+ # @option options [Integer] :page (1) If the query results span
16
+ # multiple pages, return this page.
17
+ # @option options [Integer] :pageSize (25) Number of results per page,
18
+ # to a maximum of 128.
19
+ # @option options [String] :format (records) One of the following
20
+ # types:
21
+ # - *references* Returns a reference to each object, including its
22
+ # :name, :type, and :href attributes.
23
+ # - *records* Returns all database records for each object, with each
24
+ # record as an attribute.
25
+ # - *idrecords* Identical to the records format, except that object
26
+ # references are returned in :id format rather than :href format.
27
+ # @option options [Array<String>] :fields (all static attribute names)
28
+ # List of attribute names or metadata key names to return.
29
+ # @option options [Integer] :offset (0) Integer value specifying the
30
+ # first record to return. Record numbers < offset are not returned.
31
+ # @option options [String] :filter (none) Filter expression.
32
+ # @return [Excon::Response]
33
+ # * hash<~Hash>:
34
+ # * :href<~String> - The URI of the entity.
35
+ # * :type<~String> - The MIME type of the entity.
36
+ # * :name<~String> - Query name that generated this result set.
37
+ # * :page<~String> - Page of the result set that this container
38
+ # holds. The first page is page number 1.
39
+ # * :pageSize<~String> - Page size, as a number of records or
40
+ # references.
41
+ # * :total<~String> - Total number of records or references in the
42
+ # container.
43
+ # * :Link<~Array<Hash>>:
44
+ # * :href<~String> - Contains the URI to the entity.
45
+ # * :type<~String> - Contains the type of the entity.
46
+ # * :rel<~String> - Defines the relationship of the link to the
47
+ # object that contains it.
48
+ # * :OrganizationRecord<~Array<Hash>>:
49
+ # * TODO
50
+ # * :firstPage<~Integer> - First page in the result set.
51
+ # * :previousPage<~Integer> - Previous page in the result set.
52
+ # * :nextPage<~Integer> - Next page in the result set.
53
+ # * :lastPage<~Integer> - Last page in the result set.
54
+ #
55
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-OrganizationsFromQuery.html
56
+ # @since vCloud API version 1.5
57
+ def get_organizations_from_query(options={})
58
+ query = []
59
+ query << "sortAsc=#{options[:sortAsc]}" if options[:sortAsc]
60
+ query << "sortDesc=#{options[:sortDesc]}" if options[:sortDesc]
61
+ query << "page=#{options[:page]}" if options[:page]
62
+ query << "pageSize=#{options[:pageSize]}" if options[:pageSize]
63
+ query << "format=#{options[:format]}" if options[:format]
64
+ query << "fields=#{Array(options[:fields]).join(',')}" if options[:fields]
65
+ query << "offset=#{options[:offset]}" if options[:offset]
66
+ query << "filter=#{options[:filter]}" if options[:filter]
67
+
68
+ response = request(
69
+ :expects => 200,
70
+ :idempotent => true,
71
+ :method => 'GET',
72
+ :parser => Fog::ToHashDocument.new,
73
+ :path => 'admin/orgs/query',
74
+ :query => query.map {|q| URI.escape(q)}.join('&')
75
+ )
76
+ ensure_list! response.body, :Link
77
+ ensure_list! response.body,
78
+ response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
79
+ :OrganizationReference : :OrganizationRecord
80
+
81
+ %w[firstPage previousPage nextPage lastPage].each do |rel|
82
+ if link = response.body[:Link].find {|l| l[:rel] == rel}
83
+ href = Nokogiri::XML.fragment(link[:href])
84
+ query = CGI.parse(URI.parse(href.text).query)
85
+ response.body[rel.to_sym] = query['page'].first.to_i
86
+ response.body[:pageSize] ||= query['pageSize'].first.to_i
87
+ end
88
+ end
89
+
90
+ response
91
+ end
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,25 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve a list of ProductSection elements from a vApp or VM.
6
+ #
7
+ # @param [String] id Object identifier of the vApp or VM.
8
+ # @return [Excon::Response]
9
+ # * body<~Hash>:
10
+ #
11
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-ProductSections-vApp.html
12
+ # @since vCloud API version 1.5
13
+ def get_product_sections_vapp(id)
14
+ request(
15
+ :expects => 200,
16
+ :idempotent => true,
17
+ :method => 'GET',
18
+ :parser => Fog::ToHashDocument.new,
19
+ :path => "vApp/#{id}/productSections"
20
+ )
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,26 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve a list of ProductSection elements from a vApp template or
6
+ # VM.
7
+ #
8
+ # @param [String] id Object identifier of the vApp template or VM.
9
+ # @return [Excon::Response]
10
+ # * body<~Hash>:
11
+ #
12
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-ProductSections-vAppTemplate.html
13
+ # @since vCloud API version 1.5
14
+ def get_product_sections_vapp_template(id)
15
+ request(
16
+ :expects => 200,
17
+ :idempotent => true,
18
+ :method => 'GET',
19
+ :parser => Fog::ToHashDocument.new,
20
+ :path => "vAppTemplate/#{id}/productSections"
21
+ )
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,19 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # This is used for manual testing.
6
+ #
7
+ # @api private
8
+ def get_request(uri)
9
+ request(
10
+ :expects => 200,
11
+ :idempotent => true,
12
+ :method => 'GET',
13
+ :path => uri
14
+ )
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end