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,120 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Upload a media image.
6
+ #
7
+ # The response includes an upload link for the media image.
8
+ #
9
+ # @param [String] vdc_id Object identifier of the vDC.
10
+ # @param [String] name The name of the media image.
11
+ # @param [String] image_type Media image type. One of: iso, floppy.
12
+ # @param [Integer] size Size of the media file, in bytes.
13
+ # @param [Hash] options
14
+ # @option options [String] :operationKey Optional unique identifier to
15
+ # support idempotent semantics for create and delete operations.
16
+ # @option options [String] :Description Optional description.
17
+ # @return [Excon::Response]
18
+ # * body<~Hash>:
19
+ #
20
+ # @raise [Fog::Compute::VcloudDirector::BadRequest]
21
+ # @raise [Fog::Compute::VcloudDirector::Forbidden]
22
+ #
23
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UploadMedia.html
24
+ # @since vCloud API version 0.9
25
+ # @todo Support vDC Storage Profiles.
26
+ def post_upload_media(vdc_id, name, image_type, size, options={})
27
+ body = Nokogiri::XML::Builder.new do
28
+ attrs = {
29
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
30
+ :name => name,
31
+ :imageType => image_type,
32
+ :size => size
33
+ }
34
+ attrs[:operationKey] = options[:operationKey] if options.key?(:operationKey)
35
+ Media(attrs) {
36
+ if options.key?(:Description)
37
+ Description options[:Description]
38
+ end
39
+ }
40
+ end.to_xml
41
+
42
+ response = request(
43
+ :body => body,
44
+ :expects => 201,
45
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.media+xml'},
46
+ :method => 'POST',
47
+ :parser => Fog::ToHashDocument.new,
48
+ :path => "vdc/#{vdc_id}/media"
49
+ )
50
+ ensure_list! response.body, :Files, :File
51
+ response
52
+ end
53
+ end
54
+
55
+ class Mock
56
+ def post_upload_media(vdc_id, name, image_type, size, options={})
57
+ unless ['iso','floppy'].include?(image_type)
58
+ raise Fog::Compute::VcloudDirector::BadRequest.new(
59
+ 'The value of parameter imageType is incorrect.'
60
+ )
61
+ end
62
+ unless size.to_s =~ /^\d+$/
63
+ raise Fog::Compute::VcloudDirector::BadRequest.new(
64
+ 'validation error on field \'size\': must be greater than or equal to 0'
65
+ )
66
+ end
67
+ unless data[:vdcs][vdc_id]
68
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
69
+ "No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
70
+ )
71
+ end
72
+
73
+ media_id = uuid
74
+ file_id = uuid
75
+
76
+ owner = {
77
+ :href => make_href("media/#{media_id}"),
78
+ :type => 'application/vnd.vmware.vcloud.media+xml'
79
+ }
80
+ task_id = enqueue_task(
81
+ "Importing Media File #{name}(#{file_id})", 'vdcUploadMedia', owner,
82
+ :on_success => lambda do
83
+ media = data[:medias][media_id]
84
+ media[:file][:bytes_transferred] = media[:size]
85
+ media[:status] = 1
86
+ end
87
+ )
88
+
89
+ media = {
90
+ :description => options[:Description],
91
+ :file => {
92
+ :bytes_transferred => 0,
93
+ :uuid => file_id
94
+ },
95
+ :image_type => image_type,
96
+ :name => name,
97
+ :size => size.to_i,
98
+ :status => 0,
99
+ :tasks => [task_id],
100
+ :vdc_id => vdc_id,
101
+ :vdc_storage_class => data[:vdc_storage_classes].find {|k,v| v[:default]}.first
102
+ }
103
+ data[:medias][media_id] = media
104
+
105
+ body = {
106
+ :xmlns => xmlns,
107
+ :xmlns_xsi => xmlns_xsi,
108
+ :xsi_schemaLocation => xsi_schema_location
109
+ }.merge(media_body(media_id))
110
+
111
+ Excon::Response.new(
112
+ :status => 201,
113
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
114
+ :body => body
115
+ )
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,46 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Upload an OVF package to create a vApp template
6
+ #
7
+ # The response includes an upload link for the OVF descriptor.
8
+ #
9
+ # @param [String] vdc_id Object identifier of the vDC.
10
+ # @param [String] name The name of the vApp template.
11
+ # @param [Hash] options
12
+ # @option options [Boolean] :manifestRequired True if an OVF manifest
13
+ # is included in the upload. Default value is false.
14
+ # @option options [String] :Description Optional description.
15
+ # @return [Excon::Response]
16
+ # * body<~Hash>:
17
+ #
18
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UploadVAppTemplate.html
19
+ # @since vCloud API version 0.9
20
+ def post_upload_vapp_template(vdc_id, name, options={})
21
+ body = Nokogiri::XML::Builder.new do
22
+ attrs = {
23
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
24
+ :name => name
25
+ }
26
+ attrs[:manifestRequired] = options[:manifestRequired] if options.key?(:manifestRequired)
27
+ UploadVAppTemplateParams(attrs) {
28
+ if options.key?(:Description)
29
+ Description options[:Description]
30
+ end
31
+ }
32
+ end.to_xml
33
+
34
+ request(
35
+ :body => body,
36
+ :expects => 201,
37
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml'},
38
+ :method => 'POST',
39
+ :parser => Fog::ToHashDocument.new,
40
+ :path => "vdc/#{vdc_id}/action/uploadVAppTemplate"
41
+ )
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Set the metadata value for the specified key to the value provided,
6
+ # overwriting any existing value.
7
+ #
8
+ # @param [String] id Object identifier of the catalog item.
9
+ # @param [String] key Key of the metadata item.
10
+ # @param [Boolean,DateTime,Fixnum,String] value Value of the metadata
11
+ # item.
12
+ # @return [Excon::Response]
13
+ # * body<~Hash>:
14
+ #
15
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/PUT-CatalogItemMetadataItem-metadata.html
16
+ # @since vCloud API version 1.5
17
+ def put_catalog_item_metadata_item_metadata(id, key, value)
18
+ body = Nokogiri::XML::Builder.new do
19
+ attrs = {
20
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
21
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
22
+ }
23
+ MetadataValue(attrs) {
24
+ if api_version.to_f < 5.1
25
+ Value value
26
+ else
27
+ type = case value
28
+ when TrueClass, FalseClass then 'MetadataBooleanValue';
29
+ when DateTime then 'MetadataDateTimeValue';
30
+ when Fixnum then 'MetadataNumberValue';
31
+ else 'MetadataStringValue'
32
+ end
33
+ TypedValue('xsi:type' => type) { Value value }
34
+ end
35
+ }
36
+ end.to_xml
37
+
38
+ request(
39
+ :body => body,
40
+ :expects => 202,
41
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata.value+xml'},
42
+ :method => 'PUT',
43
+ :parser => Fog::ToHashDocument.new,
44
+ :path => "catalogItem/#{id}/metadata/#{URI.escape(key)}"
45
+ )
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,88 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ extend Fog::Deprecation
6
+ deprecate :put_vm_cpu, :put_cpu
7
+
8
+ # Update the RASD item that specifies CPU properties of a VM.
9
+ #
10
+ # This operation is asynchronous and returns a task that you can
11
+ # monitor to track the progress of the request.
12
+ #
13
+ # @param [String] id Object identifier of the VM.
14
+ # @param [Integer] num_cpus
15
+ # @return [Excon:Response]
16
+ # * body<~Hash>:
17
+ #
18
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/PUT-Cpu.html
19
+ # @since vCloud API version 0.9
20
+ def put_cpu(id, num_cpus)
21
+ data = <<EOF
22
+ <Item
23
+ xmlns="http://www.vmware.com/vcloud/v1.5"
24
+ xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData"
25
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
26
+ xmlns:ns12="http://www.vmware.com/vcloud/v1.5"
27
+ ns12:href="#{end_point}vApp/#{id}/virtualHardwareSection/cpu"
28
+ ns12:type="application/vnd.vmware.vcloud.rasdItem+xml"
29
+ xsi:schemaLocation="http://www.vmware.com/vcloud/v1.5 #{end_point}v1.5/schema/master.xsd http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_ResourceAllocationSettingData.xsd">
30
+ <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
31
+ <rasd:Description>Number of Virtual CPUs</rasd:Description>
32
+ <rasd:ElementName>#{num_cpus} virtual CPU(s)</rasd:ElementName>
33
+ <rasd:InstanceID>4</rasd:InstanceID>
34
+ <rasd:Reservation>0</rasd:Reservation>
35
+ <rasd:ResourceType>3</rasd:ResourceType>
36
+ <rasd:VirtualQuantity>#{num_cpus}</rasd:VirtualQuantity>
37
+ <rasd:Weight>0</rasd:Weight>
38
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItem+xml" href="#{end_point}vApp/#{id}/virtualHardwareSection/cpu"/>
39
+ </Item>
40
+ EOF
41
+
42
+ request(
43
+ :body => data,
44
+ :expects => 202,
45
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.rasdItem+xml'},
46
+ :method => 'PUT',
47
+ :parser => Fog::ToHashDocument.new,
48
+ :path => "vApp/#{id}/virtualHardwareSection/cpu"
49
+ )
50
+ end
51
+ end
52
+
53
+ class Mock
54
+
55
+ def put_cpu(id, num_cpus)
56
+ unless vm = data[:vms][id]
57
+ raise Fog::Compute::VcloudDirector::Forbidden.new(
58
+ 'This operation is denied.'
59
+ )
60
+ end
61
+
62
+ owner = {
63
+ :href => make_href("vApp/#{id}"),
64
+ :type => 'application/vnd.vmware.vcloud.vm+xml'
65
+ }
66
+ task_id = enqueue_task(
67
+ "Updating Virtual Machine #{data[:vms][id][:name]}(#{id})", 'vappUpdateVm', owner,
68
+ :on_success => lambda do
69
+ data[:vms][id][:cpu_count] = num_cpus
70
+ end
71
+ )
72
+ body = {
73
+ :xmlns => xmlns,
74
+ :xmlns_xsi => xmlns_xsi,
75
+ :xsi_schemaLocation => xsi_schema_location,
76
+ }.merge(task_body(task_id))
77
+
78
+ Excon::Response.new(
79
+ :status => 202,
80
+ :headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
81
+ :body => body
82
+ )
83
+ end
84
+
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,46 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ # Set the value for the specified metadata key to the value provided,
6
+ # overwriting any existing value.
7
+ #
8
+ # @param [String] id Object identifier of the disk.
9
+ # @param [String] key Key of the metadata item.
10
+ # @param [Boolean,DateTime,Fixnum,String] value Value of the metadata
11
+ # item.
12
+ # @return [Excon::Response]
13
+ # * body<~Hash>:
14
+ #
15
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/PUT-DiskMetadataItem-metadata.html
16
+ # @since vCloud API version 5.1
17
+ def put_disk_metadata_item_metadata(id, key, value)
18
+ body = Nokogiri::XML::Builder.new do
19
+ attrs = {
20
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
21
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
22
+ }
23
+ MetadataValue(attrs) {
24
+ type = case value
25
+ when TrueClass, FalseClass then 'MetadataBooleanValue';
26
+ when DateTime then 'MetadataDateTimeValue';
27
+ when Fixnum then 'MetadataNumberValue';
28
+ else 'MetadataStringValue'
29
+ end
30
+ TypedValue('xsi:type' => type) { Value value }
31
+ }
32
+ end.to_xml
33
+
34
+ request(
35
+ :body => body,
36
+ :expects => 202,
37
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata.value+xml'},
38
+ :method => 'PUT',
39
+ :parser => Fog::ToHashDocument.new,
40
+ :path => "disk/#{id}/metadata/#{URI.escape(key)}"
41
+ )
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,39 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ extend Fog::Deprecation
6
+ deprecate :put_vm_disks, :put_disks
7
+
8
+ require 'fog/vcloud_director/generators/compute/disks'
9
+
10
+ # Update all RASD items that specify hard disk and hard disk controller
11
+ # properties of a VM.
12
+ #
13
+ # This operation is asynchronous and returns a task that you can
14
+ # monitor to track the progress of the request.
15
+ #
16
+ # @param [String] id Object identifier of the VM.
17
+ # @param [Array] disks
18
+ # * disks is the body of #get_vm_disks
19
+ # @return [Excon::Response]
20
+ # * body<~Hash>:
21
+ #
22
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/PUT-Disks.html
23
+ # @since vCloud API version 0.9
24
+ def put_disks(id, disks=[])
25
+ data = Fog::Generators::Compute::VcloudDirector::Disks.new(disks)
26
+
27
+ request(
28
+ :body => data.generate_xml,
29
+ :expects => 202,
30
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.rasdItemsList+xml'},
31
+ :method => 'PUT',
32
+ :parser => Fog::ToHashDocument.new,
33
+ :path => "vApp/#{id}/virtualHardwareSection/disks"
34
+ )
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,141 @@
1
+ module Fog
2
+ module Compute
3
+ class VcloudDirector
4
+ class Real
5
+ extend Fog::Deprecation
6
+ deprecate :put_vm_customization, :put_guest_customization_section_vapp
7
+
8
+ # Updates the guest customization section of a VM.
9
+ #
10
+ # This operation is asynchronous and returns a task that you can
11
+ # monitor to track the progress of the request.
12
+ #
13
+ # @param [String] id Object identifier of the VM.
14
+ # @param [Hash] options
15
+ # @option options [Boolean] :Enabled True if guest customization is
16
+ # enabled.
17
+ # @option options [Boolean] :ChangeSid True if customization can change
18
+ # the Windows SID of this virtual machine.
19
+ # @option options [Boolean] :JoinDomainEnabled True if this virtual
20
+ # machine can join a Windows Domain.
21
+ # @option options [Boolean] :UseOrgSettings True if customization
22
+ # should use organization settings (OrgGuestPersonalizationSettings)
23
+ # when joining a Windows Domain.
24
+ # @option options [String] :DomainName The name of the Windows Domain
25
+ # to join.
26
+ # @option options [String] :DomainUserName User name to specify when
27
+ # joining a Windows Domain.
28
+ # @option options [String] :DomainUserPassword Password to use with
29
+ # :DomainUserName.
30
+ # @option options [String] :MachineObjectOU The name of the Windows
31
+ # Domain Organizational Unit (OU) in which the computer account for
32
+ # this virtual machine will be created.
33
+ # @option options [Boolean] :AdminPassword_enabled True if guest
34
+ # customization can modify administrator password settings for this
35
+ # virtual machine.
36
+ # @option options [Boolean] :AdminPassword_auto True if the
37
+ # administrator password for this virtual machine should be
38
+ # automatically generated.
39
+ # @option options [String] :AdminPassword True if the administrator
40
+ # password for this virtual machine should be set to this string.
41
+ # (:AdminPasswordAuto must be false.)
42
+ # @option options [Boolean] :ResetPasswordRequired True if the
43
+ # administrator password for this virtual machine must be reset after
44
+ # first use.
45
+ # @option customization [String] :CustomizationScript Script to run on
46
+ # guest customization. The entire script must appear in this element.
47
+ # @option customization [String] :ComputerName Computer name to assign
48
+ # to this virtual machine.
49
+ # @return [Excon::Response]
50
+ # * body<~Hash>:
51
+ # * :Tasks<~Hash>:
52
+ # * :Task<~Hash>:
53
+ #
54
+ # @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/PUT-GuestCustomizationSection-vApp.html
55
+ # @since vCloud API version 1.0
56
+ def put_guest_customization_section_vapp(id, options={})
57
+ options = options.dup
58
+
59
+ # Mutate options to new format.
60
+ deprecated = {
61
+ :enabled => :Enabled,
62
+ :change_sid => :ChangeSid,
63
+ :join_domain_enabled => :JoinDomainEnabled,
64
+ :use_org_settings => :UseOrgSettings,
65
+ :admin_password => :AdminPassword,
66
+ :admin_password_enabled => :AdminPasswordEnabled,
67
+ :admin_password_auto => :AdminPasswordAuto,
68
+ :reset_password_required => :ResetPasswordRequired,
69
+ :customization_script => :CustomizationScript,
70
+ :computer_name => :ComputerName
71
+ }
72
+ deprecated.each do |from, to|
73
+ options[to] = options.delete(from) if options.key?(from)
74
+ end
75
+
76
+ body = Nokogiri::XML::Builder.new do
77
+ attrs = {
78
+ :xmlns => 'http://www.vmware.com/vcloud/v1.5',
79
+ 'xmlns:ovf' => 'http://schemas.dmtf.org/ovf/envelope/1'
80
+ }
81
+ GuestCustomizationSection(attrs) {
82
+ self['ovf'].Info 'Specifies Guest OS Customization Settings'
83
+ if options.key?(:Enabled)
84
+ Enabled options[:Enabled]
85
+ end
86
+ if options.key?(:ChangeSid)
87
+ ChangeSid options[:ChangeSid]
88
+ end
89
+ if options.key?(:JoinDomainEnabled)
90
+ JoinDomainEnabled options[:JoinDomainEnabled]
91
+ end
92
+ if options.key?(:UseOrgSettings)
93
+ UseOrgSettings options[:UseOrgSettings]
94
+ end
95
+ if options.key?(:DomainName)
96
+ DomainName options[:DomainName]
97
+ end
98
+ if options.key?(:DomainUser)
99
+ DomainUser options[:DomainUser]
100
+ end
101
+ if options.key?(:DomainUserPassword)
102
+ DomainUserPassword options[:DomainUserPassword]
103
+ end
104
+ if options.key?(:MachineObjectOU)
105
+ MachineObjectOU options[:MachineObjectOU]
106
+ end
107
+ if options.key?(:AdminPasswordEnabled)
108
+ AdminPasswordEnabled options[:AdminPasswordEnabled]
109
+ end
110
+ if options.key?(:AdminPasswordAuto)
111
+ AdminPasswordAuto options[:AdminPasswordAuto]
112
+ end
113
+ # Don't add AdminPassword if AdminPasswordAuto is true
114
+ if options.key?(:AdminPassword) and !options[:AdminPasswordAuto]
115
+ AdminPassword options[:AdminPassword]
116
+ end
117
+ if options.key?(:ResetPasswordRequired)
118
+ ResetPasswordRequired options[:ResetPasswordRequired]
119
+ end
120
+ if options.key?(:CustomizationScript)
121
+ CustomizationScript options[:CustomizationScript]
122
+ end
123
+ if options.key?(:ComputerName)
124
+ ComputerName options[:ComputerName]
125
+ end
126
+ }
127
+ end.to_xml
128
+
129
+ request(
130
+ :body => body,
131
+ :expects => 202,
132
+ :headers => {'Content-Type' => 'application/vnd.vmware.vcloud.guestCustomizationSection+xml'},
133
+ :method => 'PUT',
134
+ :parser => Fog::ToHashDocument.new,
135
+ :path => "vApp/#{id}/guestCustomizationSection"
136
+ )
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end