fog-vcloud-director 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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,38 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Redirects to the URL of an entity with the given VCD ID.
6
+ #
7
+ # @param [String] id
8
+ # @return [Excon:Response]
9
+ # * body<~Hash>:
10
+ # * :href<~String> - The URI of the entity.
11
+ # * :type<~String> - The MIME type of the entity.
12
+ # * :id<~String> - The entity identifier, expressed in URN format.
13
+ # The value of this attribute uniquely identifies the entity,
14
+ # persists for the life of the entity, and is never reused.
15
+ # * :name<~String> - The name of the entity.
16
+ # * :Link<~Array<Hash>]:
17
+ # * :href<~String> - Contains the URI to the linked entity.
18
+ # * :type<~String> - Contains the type of the linked entity.
19
+ # * :rel<~String> - Defines the relationship of the link to the
20
+ # object that contains it.
21
+ #
22
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Entity.html
23
+ # @since vCloud API version 1.5
24
+ def get_entity(id)
25
+ response = request(
26
+ :expects => 200,
27
+ :idempotent => true,
28
+ :method => 'GET',
29
+ :parser => Fog::ToHashDocument.new,
30
+ :path => "entity/#{id}"
31
+ )
32
+ ensure_list! response.body, :Link
33
+ response
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,736 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # REST API General queries handler.
6
+ #
7
+ # @param [String] type The type of the query. Type names are
8
+ # case-sensitive. You can retrieve a summary list of all typed
9
+ # queries types accessible to the currently authenticated user by
10
+ # making a request with type=nil.
11
+ # @param [Hash] options
12
+ # @option options [String] :sortAsc (Sorted by database ID) Sort
13
+ # results by attribute-name in ascending order. attribute-name cannot
14
+ # include metadata.
15
+ # @option options [String] :sortDesc (Sorted by database ID) Sort
16
+ # results by attribute-name in descending order. attribute-name
17
+ # cannot include metadata.
18
+ # @option options [Integer] :page (1) If the query results span
19
+ # multiple pages, return this page.
20
+ # @option options [Integer] :pageSize (25) Number of results per page,
21
+ # to a maximum of 128.
22
+ # @option options [String] :format (records) One of the following
23
+ # types:
24
+ # - *references* Returns a reference to each object, including its
25
+ # :name, :type, and :href attributes.
26
+ # - *records* Returns all database records for each object, with each
27
+ # record as an attribute.
28
+ # - *idrecords* Identical to the records format, except that object
29
+ # references are returned in :id format rather than :href format.
30
+ # @option options [Array<String>] :fields (all static attribute names)
31
+ # List of attribute names or metadata key names to return.
32
+ # @option options [Integer] :offset (0) Integer value specifying the
33
+ # first record to return. Record numbers < offset are not returned.
34
+ # @option options [String] :filter (none) Filter expression.
35
+ # @return [Excon::Response] if type is specified.
36
+ # * hash<~Hash>:
37
+ # * :href<~String> - The URI of the entity.
38
+ # * :type<~String> - The MIME type of the entity.
39
+ # * :name<~String> - Query name that generated this result set.
40
+ # * :page<~String> - Page of the result set that this container
41
+ # holds. The first page is page number 1.
42
+ # * :pageSize<~String> - Page size, as a number of records or
43
+ # references.
44
+ # * :total<~String> - Total number of records or references in the
45
+ # container.
46
+ # * :Link<~Array<Hash>>:
47
+ # * :href<~String> - Contains the URI to the entity.
48
+ # * :type<~String> - Contains the type of the entity.
49
+ # * :rel<~String> - Defines the relationship of the link to the
50
+ # object that contains it.
51
+ # * :Record<~Array<Hash>> - The name and content of this item
52
+ # varies according to the type and format of the query.
53
+ # * :firstPage<~Integer> - First page in the result set.
54
+ # * :previousPage<~Integer> - Previous page in the result set.
55
+ # * :nextPage<~Integer> - Next page in the result set.
56
+ # * :lastPage<~Integer> - Last page in the result set.
57
+ # @return [Excon::Response] if type is nil.
58
+ # * hash<~Hash>:
59
+ # * :href<~String> - The URI of the entity.
60
+ # * :type<~String> - The MIME type of the entity.
61
+ # * :Link<~Array<Hash>>:
62
+ # * :href<~String> - Contains the URI to the entity.
63
+ # * :name<~String> - Contains the name of the entity.
64
+ # * :type<~String> - Contains the type of the entity.
65
+ # * :rel<~String> - Defines the relationship of the link to the
66
+ # object that contains it.
67
+ #
68
+ # @see http://pubs.vmware.com/vcd-55/topic/com.vmware.vcloud.api.reference.doc_55/doc/operations/GET-ExecuteQuery.html
69
+ # @since vCloud API version 1.5
70
+ def get_execute_query(type=nil, options={})
71
+ if type.nil?
72
+ response = request(
73
+ :expects => 200,
74
+ :idempotent => true,
75
+ :method => 'GET',
76
+ :parser => Fog::ToHashDocument.new,
77
+ :path => 'query'
78
+ )
79
+ else
80
+ query = {
81
+ :type => type,
82
+ }
83
+
84
+ query[:sortAsc] = options[:sortAsc] if options[:sortAsc]
85
+ query[:sortDesc] = options[:sortDesc] if options[:sortDesc]
86
+ query[:page] = options[:page] if options[:page]
87
+ query[:pageSize] = options[:pageSize] if options[:pageSize]
88
+ query[:format] = options[:format] if options[:format]
89
+ query[:fields] = Array(options[:fields]).join(',') if options[:fields]
90
+ query[:offset] = options[:offset] if options[:offset]
91
+ query[:filter] = options[:filter] if options[:filter]
92
+
93
+ response = request(
94
+ :expects => 200,
95
+ :idempotent => true,
96
+ :method => 'GET',
97
+ :parser => Fog::ToHashDocument.new,
98
+ :path => 'query',
99
+ :query => query.map {|k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&').gsub('%3D', '=').gsub('%3B', ';')
100
+ )
101
+ ensure_list! response.body, :Link
102
+ # TODO: figure out the right key (this isn't it)
103
+ #ensure_list! response.body,
104
+ # response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
105
+ # "#{response.body[:name]}Reference".to_sym :
106
+ # "#{response.body[:name]}Record".to_sym
107
+
108
+ %w[firstPage previousPage nextPage lastPage].each do |rel|
109
+ if link = response.body[:Link].find {|l| l[:rel] == rel}
110
+ href = Nokogiri::XML.fragment(link[:href])
111
+ query = CGI.parse(URI.parse(href.text).query)
112
+ response.body[rel.to_sym] = query['page'].first.to_i
113
+ response.body[:pageSize] ||= query['pageSize'].first.to_i
114
+ end
115
+ end
116
+
117
+ response
118
+ end
119
+ end
120
+ end
121
+
122
+ class Mock
123
+ def get_execute_query(type=nil, options={})
124
+ unless options[:fields].nil?
125
+ Fog::Mock.not_implemented("Fields are not yet implemented in get_execute_query Mock for #{type}")
126
+ end
127
+
128
+ unless options[:format].nil? || options[:format] == 'records'
129
+ Fog::Mock.not_implemented("Formats #{options[:format]} is not yet implemented in get_execute_query Mock for #{type}")
130
+ end
131
+
132
+ # NB: default is to sort by 'Database ID' (uuid?). Does this matter?
133
+ unless options[:sortAsc].nil? && options[:sortDesc].nil?
134
+ Fog::Mock.not_implemented("Sorting by field is not yet implemented in get_execute_query Mock for #{type}")
135
+ end
136
+
137
+ # NB: default offset is 0
138
+ unless options[:offset].nil?
139
+ Fog::Mock.not_implemented("Offset results are not yet implemented in get_execute_query Mock for #{type}")
140
+ end
141
+
142
+ # NB: default page is 1
143
+ if options.key?(:page) && options[:page].to_i != 1
144
+ Fog::Mock.not_implemented("Paginated results are not yet implemented in get_execute_query Mock for #{type}")
145
+ end
146
+
147
+ # NB: default pageSize is 25
148
+ unless options[:pageSize].nil?
149
+ Fog::Mock.not_implemented("Paginated results are not yet implemented in get_execute_query Mock for #{type}")
150
+ end
151
+
152
+ if type.nil?
153
+ body = all_types
154
+ else
155
+ body = fetch_items(type, options)
156
+ end
157
+
158
+ Excon::Response.new(
159
+ :status => 200,
160
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
161
+ :body => body
162
+ )
163
+ end
164
+
165
+ private
166
+
167
+ def fetch_items(type, opts)
168
+ if opts.key?(:filter) && opts[:filter] =~ /^name==([^;,]+)$/
169
+ name = $1
170
+ elsif type == 'vAppTemplate' && opts.key?(:filter) &&
171
+ opts[:filter] =~ /^name==([^;,]+);catalogName==([^;,]+)$/ #TODO also match in other order
172
+ name = $1
173
+ catalog_name = $2
174
+ elsif opts.key?(:filter)
175
+ Fog::Mock.not_implemented("Complex filters are not yet implemented in get_execute_query Mock for #{type}: #{opts[:filter]}")
176
+ end
177
+
178
+ body = {
179
+ :xmlns=>xmlns,
180
+ :xmlns_xsi=>xmlns_xsi,
181
+ :href=>make_href('query'),
182
+ :name=>type,
183
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
184
+ :xsi_schemaLocation=>xsi_schema_location,
185
+ }
186
+
187
+ records = []
188
+ record_type = nil
189
+
190
+ if type == 'orgVdc'
191
+ record_type = :OrgVdcRecord
192
+ vdc_id = data[:vdcs].keys[0]
193
+ vdc_name = data[:vdcs][vdc_id][:name]
194
+ records = [{
195
+ :storageUsedMB=>"123967",
196
+ :storageLimitMB=>"8388608",
197
+ :storageAllocationMB=>"0",
198
+ :status=>"READY",
199
+ :orgName=>"orgName",
200
+ :name=>vdc_name,
201
+ :memoryUsedMB=>"0",
202
+ :memoryLimitMB=>"0",
203
+ :memoryAllocationMB=>"0",
204
+ :isSystemVdc=>"false",
205
+ :isEnabled=>"true",
206
+ :isBusy=>"false",
207
+ :href=>make_href("vdc/#{vdc_id}"),
208
+ }]
209
+ body[:page] = 1.to_s # TODO: Support pagination
210
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
211
+ body[:total] = records.size.to_s
212
+ body[record_type] = records
213
+
214
+ elsif type == 'orgVdcNetwork'
215
+ record_type = :OrgVdcNetworkRecords
216
+ data_type = :networks
217
+ data[data_type].each do |id, dr|
218
+ r = {}
219
+ if name.nil? || dr[:name] == name
220
+ vdc_id = dr[:vdc]
221
+ if data[:vdcs][vdc_id] && data[:vdcs][vdc_id].key?(:name)
222
+ r[:vdcName] = data[:vdcs][vdc_id][:name]
223
+ end
224
+ r[:name] = dr[:name]
225
+ r[:vdc] = make_href("vdc/#{vdc_id}") if vdc_id
226
+ r[:href] = make_href("admin/network/#{id}")
227
+ mapping = {
228
+ :description => :Description,
229
+ :netmask => :Netmask,
230
+ :linkType => :LinkType,
231
+ :dns1 => :Dns1,
232
+ :dns2 => :Dns2,
233
+ :dnsSuffix => :DnsSuffix,
234
+ :defaultGateway => :Gateway,
235
+ :isShared => :IsShared,
236
+ :isBusy => :IsBusy,
237
+ :isIpScopeInherited => :IsIpScopeInherited,
238
+ }
239
+
240
+ mapping.each do |k,v|
241
+ r[k] = dr[v] if dr.key?(v)
242
+ end
243
+
244
+ records << r
245
+ end
246
+ end
247
+ body[:page] = 1.to_s # TODO: Support pagination
248
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
249
+ body[:total] = records.size.to_s
250
+ body[record_type] = records
251
+
252
+ elsif type == 'edgeGateway'
253
+ record_type = :EdgeGatewayRecord
254
+ edge_gateway_id = data[:edge_gateways].keys[0]
255
+ vdc_id = data[:edge_gateways][edge_gateway_id][:vdc]
256
+ records = [{
257
+ :vdc=>make_href("vdc/#{vdc_id}"),
258
+ :numberOfOrgNetworks=>"1",
259
+ :numberOfExtNetworks=>"1",
260
+ :name=>"Test EdgeGateway Name",
261
+ :isBusy=>"false",
262
+ :haStatus=>"DISABLED",
263
+ :gatewayStatus=>"READY",
264
+ :href=>make_href("edgeGateway/#{edge_gateway_id}"),
265
+ :taskStatus=>"success",
266
+ :taskOperation=>"networkConfigureEdgeGatewayServices",
267
+ :task=>make_href("task/#{uuid}"),
268
+ :taskDetails=>" "
269
+ }]
270
+ body[:page] = 1.to_s # TODO: Support pagination
271
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
272
+ body[:total] = records.size.to_s
273
+ body[record_type] = records
274
+
275
+ elsif type == 'vAppTemplate'
276
+ record_type = :VAappTemplateRecord
277
+ records = [{
278
+ :vdcName=>"Bogus vDC",
279
+ :vdc=>make_href("vdc/#{uuid}"),
280
+ :storageProfileName=>"*",
281
+ :status=>"RESOLVED",
282
+ :ownerName=>"system",
283
+ :org=> make_href("org/#{data[:org][:uuid]}"),
284
+ :name=> name,
285
+ :isPublished=>"true",
286
+ :isGoldMaster=>"false",
287
+ :isExpired=>"false",
288
+ :isEnabled=>"true",
289
+ :isDeployed=>"false",
290
+ :isBusy=>"false",
291
+ :creationDate=>"2013-09-19T22:55:30.257+01:00",
292
+ :catalogName=> catalog_name,
293
+ :href=> make_href("vAppTemplate/vappTemplate-#{uuid}"),
294
+ :honorBootOrder=>"false",
295
+ :isVdcEnabled=>"true",
296
+ :isInCatalog=>"true",
297
+ :cpuAllocationMhz=>"8",
298
+ :cpuAllocationInMhz=>"16000",
299
+ :storageKB=>"52428800",
300
+ :numberOfShadowVMs=>"0",
301
+ :numberOfVMs=>"1",
302
+ :isAutoDeleteNotified=>"false",
303
+ :numberOfCpus=>"8",
304
+ :isAutoUndeployNotified=>"false",
305
+ :memoryAllocationMB=>"32768"
306
+ }]
307
+ body[:page] = 1.to_s # TODO: Support pagination
308
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
309
+ body[:total] = records.size.to_s
310
+ body[record_type] = records
311
+
312
+ elsif type == 'vApp'
313
+ record_type = :VAppRecord
314
+ all_records = data[:vapps].map do |vapp_id, vapp|
315
+ {
316
+ :vdcName => data.fetch(:vdcs).fetch(vapp[:vdc_id]).fetch(:name),
317
+ :vdc => make_href("vdc/#{vapp[:vdc_id]}"),
318
+ :storageProfileName => "*",
319
+ :ownerName => "system",
320
+ :name => vapp.fetch(:name),
321
+ :status => 'POWERED_OFF',
322
+ :isInMaintenanceMode=> 'false',
323
+ :isPublic => 'false',
324
+ :isExpired =>"false",
325
+ :isEnabled =>"true",
326
+ :isDeployed =>"false",
327
+ :isBusy => "false",
328
+ :pvdcHighestSupportedHardwareVersion => '8',
329
+ :lowestHardwareVersionInVApp => '8',
330
+ :creationDate => "2013-09-19T22:55:30.257+01:00",
331
+ :href => make_href("vApp/#{vapp_id}"),
332
+ :honorBootOrder => "false",
333
+ :isVdcEnabled => "true",
334
+ :cpuAllocationMhz => "8",
335
+ :cpuAllocationInMhz => "16000",
336
+ :storageKB => "52428800",
337
+ :numberOfVMs => "1",
338
+ :isAutoDeleteNotified => "false",
339
+ :numberOfCpus => "8",
340
+ :isAutoUndeployNotified => "false",
341
+ :memoryAllocationMB => "32768",
342
+ :task => make_href("task/#{uuid}"),
343
+ :taskStatusName => 'vdcInstantiateVapp',
344
+ :taskStatus => 'success',
345
+ :taskDetails => " ",
346
+ }
347
+ end
348
+ records = all_records.select do |record|
349
+ record[:name] == name
350
+ end
351
+
352
+ body[:page] = 1.to_s # TODO: Support pagination
353
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
354
+ body[:total] = records.size.to_s
355
+ body[record_type] = records
356
+
357
+ elsif type == 'task'
358
+
359
+ record_type = :TaskRecord
360
+ data_type = :tasks
361
+ data[data_type].each do |id, dr|
362
+ r = {}
363
+ if name.nil? || dr.fetch(:operation_name) == name
364
+ r[:name] = dr.fetch(:operation_name)
365
+ r[:href] = make_href("task/#{id}")
366
+ if dr.key?(:end_time)
367
+ r[:endDate] = dr.fetch(:end_time).strftime('%Y-%m-%dT%H:%M:%S%z')
368
+ else
369
+ r[:endDate] = nil
370
+ end
371
+ if dr.key?(:start_time)
372
+ r[:startDate] = dr.fetch(:start_time).strftime('%Y-%m-%dT%H:%M:%S%z')
373
+ else
374
+ r[:startDate] = nil
375
+ end
376
+ r[:status] = dr.fetch(:status)
377
+ r[:serviceNamespace] = 'com.vmware.vcloud'
378
+ r[:ownerName] = '000.0.000000'
379
+ r[:orgName] = data.fetch(:org).fetch(:name)
380
+ r[:org] = make_href("org/#{data[:org][:uuid]}")
381
+ r[:objectType] = dr.fetch(:owner).fetch(:type).split(/\./).last.split(/\+/).first
382
+ r[:objectName] = dr.fetch(:owner).fetch(:name, '') # objectName is optional
383
+ r[:object] = dr.fetch(:owner).fetch(:href)
384
+ r[:details] = '! []'
385
+
386
+ records << r
387
+ end
388
+ end
389
+
390
+ else
391
+ Fog::Mock.not_implemented("No 'get by name' get_execute_query Mock for #{type} (#{name})")
392
+ end
393
+
394
+ body[:page] = 1.to_s # TODO: Support pagination
395
+ body[:pageSize] = records.size.to_s # TODO: Support pagination
396
+ body[:total] = records.size.to_s
397
+ body[record_type] = records
398
+
399
+ body
400
+ end
401
+
402
+ def all_types
403
+ {:xmlns=>xmlns,
404
+ :xmlns_xsi=>xmlns_xsi,
405
+ :type=>"application/vnd.vmware.vcloud.query.queryList+xml",
406
+ :href=>make_href('query'),
407
+ :xsi_schemaLocation=>xsi_schema_location,
408
+ :Link=>
409
+ [{:rel=>"down",
410
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
411
+ :name=>"organization",
412
+ :href=>make_href('query?type=organization&#38;format=references')},
413
+ {:rel=>"down",
414
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
415
+ :name=>"organization",
416
+ :href=>make_href('query?type=organization&#38;format=records')},
417
+ {:rel=>"down",
418
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
419
+ :name=>"organization",
420
+ :href=>make_href('query?type=organization&#38;format=idrecords')},
421
+ {:rel=>"down",
422
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
423
+ :name=>"orgVdc",
424
+ :href=>make_href('query?type=orgVdc&#38;format=references')},
425
+ {:rel=>"down",
426
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
427
+ :name=>"orgVdc",
428
+ :href=>make_href('query?type=orgVdc&#38;format=records')},
429
+ {:rel=>"down",
430
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
431
+ :name=>"orgVdc",
432
+ :href=>make_href('query?type=orgVdc&#38;format=idrecords')},
433
+ {:rel=>"down",
434
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
435
+ :name=>"media",
436
+ :href=>make_href('query?type=media&#38;format=references')},
437
+ {:rel=>"down",
438
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
439
+ :name=>"media",
440
+ :href=>make_href('query?type=media&#38;format=records')},
441
+ {:rel=>"down",
442
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
443
+ :name=>"media",
444
+ :href=>make_href('query?type=media&#38;format=idrecords')},
445
+ {:rel=>"down",
446
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
447
+ :name=>"vAppTemplate",
448
+ :href=>make_href('query?type=vAppTemplate&#38;format=references')},
449
+ {:rel=>"down",
450
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
451
+ :name=>"vAppTemplate",
452
+ :href=>make_href('query?type=vAppTemplate&#38;format=records')},
453
+ {:rel=>"down",
454
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
455
+ :name=>"vAppTemplate",
456
+ :href=>make_href('query?type=vAppTemplate&#38;format=idrecords')},
457
+ {:rel=>"down",
458
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
459
+ :name=>"vApp",
460
+ :href=>make_href('query?type=vApp&#38;format=references')},
461
+ {:rel=>"down",
462
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
463
+ :name=>"vApp",
464
+ :href=>make_href('query?type=vApp&#38;format=records')},
465
+ {:rel=>"down",
466
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
467
+ :name=>"vApp",
468
+ :href=>make_href('query?type=vApp&#38;format=idrecords')},
469
+ {:rel=>"down",
470
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
471
+ :name=>"vm",
472
+ :href=>make_href('query?type=vm&#38;format=references')},
473
+ {:rel=>"down",
474
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
475
+ :name=>"vm",
476
+ :href=>make_href('query?type=vm&#38;format=records')},
477
+ {:rel=>"down",
478
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
479
+ :name=>"vm",
480
+ :href=>make_href('query?type=vm&#38;format=idrecords')},
481
+ {:rel=>"down",
482
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
483
+ :name=>"orgNetwork",
484
+ :href=>make_href('query?type=orgNetwork&#38;format=references')},
485
+ {:rel=>"down",
486
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
487
+ :name=>"orgNetwork",
488
+ :href=>make_href('query?type=orgNetwork&#38;format=records')},
489
+ {:rel=>"down",
490
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
491
+ :name=>"orgNetwork",
492
+ :href=>make_href('query?type=orgNetwork&#38;format=idrecords')},
493
+ {:rel=>"down",
494
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
495
+ :name=>"vAppNetwork",
496
+ :href=>make_href('query?type=vAppNetwork&#38;format=references')},
497
+ {:rel=>"down",
498
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
499
+ :name=>"vAppNetwork",
500
+ :href=>make_href('query?type=vAppNetwork&#38;format=records')},
501
+ {:rel=>"down",
502
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
503
+ :name=>"vAppNetwork",
504
+ :href=>make_href('query?type=vAppNetwork&#38;format=idrecords')},
505
+ {:rel=>"down",
506
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
507
+ :name=>"catalog",
508
+ :href=>make_href('query?type=catalog&#38;format=references')},
509
+ {:rel=>"down",
510
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
511
+ :name=>"catalog",
512
+ :href=>make_href('query?type=catalog&#38;format=records')},
513
+ {:rel=>"down",
514
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
515
+ :name=>"catalog",
516
+ :href=>make_href('query?type=catalog&#38;format=idrecords')},
517
+ {:rel=>"down",
518
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
519
+ :name=>"group",
520
+ :href=>make_href('query?type=group&#38;format=references')},
521
+ {:rel=>"down",
522
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
523
+ :name=>"group",
524
+ :href=>make_href('query?type=group&#38;format=records')},
525
+ {:rel=>"down",
526
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
527
+ :name=>"group",
528
+ :href=>make_href('query?type=group&#38;format=idrecords')},
529
+ {:rel=>"down",
530
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
531
+ :name=>"user",
532
+ :href=>make_href('query?type=user&#38;format=references')},
533
+ {:rel=>"down",
534
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
535
+ :name=>"user",
536
+ :href=>make_href('query?type=user&#38;format=records')},
537
+ {:rel=>"down",
538
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
539
+ :name=>"user",
540
+ :href=>make_href('query?type=user&#38;format=idrecords')},
541
+ {:rel=>"down",
542
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
543
+ :name=>"strandedUser",
544
+ :href=>make_href('query?type=strandedUser&#38;format=references')},
545
+ {:rel=>"down",
546
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
547
+ :name=>"strandedUser",
548
+ :href=>make_href('query?type=strandedUser&#38;format=records')},
549
+ {:rel=>"down",
550
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
551
+ :name=>"strandedUser",
552
+ :href=>make_href('query?type=strandedUser&#38;format=idrecords')},
553
+ {:rel=>"down",
554
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
555
+ :name=>"role",
556
+ :href=>make_href('query?type=role&#38;format=references')},
557
+ {:rel=>"down",
558
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
559
+ :name=>"role",
560
+ :href=>make_href('query?type=role&#38;format=records')},
561
+ {:rel=>"down",
562
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
563
+ :name=>"role",
564
+ :href=>make_href('query?type=role&#38;format=idrecords')},
565
+ {:rel=>"down",
566
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
567
+ :name=>"allocatedExternalAddress",
568
+ :href=>make_href('query?type=allocatedExternalAddress&#38;format=records')},
569
+ {:rel=>"down",
570
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
571
+ :name=>"allocatedExternalAddress",
572
+ :href=>make_href('query?type=allocatedExternalAddress&#38;format=idrecords')},
573
+ {:rel=>"down",
574
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
575
+ :name=>"event",
576
+ :href=>make_href('query?type=event&#38;format=records')},
577
+ {:rel=>"down",
578
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
579
+ :name=>"event",
580
+ :href=>make_href('query?type=event&#38;format=idrecords')},
581
+ {:rel=>"down",
582
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
583
+ :name=>"right",
584
+ :href=>make_href('query?type=right&#38;format=references')},
585
+ {:rel=>"down",
586
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
587
+ :name=>"right",
588
+ :href=>make_href('query?type=right&#38;format=records')},
589
+ {:rel=>"down",
590
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
591
+ :name=>"right",
592
+ :href=>make_href('query?type=right&#38;format=idrecords')},
593
+ {:rel=>"down",
594
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
595
+ :name=>"vAppOrgNetworkRelation",
596
+ :href=>make_href('query?type=vAppOrgNetworkRelation&#38;format=references')},
597
+ {:rel=>"down",
598
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
599
+ :name=>"vAppOrgNetworkRelation",
600
+ :href=>make_href('query?type=vAppOrgNetworkRelation&#38;format=records')},
601
+ {:rel=>"down",
602
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
603
+ :name=>"vAppOrgNetworkRelation",
604
+ :href=>make_href('query?type=vAppOrgNetworkRelation&#38;format=idrecords')},
605
+ {:rel=>"down",
606
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
607
+ :name=>"catalogItem",
608
+ :href=>make_href('query?type=catalogItem&#38;format=references')},
609
+ {:rel=>"down",
610
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
611
+ :name=>"catalogItem",
612
+ :href=>make_href('query?type=catalogItem&#38;format=records')},
613
+ {:rel=>"down",
614
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
615
+ :name=>"catalogItem",
616
+ :href=>make_href('query?type=catalogItem&#38;format=idrecords')},
617
+ {:rel=>"down",
618
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
619
+ :name=>"task",
620
+ :href=>make_href('query?type=task&#38;format=references')},
621
+ {:rel=>"down",
622
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
623
+ :name=>"task",
624
+ :href=>make_href('query?type=task&#38;format=records')},
625
+ {:rel=>"down",
626
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
627
+ :name=>"task",
628
+ :href=>make_href('query?type=task&#38;format=idrecords')},
629
+ {:rel=>"down",
630
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
631
+ :name=>"disk",
632
+ :href=>make_href('query?type=disk&#38;format=references')},
633
+ {:rel=>"down",
634
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
635
+ :name=>"disk",
636
+ :href=>make_href('query?type=disk&#38;format=records')},
637
+ {:rel=>"down",
638
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
639
+ :name=>"disk",
640
+ :href=>make_href('query?type=disk&#38;format=idrecords')},
641
+ {:rel=>"down",
642
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
643
+ :name=>"vmDiskRelation",
644
+ :href=>make_href('query?type=vmDiskRelation&#38;format=records')},
645
+ {:rel=>"down",
646
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
647
+ :name=>"vmDiskRelation",
648
+ :href=>make_href('query?type=vmDiskRelation&#38;format=idrecords')},
649
+ {:rel=>"down",
650
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
651
+ :name=>"service",
652
+ :href=>make_href('query?type=service&#38;format=references')},
653
+ {:rel=>"down",
654
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
655
+ :name=>"service",
656
+ :href=>make_href('query?type=service&#38;format=records')},
657
+ {:rel=>"down",
658
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
659
+ :name=>"service",
660
+ :href=>make_href('query?type=service&#38;format=idrecords')},
661
+ {:rel=>"down",
662
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
663
+ :name=>"orgVdcStorageProfile",
664
+ :href=>make_href('query?type=orgVdcStorageProfile&#38;format=references')},
665
+ {:rel=>"down",
666
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
667
+ :name=>"orgVdcStorageProfile",
668
+ :href=>make_href('query?type=orgVdcStorageProfile&#38;format=records')},
669
+ {:rel=>"down",
670
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
671
+ :name=>"orgVdcStorageProfile",
672
+ :href=>make_href('query?type=orgVdcStorageProfile&#38;format=idrecords')},
673
+ {:rel=>"down",
674
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
675
+ :name=>"apiDefinition",
676
+ :href=>make_href('query?type=apiDefinition&#38;format=references')},
677
+ {:rel=>"down",
678
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
679
+ :name=>"apiDefinition",
680
+ :href=>make_href('query?type=apiDefinition&#38;format=records')},
681
+ {:rel=>"down",
682
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
683
+ :name=>"apiDefinition",
684
+ :href=>make_href('query?type=apiDefinition&#38;format=idrecords')},
685
+ {:rel=>"down",
686
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
687
+ :name=>"fileDescriptor",
688
+ :href=>make_href('query?type=fileDescriptor&#38;format=records')},
689
+ {:rel=>"down",
690
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
691
+ :name=>"fileDescriptor",
692
+ :href=>make_href('query?type=fileDescriptor&#38;format=idrecords')},
693
+ {:rel=>"down",
694
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
695
+ :name=>"edgeGateway",
696
+ :href=>make_href('query?type=edgeGateway&#38;format=references')},
697
+ {:rel=>"down",
698
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
699
+ :name=>"edgeGateway",
700
+ :href=>make_href('query?type=edgeGateway&#38;format=records')},
701
+ {:rel=>"down",
702
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
703
+ :name=>"edgeGateway",
704
+ :href=>make_href('query?type=edgeGateway&#38;format=idrecords')},
705
+ {:rel=>"down",
706
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
707
+ :name=>"orgVdcNetwork",
708
+ :href=>make_href('query?type=orgVdcNetwork&#38;format=references')},
709
+ {:rel=>"down",
710
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
711
+ :name=>"orgVdcNetwork",
712
+ :href=>make_href('query?type=orgVdcNetwork&#38;format=records')},
713
+ {:rel=>"down",
714
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
715
+ :name=>"orgVdcNetwork",
716
+ :href=>make_href('query?type=orgVdcNetwork&#38;format=idrecords')},
717
+ {:rel=>"down",
718
+ :type=>"application/vnd.vmware.vcloud.query.references+xml",
719
+ :name=>"vAppOrgVdcNetworkRelation",
720
+ :href=>make_href('query?type=vAppOrgVdcNetworkRelation&#38;format=references')},
721
+ {:rel=>"down",
722
+ :type=>"application/vnd.vmware.vcloud.query.records+xml",
723
+ :name=>"vAppOrgVdcNetworkRelation",
724
+ :href=>make_href('query?type=vAppOrgVdcNetworkRelation&#38;format=records')},
725
+ {:rel=>"down",
726
+ :type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
727
+ :name=>"vAppOrgVdcNetworkRelation",
728
+ :href=>make_href('query?type=vAppOrgVdcNetworkRelation&#38;format=idrecords')}
729
+ ]
730
+ }
731
+ end
732
+
733
+ end
734
+ end
735
+ end
736
+ end