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,62 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Create a copy of a vApp.
6
+ #
7
+ # The response includes a Task element. You can monitor the task to to
8
+ # track the creation of the vApp template.
9
+ #
10
+ # @param [String] vdc_id Object identifier of the vDC.
11
+ # @param [String] name Name of the new vApp.
12
+ # @param [String] source_id Object identifier of the source vApp.
13
+ # @param [Hash] options
14
+ # @option options [Boolean] :deploy True if the vApp should be deployed
15
+ # at instantiation. Defaults to true.
16
+ # @option options [Boolean] :powerOn True if the vApp should be
17
+ # powered-on at instantiation. Defaults to true.
18
+ # @option options [String] :Description Optional description.
19
+ # @option options [Hash] :InstantiationParams Instantiation parameters
20
+ # for the composed vApp.
21
+ # @option options [Boolean] :IsSourceDelete Set to true to delete the
22
+ # source object after the operation completes.
23
+ # @return [Excon::Response]
24
+ # * body<~Hash>:
25
+ #
26
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CloneVApp.html
27
+ # @since vCloud API version 0.9
28
+ def post_clone_vapp(vdc_id, name, source_id, options={})
29
+ body = Nokogiri::XML::Builder.new do
30
+ attrs = {
31
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
32
+ :name => name
33
+ }
34
+ attrs[:deploy] = options[:deploy] if options.key?(:deploy)
35
+ attrs[:powerOn] = options[:powerOn] if options.key?(:powerOn)
36
+ CloneVAppParams(attrs) {
37
+ if options.key?(:Description)
38
+ Description options[:Description]
39
+ end
40
+ InstantiationParams {
41
+ # TODO
42
+ }
43
+ Source(:href => "#{end_point}vApp/#{source_id}")
44
+ if options.key?(:IsSourceDelete)
45
+ IsSourceDelete options[:IsSourceDelete]
46
+ end
47
+ }
48
+ end.to_xml
49
+
50
+ request(
51
+ :body => body,
52
+ :expects => 201,
53
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.cloneVAppParams+xml'},
54
+ :method => 'POST',
55
+ :parser => Fog::ToHashDocument.new,
56
+ :path => "vdc/#{vdc_id}/action/cloneVApp"
57
+ )
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,52 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Create a copy of a vApp template.
6
+ #
7
+ # The response includes a Task element. You can monitor the task to to
8
+ # track the creation of the vApp template.
9
+ #
10
+ # @param [String] vdc_id Object identifier of the vDC.
11
+ # @param [String] name Name of the new vApp template.
12
+ # @param [String] source_id Object identifier of the source vApp
13
+ # template.
14
+ # @param [Hash] options
15
+ # @option options [String] :Description Optional description.
16
+ # @option options [Boolean] :IsSourceDelete Set to true to delete the
17
+ # source object after the operation completes.
18
+ # @return [Excon::Response]
19
+ # * body<~Hash>:
20
+ #
21
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CloneVAppTemplate.html
22
+ # @since vCloud API version 0.9
23
+ def post_clone_vapp_template(vdc_id, name, source_id, options={})
24
+ body = Nokogiri::XML::Builder.new do
25
+ attrs = {
26
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
27
+ :name => name
28
+ }
29
+ CloneVAppTemplateParams(attrs) {
30
+ if options.key?(:Description)
31
+ Description options[:Description]
32
+ end
33
+ Source(:href => "#{end_point}vAppTemplate/#{source_id}")
34
+ if options.key?(:IsSourceDelete)
35
+ IsSourceDelete options[:IsSourceDelete]
36
+ end
37
+ }
38
+ end.to_xml
39
+
40
+ request(
41
+ :body => body,
42
+ :expects => 201,
43
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.cloneVAppTemplateParams+xml'},
44
+ :method => 'POST',
45
+ :parser => Fog::ToHashDocument.new,
46
+ :path => "vdc/#{vdc_id}/action/cloneVAppTemplate"
47
+ )
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,45 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ require 'fog/vcloud_director/generators/compute/compose_vapp'
6
+ # Compose a vApp from existing virtual machines.
7
+ #
8
+ # This operation is asynchronous and returns a task that you can
9
+ # monitor to track the progress of the request.
10
+ #
11
+ # @param [String] id Object identifier of the vdc.
12
+ # @param [Hash] options
13
+ # @option options [Boolean] :powerOn Used to specify whether to power
14
+ # on vApp on deployment, if not set default value is true.
15
+ # @option options [Boolean] :deploy Used to specify whether to deploy
16
+ # the vApp, if not set default value is true.
17
+ # @option options [String] :name Used to identify the vApp.
18
+ # @option options [String] :networkName Used to conect the vApp and VMs to a VDC network, which has
19
+ # to exist beforehand.
20
+ # @option options [String] :networkHref Used to conect the vApp and VMs to a VDC network, which has
21
+ # to exist beforehand.
22
+ # @option options [String] :fenceMode Used to configure the network Mode (briged, isolated).
23
+ # @option options [String] :source_vms Array with VMs to be used to compose the vApp, each containing -
24
+ # :name, :href, :isGuestCustomizationEnabled, :computer_name and :ipAllocationMode (e.g. 'DHCP').
25
+ # @return [Excon::Response]
26
+ # * body<~Hash>:
27
+ #
28
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ComposeVApp.html
29
+ # @since vCloud API version 0.9
30
+ def post_compose_vapp(id, options={})
31
+ body = Fog::Generators::Compute::VcloudDirector::ComposeVapp.new(options).generate_xml
32
+
33
+ request(
34
+ :body => body,
35
+ :expects => 201,
36
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.composeVAppParams+xml'},
37
+ :method => 'POST',
38
+ :parser => Fog::ToHashDocument.new,
39
+ :path => "vdc/#{id}/action/composeVApp"
40
+ )
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,73 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ require 'fog/vcloud_director/generators/compute/edge_gateway_service_configuration'
6
+
7
+ # Configure edge gateway services like firewall, nat and load balancer.
8
+ #
9
+ # The response includes a Task element. You can monitor the task to
10
+ # track the configuration of edge gateway services.
11
+ #
12
+ # @param [String] id Object identifier of the edge gateway.
13
+ # @param [Hash] configuration
14
+ # @configuration firewall_service [Hash] - configurations for firewall service.
15
+ # @configuration nat_service [Hash] - configurations for NAT network service.
16
+ # @configuration load_balancer_service [Hash] - configurations for load balancer service
17
+ # @return [Excon::Response]
18
+ # * body<~Hash>:
19
+ # @see https://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ConfigureEdgeGatewayServices.html
20
+ # vCloud API Documentaion
21
+ # @since vCloud API version 5.1
22
+ def post_configure_edge_gateway_services(id, configuration)
23
+ body = Fog::Generators::Compute::VcloudDirector::EdgeGatewayServiceConfiguration.new(configuration).generate_xml
24
+
25
+ request(
26
+ :body => body,
27
+ :expects => 202,
28
+ :headers => {'Content-Type' => 'application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml'},
29
+ :method => 'POST',
30
+ :parser => Fog::ToHashDocument.new,
31
+ :path => "admin/edgeGateway/#{id}/action/configureServices"
32
+ )
33
+ end
34
+ end
35
+
36
+ class Mock
37
+ def post_configure_edge_gateway_services(id, configuration)
38
+ unless data[:edge_gateways][id]
39
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
40
+ "No access to entity \"(com.vmware.vcloud.entity.edgegateway:#{id})\"."
41
+ )
42
+ end
43
+
44
+ owner = {
45
+ :href => make_href("admin/edgeGateway/#{id}"),
46
+ :type => 'application/vnd.vmware.vcloud.gateway+xml'
47
+ }
48
+ task_id = enqueue_task(
49
+ "Configuring edgegateway(#{id})", 'networkConfigureEdgeGatewayServices', owner,
50
+ :on_success => lambda do
51
+ data[:edge_gateways][id][:Configuration][:EdgeGatewayServiceConfiguration] = configuration
52
+ end
53
+ )
54
+
55
+ task = task_body(task_id)
56
+ task.delete(:Owner) # known bug - admin tasks do not return Owner
57
+
58
+ body = {
59
+ :xmlns => xmlns,
60
+ :xmlns_xsi => xmlns_xsi,
61
+ :xsi_schemaLocation => xsi_schema_location,
62
+ }.merge(task)
63
+
64
+ Excon::Response.new(
65
+ :status => 202,
66
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
67
+ :body => body
68
+ )
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Consolidate VM snapshots.
6
+ #
7
+ # This operation is asynchronous and returns a task that you can
8
+ # monitor to track the progress of the request.
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/POST-ConsolidateVm-vApp.html
15
+ # @since vCloud API version 1.5
16
+ def post_consolidate_vm_vapp(id)
17
+ request(
18
+ :expects => 202,
19
+ :method => 'POST',
20
+ :parser => Fog::ToHashDocument.new,
21
+ :path => "vApp/#{id}/action/consolidate"
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Consolidate VM snapshots.
6
+ #
7
+ # This operation is asynchronous and returns a task that you can
8
+ # monitor to track the progress of the request.
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/POST-ConsolidateVm-vAppTemplate.html
15
+ # @since vCloud API version 1.5
16
+ def post_consolidate_vm_vapp_template(id)
17
+ request(
18
+ :expects => 202,
19
+ :method => 'POST',
20
+ :parser => Fog::ToHashDocument.new,
21
+ :path => "vAppTemplate/#{id}/action/consolidate"
22
+ )
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,56 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Add an item to a catalog.
6
+ #
7
+ # @param [String] id Object identifier of the catalog.
8
+ # @param [String] name The name of the entity.
9
+ # @param [Hash] entity A reference to a VAppTemplate or Media object.
10
+ # * href<~String> - Contains the URI to the entity.
11
+ # @param [Hash] options
12
+ # @option options [String] :operationKey Optional unique identifier to
13
+ # support idempotent semantics for create and delete operations.
14
+ # @option options [String] :Description Optional description.
15
+ # @return [Excon::Response]
16
+ # * body<~Hash>:
17
+ #
18
+ # @raise Fog::Compute::VcloudDirector::DuplicateName
19
+ #
20
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateCatalogItem.html
21
+ # @since vCloud API version 0.9
22
+ def post_create_catalog_item(id, name, entity, options={})
23
+ body = Nokogiri::XML::Builder.new do
24
+ attrs = {
25
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
26
+ :name => name,
27
+ }
28
+ attrs[:operationKey] = options[:operationKey] if options.key?(:operationKey)
29
+ CatalogItem(attrs) {
30
+ if options.key?(:Description)
31
+ Description options[:Description]
32
+ end
33
+ Entity(entity)
34
+ }
35
+ end.to_xml
36
+
37
+ begin
38
+ request(
39
+ :body => body,
40
+ :expects => 201,
41
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.catalogItem+xml'},
42
+ :method => 'POST',
43
+ :parser => Fog::ToHashDocument.new,
44
+ :path => "catalog/#{id}/catalogItems"
45
+ )
46
+ rescue Fog::Compute::VcloudDirector::BadRequest => e
47
+ if e.minor_error_code == 'DUPLICATE_NAME'
48
+ raise Fog::Compute::VcloudDirector::DuplicateName.new(e.message)
49
+ end
50
+ raise
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,171 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ require 'fog/vcloud_director/generators/compute/org_vdc_network'
6
+
7
+ # Create an Org vDC network.
8
+ #
9
+ # This operation is asynchronous and returns a task that you can
10
+ # monitor to track the progress of the request.
11
+ #
12
+ # Produce media type(s):
13
+ # application/vnd.vmware.vcloud.orgVdcNetwork+xml
14
+ # Output type:
15
+ # OrgVdcNetworkType
16
+ #
17
+ # @param [String] vdc_id Object identifier of the vDC
18
+ # @param [String] name The name of the entity.
19
+ # @param [Hash] options
20
+ # @option options [String] :Description Optional description.
21
+ # @option options [Hash] :Configuration Network configuration.
22
+ # @option options [Hash] :EdgeGateway EdgeGateway that connects this
23
+ # Org vDC network. Applicable only for routed networks.
24
+ # @option options [Hash] :ServiceConfig Specifies the service
25
+ # configuration for an isolated Org vDC networks.
26
+ # @option options [Boolean] :IsShared True if this network is shared
27
+ # to multiple Org vDCs.
28
+ # * :Configuration<~Hash>: NetworkConfigurationType
29
+ # * :IpScopes<~Hash>:
30
+ # * :IpScope<~Hash>:
31
+ # * :IsInherited<~Boolean>: ?
32
+ # * :Gateway<~String>: IP address of gw
33
+ # * :Netmask<~String>: Subnet mask of network
34
+ # * :Dns1<~String>: Primary DNS server.
35
+ # * :Dns2<~String>: Secondary DNS server.
36
+ # * :DnsSuffix<~String>: DNS suffix.
37
+ # * :IsEnabled<~String>: Indicates if subnet is enabled or not.
38
+ # Default value is True.
39
+ # * :IpRanges<~Array>: IP ranges used for static pool allocation
40
+ # in the network. Array of Hashes of:
41
+ # * :StartAddress - start IP in range
42
+ # * :EndAddress - end IP in range
43
+ # * :EdgeGateway<~Hash>: EdgeGateway that connects this Org vDC
44
+ # network. Applicable only for routed networks.
45
+ # * :ServiceConfig<~Hash>: Specifies the service configuration for an
46
+ # isolated network
47
+ #
48
+ # @return [Excon::Response]
49
+ # * body<~Hash>:
50
+ #
51
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateOrgVdcNetwork.html
52
+ # @since vCloud API version 5.1
53
+ def post_create_org_vdc_network(vdc_id, name, options={})
54
+ body = Fog::Generators::Compute::VcloudDirector::OrgVdcNetwork.new(options.merge(:name => name)).generate_xml
55
+
56
+ request(
57
+ :body => body,
58
+ :expects => 201,
59
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.orgVdcNetwork+xml'},
60
+ :method => 'POST',
61
+ :parser => Fog::ToHashDocument.new,
62
+ :path => "admin/vdc/#{vdc_id}/networks"
63
+ )
64
+ end
65
+ end
66
+
67
+ class Mock
68
+ def post_create_org_vdc_network(vdc_id, name, options={})
69
+ unless data[:vdcs][vdc_id]
70
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
71
+ "No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
72
+ )
73
+ end
74
+
75
+ type = 'network'
76
+ id = uuid
77
+
78
+ # Description
79
+ # Configuration
80
+ # IpScopes
81
+ # IpScope
82
+ # IsInherited
83
+ # Gateway
84
+ # Netmask
85
+ # Dns1
86
+ # Dns2
87
+ # DnsSuffix
88
+ # IsEnabled
89
+ # IpRanges
90
+ # IpRange
91
+ # StartAddress
92
+ # EndAddress
93
+ # FenceMode
94
+ # EdgeGateway
95
+ # IsShared
96
+
97
+ network_body = {
98
+ :name => name,
99
+ :vdc => vdc_id,
100
+ }
101
+
102
+ [:Description, :IsShared].each do |key|
103
+ network_body[key] = options[key] if options.key?(key)
104
+ end
105
+
106
+ if options.key?(:EdgeGateway)
107
+ network_body[:EdgeGateway] =
108
+ options[:EdgeGateway][:href].split('/').last
109
+ end
110
+
111
+ if configuration = options[:Configuration]
112
+ if ip_scopes = configuration[:IpScopes]
113
+ if ip_scope = ip_scopes[:IpScope]
114
+ [:IsInherited, :Gateway, :Netmask,
115
+ :Dns1, :Dns2, :DnsSuffix, :IsEnabled].each do |key|
116
+ network_body[key] = ip_scope[key] if ip_scope.key?(key)
117
+ end
118
+ if ip_ranges = ip_scope[:IpRanges]
119
+ network_body[:IpRanges] = []
120
+ ip_ranges.each do |ipr|
121
+ network_body[:IpRanges] << {
122
+ :StartAddress => ipr[:IpRange][:StartAddress],
123
+ :EndAddress => ipr[:IpRange][:EndAddress]
124
+ }
125
+ end
126
+ end
127
+ end
128
+ end
129
+ network_body[:FenceMode] = configuration[:FenceMode] if ip_scope.key?(:FenceMode)
130
+ end
131
+
132
+ owner = {
133
+ :href => make_href("#{type}/#{id}"),
134
+ :type => "application/vnd.vmware.vcloud.#{type}+xml"
135
+ }
136
+ task_id = enqueue_task(
137
+ "Adding #{type} #{name} (#{id})", 'CreateOrgVdcNetwork', owner,
138
+ :on_success => lambda do
139
+ data[:networks][id] = network_body
140
+ end
141
+ )
142
+
143
+ body = {
144
+ :xmlns => xmlns,
145
+ :xmlns_xsi => xmlns_xsi,
146
+ :xsi_schemaLocation => xsi_schema_location,
147
+ :href => make_href("admin/network/#{id}"),
148
+ :name => name,
149
+ :id => "urn:vcloud:network:#{id}",
150
+ :type => "application/vnd.vmware.vcloud.orgVdcNetwork+xml",
151
+ :Link => [
152
+ {:rel=>"up", :type=>"application/vnd.vmware.vcloud.vdc+xml", :href=>make_href("vdc/#{vdc_id}")},
153
+ {:rel=>"down", :type=>"application/vnd.vmware.vcloud.metadata+xml", :href=>make_href("admin/network/#{id}/metadata")},
154
+ {:rel=>"down", :type=>"application/vnd.vmware.vcloud.allocatedNetworkAddress+xml", :href=>make_href("admin/network/#{id}/allocatedAddresses/")},
155
+ ],
156
+ }.merge(options)
157
+
158
+ body[:Tasks] = {
159
+ :Task => task_body(task_id)
160
+ }
161
+
162
+ Excon::Response.new(
163
+ :status => 201,
164
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
165
+ :body => body
166
+ )
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end