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,25 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve metadata associated with a media object.
6
+ #
7
+ # @param [String] id Object identifier of the media object
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-MediaMetadata.html
12
+ # @since vCloud API version 1.5
13
+ def get_media_metadata(id)
14
+ request(
15
+ :expects => 200,
16
+ :idempotent => true,
17
+ :method => 'GET',
18
+ :parser => Fog::ToHashDocument.new,
19
+ :path => "media/#{id}/metadata"
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 the value of the specified key from media object metadata.
6
+ #
7
+ # @param [String] id Object identifier of the media object.
8
+ # @param [String] key Key of the metadata.
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-MediaMetadataItem-metadata.html
13
+ # @since vCloud API version 1.5
14
+ def get_media_metadata_item_metadata(id, key)
15
+ request(
16
+ :expects => 200,
17
+ :idempotent => true,
18
+ :method => 'GET',
19
+ :parser => Fog::ToHashDocument.new,
20
+ :path => "media/#{id}/metadata/#{URI.escape(key)})"
21
+ )
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,70 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve the owner of a media object.
6
+ #
7
+ # @param [String] id Object identifier of the media object.
8
+ # @return [Excon::Response]
9
+ # * body<~Hash>:
10
+ # * :href<~String> - The URI of the media object.
11
+ # * :type<~String> - The MIME type of the media object.
12
+ # * :Link<~Hash>:
13
+ # * :href<~String> -
14
+ # * :type<~String> -
15
+ # * :rel<~String> -
16
+ # * :User<~Hash> - Reference to the user who is the owner of this
17
+ # media object.
18
+ # * :href<~String> - The URI of the user.
19
+ # * :name<~String> - The name of the user.
20
+ # * :type<~String> - The MIME type of the user.
21
+ #
22
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
23
+ #
24
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-MediaOwner.html
25
+ # @since vCloud API version 1.5
26
+ def get_media_owner(id)
27
+ request(
28
+ :expects => 200,
29
+ :idempotent => true,
30
+ :method => 'GET',
31
+ :parser => Fog::ToHashDocument.new,
32
+ :path => "media/#{id}/owner"
33
+ )
34
+ end
35
+ end
36
+
37
+ class Mock
38
+ def get_media_owner(id)
39
+ unless data[:medias][id]
40
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
41
+ 'No access to entity "com.vmware.vcloud.entity.media:%s".' % id
42
+ )
43
+ end
44
+
45
+ body = {
46
+ :xmlns => xmlns,
47
+ :xmlns_xsi => xmlns_xsi,
48
+ :xsi_schemaLocation => xsi_schema_location,
49
+ :Link => {
50
+ :href => make_href("media/#{id}"),
51
+ :type => 'application/vnd.vmware.vcloud.media+xml',
52
+ :rel => 'up'
53
+ },
54
+ :User => {
55
+ :href => make_href("admin/user/#{user_uuid}"),
56
+ :name => user_name,
57
+ :type => 'application/vnd.vmware.admin.user+xml',
58
+ }
59
+ }
60
+
61
+ Excon::Response.new(
62
+ :status => 200,
63
+ :headers => {'Content-Type' => "#{body[:type]};version=#{@version}"},
64
+ :body => body
65
+ )
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,94 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieves a media list by using REST API general QueryHandler.
6
+ #
7
+ # @param [Hash] options
8
+ # @option options [String] :sortAsc (Sorted by database ID) Sort
9
+ # results by attribute-name in ascending order. attribute-name cannot
10
+ # include metadata.
11
+ # @option options [String] :sortDesc (Sorted by database ID) Sort
12
+ # results by attribute-name in descending order. attribute-name
13
+ # cannot include metadata.
14
+ # @option options [Integer] :page (1) If the query results span
15
+ # multiple pages, return this page.
16
+ # @option options [Integer] :pageSize (25) Number of results per page,
17
+ # to a maximum of 128.
18
+ # @option options [String] :format (records) One of the following
19
+ # types:
20
+ # - *references* Returns a reference to each object, including its
21
+ # :name, :type, and :href attributes.
22
+ # - *records* Returns all database records for each object, with each
23
+ # record as an attribute.
24
+ # - *idrecords* Identical to the records format, except that object
25
+ # references are returned in :id format rather than :href format.
26
+ # @option options [Array<String>] :fields (all static attribute names)
27
+ # List of attribute names or metadata key names to return.
28
+ # @option options [Integer] :offset (0) Integer value specifying the
29
+ # first record to return. Record numbers < offset are not returned.
30
+ # @option options [String] :filter (none) Filter expression.
31
+ # @return [Excon::Response]
32
+ # * hash<~Hash>:
33
+ # * :href<~String> - The URI of the entity.
34
+ # * :type<~String> - The MIME type of the entity.
35
+ # * :name<~String> - Query name that generated this result set.
36
+ # * :page<~String> - Page of the result set that this container
37
+ # holds. The first page is page number 1.
38
+ # * :pageSize<~String> - Page size, as a number of records or
39
+ # references.
40
+ # * :total<~String> - Total number of records or references in the
41
+ # container.
42
+ # * :Link<~Array<Hash>>:
43
+ # * :href<~String> - Contains the URI to the entity.
44
+ # * :type<~String> - Contains the type of the entity.
45
+ # * :rel<~String> - Defines the relationship of the link to the
46
+ # object that contains it.
47
+ # * :MediaRecord<~Array<Hash>>:
48
+ # * TODO
49
+ # * :firstPage<~Integer> - First page in the result set.
50
+ # * :previousPage<~Integer> - Previous page in the result set.
51
+ # * :nextPage<~Integer> - Next page in the result set.
52
+ # * :lastPage<~Integer> - Last page in the result set.
53
+ #
54
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-MediasFromQuery.html
55
+ # @since vCloud API version 1.5
56
+ def get_medias_from_query(options={})
57
+ query = []
58
+ query << "sortAsc=#{options[:sortAsc]}" if options[:sortAsc]
59
+ query << "sortDesc=#{options[:sortDesc]}" if options[:sortDesc]
60
+ query << "page=#{options[:page]}" if options[:page]
61
+ query << "pageSize=#{options[:pageSize]}" if options[:pageSize]
62
+ query << "format=#{options[:format]}" if options[:format]
63
+ query << "fields=#{Array(options[:fields]).join(',')}" if options[:fields]
64
+ query << "offset=#{options[:offset]}" if options[:offset]
65
+ query << "filter=#{options[:filter]}" if options[:filter]
66
+
67
+ response = request(
68
+ :expects => 200,
69
+ :idempotent => true,
70
+ :method => 'GET',
71
+ :parser => Fog::ToHashDocument.new,
72
+ :path => 'mediaList/query',
73
+ :query => query.map {|q| URI.escape(q)}.join('&')
74
+ )
75
+ ensure_list! response.body, :Link
76
+ ensure_list! response.body,
77
+ response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
78
+ :MediaReference : :MediaRecord
79
+
80
+ %w[firstPage previousPage nextPage lastPage].each do |rel|
81
+ if link = response.body[:Link].find {|l| l[:rel] == rel}
82
+ href = Nokogiri::XML.fragment(link[:href])
83
+ query = CGI.parse(URI.parse(href.text).query)
84
+ response.body[rel.to_sym] = query['page'].first.to_i
85
+ response.body[:pageSize] ||= query['pageSize'].first.to_i
86
+ end
87
+ end
88
+
89
+ response
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,64 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ extend Fog::Deprecation
6
+ deprecate :get_vm_memory, :get_memory_rasd_item
7
+
8
+ # Retrieve the RASD item that specifies memory properties of a VM.
9
+ #
10
+ # @param [String] id Object identifier of the VM.
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-MemoryRasdItem.html
15
+ # @since vCloud API version 0.9
16
+ def get_memory_rasd_item(id)
17
+ request(
18
+ :expects => 200,
19
+ :idempotent => true,
20
+ :method => 'GET',
21
+ :parser => Fog::ToHashDocument.new,
22
+ :path => "vApp/#{id}/virtualHardwareSection/memory"
23
+ )
24
+ end
25
+ end
26
+
27
+ class Mock
28
+
29
+ def get_memory_rasd_item(id)
30
+ type = 'application/vnd.vmware.vcloud.rasdItem+xml'
31
+
32
+ unless vm = data[:vms][id]
33
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
34
+ 'This operation is denied.'
35
+ )
36
+ end
37
+
38
+ Excon::Response.new(
39
+ :status => 200,
40
+ :headers => {'Content-Type' => "#{type};version=#{api_version}"},
41
+ :body => get_memory_rasd_item_body(id, vm)
42
+ )
43
+ end
44
+
45
+ def get_memory_rasd_item_body(id, vm)
46
+ {
47
+ :ns12_href => make_href("vApp/#{id}/virtualHardwareSection/memory"),
48
+ :ns12_type=>"application/vnd.vmware.vcloud.rasdItem+xml",
49
+ :"rasd:AllocationUnits"=>"byte * 2^20",
50
+ :"rasd:Description"=>"Memory Size",
51
+ :"rasd:ElementName"=>"#{vm[:memory_in_mb]} MB of memory",
52
+ :"rasd:InstanceID"=>"5",
53
+ :"rasd:Reservation"=>"0",
54
+ :"rasd:ResourceType"=>"4",
55
+ :"rasd:VirtualQuantity"=>"#{vm[:memory_in_mb]}",
56
+ :"rasd:Weight"=>"0",
57
+ }
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,41 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve metadata associated with the vApp or VM.
6
+ #
7
+ # @deprecated Use {#get_vapp_metadata} instead.
8
+ # @todo Log deprecation warning.
9
+ #
10
+ # @param [String] id Object identifier of the vApp or VM.
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-VAppMetadata.html
15
+ # @since vCloud API version 1.5
16
+ def get_metadata(id)
17
+ require 'fog/vcloud_director/parsers/compute/metadata'
18
+
19
+ request(
20
+ :expects => 200,
21
+ :idempotent => true,
22
+ :method => 'GET',
23
+ :parser => Fog::Parsers::Compute::VcloudDirector::Metadata.new,
24
+ :path => "vApp/#{id}/metadata/"
25
+ )
26
+ end
27
+ end
28
+ class Mock
29
+ def get_metadata(id)
30
+ tags = data[:tags][id] || {}
31
+ body = {:type => 'application/vnd.vmware.vcloud.metadata+xml', :metadata => tags}
32
+ Excon::Response.new(
33
+ :status => 200,
34
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
35
+ :body => body
36
+ )
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,67 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ require 'fog/vcloud_director/parsers/compute/network'
6
+
7
+ # Retrieve an organization network.
8
+ #
9
+ # @deprecated Use {#get_network_complete} instead
10
+ #
11
+ # @param [String] id Object identifier of the network.
12
+ # @return [Excon::Response]
13
+ # * body<~Hash>:
14
+ #
15
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
16
+ #
17
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Network.html
18
+ # @since vCloud API version 0.9
19
+ def get_network(id)
20
+ Fog::Logger.deprecation("#{self} => #get_network is deprecated, use #get_network_complete instead [light_black](#{caller.first})[/]")
21
+ request(
22
+ :expects => 200,
23
+ :idempotent => true,
24
+ :method => 'GET',
25
+ :parser => Fog::Parsers::Compute::VcloudDirector::Network.new,
26
+ :path => "network/#{id}"
27
+ )
28
+ end
29
+ end
30
+
31
+ class Mock
32
+ def get_network(id)
33
+ Fog::Logger.deprecation("#{self} => #get_network is deprecated, use #get_network_complete instead [light_black](#{caller.first})[/]")
34
+ unless network = data[:networks][id]
35
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
36
+ 'This operation is denied.'
37
+ )
38
+ end
39
+
40
+ body =
41
+ {:name=>network[:name],
42
+ :href=>make_href("network/#{id}"),
43
+ :type=>"application/vnd.vmware.vcloud.orgNetwork+xml",
44
+ :id=>id,
45
+ :description=>nil,
46
+ :is_inherited=>network[:IsInherited],
47
+ :gateway=>network[:Gateway],
48
+ :netmask=>network[:Netmask],
49
+ :dns1=>network[:Dns1],
50
+ :dns2=>network[:Dns2],
51
+ :dns_suffix=>network[:DnsSuffix]}
52
+
53
+ body[:ip_ranges] = network[:IpRanges].map do |ip_range|
54
+ {:start_address=>ip_range[:StartAddress],
55
+ :end_address=>ip_range[:EndAddress]}
56
+ end
57
+
58
+ Excon::Response.new(
59
+ :status => 200,
60
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
61
+ :body => body
62
+ )
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,70 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Retrieve all RASD items that specify network card properties of a VM.
6
+ #
7
+ # @param [String] id Object identifier of the 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-NetworkCardsItemsList.html
12
+ # @since vCloud API version 0.9
13
+ def get_network_cards_items_list(id)
14
+ request(
15
+ :expects => 200,
16
+ :idempotent => true,
17
+ :method => 'GET',
18
+ :parser => Fog::ToHashDocument.new,
19
+ :path => "vApp/#{id}/virtualHardwareSection/networkCards"
20
+ )
21
+ end
22
+ end
23
+
24
+ class Mock
25
+ def get_network_cards_items_list(id)
26
+ type = 'application/vnd.vmware.vcloud.rasdItemsList+xml'
27
+
28
+ unless vm = data[:vms][id]
29
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
30
+ 'This operation is denied.'
31
+ )
32
+ end
33
+
34
+ body = {
35
+ :type => type,
36
+ :href => make_href("vApp/#{id}/virtualHardwareSection/networkCards"),
37
+ :Link => {
38
+ :rel=>"edit",
39
+ :type=>"application/vnd.vmware.vcloud.rasdItemsList+xml",
40
+ :href=>make_href("vApp/#{id}/virtualHardwareSection/networkCards"),
41
+ },
42
+ :Item => get_network_cards_rasd_items_list_body(id, vm)
43
+ }
44
+
45
+ Excon::Response.new(
46
+ :status => 200,
47
+ :headers => {'Content-Type' => "#{type};version=#{api_version}"},
48
+ :body => body
49
+ )
50
+
51
+ end
52
+
53
+ def get_network_cards_rasd_items_list_body(id, vm)
54
+ [{
55
+ :"rasd:Address" => vm[:nics][0][:mac_address],
56
+ :"rasd:AddressOnParent" => "0",
57
+ :"rasd:AutomaticAllocation" => "true",
58
+ :"rasd:Connection" => vm[:nics][0][:network_name],
59
+ :"rasd:Description" => "E1000 ethernet adapter",
60
+ :"rasd:ElementName" => "Network adapter 0",
61
+ :"rasd:InstanceID" => "1",
62
+ :"rasd:ResourceSubType" => "E1000",
63
+ :"rasd:ResourceType" => "10"
64
+ }]
65
+ end
66
+
67
+ end
68
+ end
69
+ end
70
+ end