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,213 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Vm xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" nestedHypervisorEnabled="false" needsCustomization="false" deployed="true" status="4" name="nas.test.com" id="urn:vcloud:vm:17a2a3a9-248c-475d-8ee0-8dd45f7f8368" type="application/vnd.vmware.vcloud.vm+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368" xsi:schemaLocation="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2.22.0/CIM_VirtualSystemSettingData.xsd http://www.vmware.com/schema/ovf http://www.vmware.com/schema/ovf http://schemas.dmtf.org/ovf/envelope/1 http://schemas.dmtf.org/ovf/envelope/1/dsp8023_1.1.0.xsd http://schemas.dmtf.org/ovf/environment/1 http://schemas.dmtf.org/ovf/envelope/1/dsp8027_1.1.0.xsd http://www.vmware.com/vcloud/v1.5 http://vcloud-server.com/api/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">
3
+ <Link rel="power:powerOff" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/power/action/powerOff"/>
4
+ <Link rel="power:reboot" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/power/action/reboot"/>
5
+ <Link rel="power:reset" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/power/action/reset"/>
6
+ <Link rel="power:shutdown" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/power/action/shutdown"/>
7
+ <Link rel="power:suspend" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/power/action/suspend"/>
8
+ <Link rel="undeploy" type="application/vnd.vmware.vcloud.undeployVAppParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/action/undeploy"/>
9
+ <Link rel="edit" type="application/vnd.vmware.vcloud.vm+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368"/>
10
+ <Link rel="down" type="application/vnd.vmware.vcloud.metadata+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/metadata"/>
11
+ <Link rel="down" type="application/vnd.vmware.vcloud.productSections+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/productSections/"/>
12
+ <Link rel="screen:thumbnail" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/screen"/>
13
+ <Link rel="screen:acquireTicket" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/screen/action/acquireTicket"/>
14
+ <Link rel="media:insertMedia" type="application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/media/action/insertMedia"/>
15
+ <Link rel="media:ejectMedia" type="application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/media/action/ejectMedia"/>
16
+ <Link rel="disk:attach" type="application/vnd.vmware.vcloud.diskAttachOrDetachParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/disk/action/attach"/>
17
+ <Link rel="disk:detach" type="application/vnd.vmware.vcloud.diskAttachOrDetachParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/disk/action/detach"/>
18
+ <Link rel="installVmwareTools" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/action/installVMwareTools"/>
19
+ <Link rel="snapshot:create" type="application/vnd.vmware.vcloud.createSnapshotParams+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/action/createSnapshot"/>
20
+ <Link rel="reconfigureVm" type="application/vnd.vmware.vcloud.vm+xml" name="nas.test.com" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/action/reconfigureVm"/>
21
+ <Link rel="up" type="application/vnd.vmware.vcloud.vApp+xml" href="https://vcloud-server.com/api/vApp/vapp-8e81a743-bf8e-4ea7-8728-97d17eba9ec5"/>
22
+ <ovf:VirtualHardwareSection xmlns:ns12="http://www.vmware.com/vcloud/v1.5" ovf:transport="" ns12:href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/" ns12:type="application/vnd.vmware.vcloud.virtualHardwareSection+xml">
23
+ <ovf:Info>Virtual hardware requirements</ovf:Info>
24
+ <ovf:System>
25
+ <vssd:ElementName>Virtual Hardware Family</vssd:ElementName>
26
+ <vssd:InstanceID>0</vssd:InstanceID>
27
+ <vssd:VirtualSystemIdentifier>nas.test.com</vssd:VirtualSystemIdentifier>
28
+ <vssd:VirtualSystemType>vmx-09</vssd:VirtualSystemType>
29
+ </ovf:System>
30
+ <ovf:Item>
31
+ <rasd:Address>00:50:56:29:0c:18</rasd:Address>
32
+ <rasd:AddressOnParent>0</rasd:AddressOnParent>
33
+ <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
34
+ <rasd:Connection ns12:ipAddress="192.168.96.10" ns12:primaryNetworkConnection="true" ns12:ipAddressingMode="POOL">Non-DMZNetwork</rasd:Connection>
35
+ <rasd:Description>Vmxnet3 ethernet adapter on "Non-DMZNetwork"</rasd:Description>
36
+ <rasd:ElementName>Network adapter 0</rasd:ElementName>
37
+ <rasd:InstanceID>1</rasd:InstanceID>
38
+ <rasd:ResourceSubType>VMXNET3</rasd:ResourceSubType>
39
+ <rasd:ResourceType>10</rasd:ResourceType>
40
+ </ovf:Item>
41
+ <ovf:Item>
42
+ <rasd:Address>00:50:56:29:0c:19</rasd:Address>
43
+ <rasd:AddressOnParent>1</rasd:AddressOnParent>
44
+ <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
45
+ <rasd:Connection ns12:ipAddress="10.81.196.204" ns12:primaryNetworkConnection="false" ns12:ipAddressingMode="POOL">nfs-net-01</rasd:Connection>
46
+ <rasd:Description>Vmxnet3 ethernet adapter on "nfs-net-01"</rasd:Description>
47
+ <rasd:ElementName>Network adapter 1</rasd:ElementName>
48
+ <rasd:InstanceID>2</rasd:InstanceID>
49
+ <rasd:ResourceSubType>VMXNET3</rasd:ResourceSubType>
50
+ <rasd:ResourceType>10</rasd:ResourceType>
51
+ </ovf:Item>
52
+ <ovf:Item>
53
+ <rasd:Address>0</rasd:Address>
54
+ <rasd:Description>SCSI Controller</rasd:Description>
55
+ <rasd:ElementName>SCSI Controller 0</rasd:ElementName>
56
+ <rasd:InstanceID>3</rasd:InstanceID>
57
+ <rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
58
+ <rasd:ResourceType>6</rasd:ResourceType>
59
+ </ovf:Item>
60
+ <ovf:Item>
61
+ <rasd:AddressOnParent>0</rasd:AddressOnParent>
62
+ <rasd:Description>Hard disk</rasd:Description>
63
+ <rasd:ElementName>Hard disk 1</rasd:ElementName>
64
+ <rasd:HostResource ns12:capacity="10240" ns12:busSubType="lsilogic" ns12:busType="6"/>
65
+ <rasd:InstanceID>2000</rasd:InstanceID>
66
+ <rasd:Parent>3</rasd:Parent>
67
+ <rasd:ResourceType>17</rasd:ResourceType>
68
+ </ovf:Item>
69
+ <ovf:Item>
70
+ <rasd:Address>0</rasd:Address>
71
+ <rasd:Description>IDE Controller</rasd:Description>
72
+ <rasd:ElementName>IDE Controller 0</rasd:ElementName>
73
+ <rasd:InstanceID>4</rasd:InstanceID>
74
+ <rasd:ResourceType>5</rasd:ResourceType>
75
+ </ovf:Item>
76
+ <ovf:Item>
77
+ <rasd:AddressOnParent>1</rasd:AddressOnParent>
78
+ <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation>
79
+ <rasd:Description>CD/DVD Drive</rasd:Description>
80
+ <rasd:ElementName>CD/DVD Drive 1</rasd:ElementName>
81
+ <rasd:HostResource/>
82
+ <rasd:InstanceID>3002</rasd:InstanceID>
83
+ <rasd:Parent>4</rasd:Parent>
84
+ <rasd:ResourceType>15</rasd:ResourceType>
85
+ </ovf:Item>
86
+ <ovf:Item ns12:href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/cpu" ns12:type="application/vnd.vmware.vcloud.rasdItem+xml">
87
+ <rasd:AllocationUnits>hertz * 10^6</rasd:AllocationUnits>
88
+ <rasd:Description>Number of Virtual CPUs</rasd:Description>
89
+ <rasd:ElementName>1 virtual CPU(s)</rasd:ElementName>
90
+ <rasd:InstanceID>5</rasd:InstanceID>
91
+ <rasd:Reservation>0</rasd:Reservation>
92
+ <rasd:ResourceType>3</rasd:ResourceType>
93
+ <rasd:VirtualQuantity>1</rasd:VirtualQuantity>
94
+ <rasd:Weight>0</rasd:Weight>
95
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/cpu"/>
96
+ </ovf:Item>
97
+ <ovf:Item ns12:href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/memory" ns12:type="application/vnd.vmware.vcloud.rasdItem+xml">
98
+ <rasd:AllocationUnits>byte * 2^20</rasd:AllocationUnits>
99
+ <rasd:Description>Memory Size</rasd:Description>
100
+ <rasd:ElementName>2048 MB of memory</rasd:ElementName>
101
+ <rasd:InstanceID>6</rasd:InstanceID>
102
+ <rasd:Reservation>0</rasd:Reservation>
103
+ <rasd:ResourceType>4</rasd:ResourceType>
104
+ <rasd:VirtualQuantity>2048</rasd:VirtualQuantity>
105
+ <rasd:Weight>0</rasd:Weight>
106
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/memory"/>
107
+ </ovf:Item>
108
+ <Link rel="edit" type="application/vnd.vmware.vcloud.virtualHardwareSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/"/>
109
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/cpu"/>
110
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/cpu"/>
111
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/memory"/>
112
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItem+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/memory"/>
113
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/disks"/>
114
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/disks"/>
115
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/media"/>
116
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/networkCards"/>
117
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/networkCards"/>
118
+ <Link rel="down" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/serialPorts"/>
119
+ <Link rel="edit" type="application/vnd.vmware.vcloud.rasdItemsList+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/virtualHardwareSection/serialPorts"/>
120
+ </ovf:VirtualHardwareSection>
121
+ <ovf:OperatingSystemSection xmlns:ns12="http://www.vmware.com/vcloud/v1.5" ovf:id="101" ns12:href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/operatingSystemSection/" ns12:type="application/vnd.vmware.vcloud.operatingSystemSection+xml" vmw:osType="oracleLinux64Guest">
122
+ <ovf:Info>Specifies the operating system installed</ovf:Info>
123
+ <ovf:Description>Oracle Linux 4/5/6 (64-bit)</ovf:Description>
124
+ <Link rel="edit" type="application/vnd.vmware.vcloud.operatingSystemSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/operatingSystemSection/"/>
125
+ </ovf:OperatingSystemSection>
126
+ <NetworkConnectionSection type="application/vnd.vmware.vcloud.networkConnectionSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/networkConnectionSection/" ovf:required="false">
127
+ <ovf:Info>Specifies the available VM network connections</ovf:Info>
128
+ <PrimaryNetworkConnectionIndex>0</PrimaryNetworkConnectionIndex>
129
+ <NetworkConnection network="Non-DMZNetwork" needsCustomization="false">
130
+ <NetworkConnectionIndex>0</NetworkConnectionIndex>
131
+ <IpAddress>192.168.96.10</IpAddress>
132
+ <IsConnected>true</IsConnected>
133
+ <MACAddress>00:50:56:29:0c:18</MACAddress>
134
+ <IpAddressAllocationMode>POOL</IpAddressAllocationMode>
135
+ </NetworkConnection>
136
+ <NetworkConnection network="nfs-net-01" needsCustomization="false">
137
+ <NetworkConnectionIndex>1</NetworkConnectionIndex>
138
+ <IpAddress>10.81.196.204</IpAddress>
139
+ <IsConnected>true</IsConnected>
140
+ <MACAddress>00:50:56:29:0c:19</MACAddress>
141
+ <IpAddressAllocationMode>POOL</IpAddressAllocationMode>
142
+ </NetworkConnection>
143
+ <Link rel="edit" type="application/vnd.vmware.vcloud.networkConnectionSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/networkConnectionSection/"/>
144
+ </NetworkConnectionSection>
145
+ <GuestCustomizationSection type="application/vnd.vmware.vcloud.guestCustomizationSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/guestCustomizationSection/" ovf:required="false">
146
+ <ovf:Info>Specifies Guest OS Customization Settings</ovf:Info>
147
+ <Enabled>true</Enabled>
148
+ <ChangeSid>false</ChangeSid>
149
+ <VirtualMachineId>17a2a3a9-248c-475d-8ee0-8dd45f7f8368</VirtualMachineId>
150
+ <JoinDomainEnabled>false</JoinDomainEnabled>
151
+ <UseOrgSettings>false</UseOrgSettings>
152
+ <AdminPasswordEnabled>false</AdminPasswordEnabled>
153
+ <AdminPasswordAuto>true</AdminPasswordAuto>
154
+ <ResetPasswordRequired>false</ResetPasswordRequired>
155
+ <CustomizationScript>if [ x$1 == x"postcustomization" ]; then fi</CustomizationScript>
156
+ <ComputerName>nas.test.com</ComputerName>
157
+ <Link rel="edit" type="application/vnd.vmware.vcloud.guestCustomizationSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/guestCustomizationSection/"/>
158
+ </GuestCustomizationSection>
159
+ <RuntimeInfoSection xmlns:ns12="http://www.vmware.com/vcloud/v1.5" ns12:href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/runtimeInfoSection" ns12:type="application/vnd.vmware.vcloud.virtualHardwareSection+xml">
160
+ <ovf:Info>Specifies Runtime info</ovf:Info>
161
+ <VMWareTools version="9410"/>
162
+ </RuntimeInfoSection>
163
+ <SnapshotSection type="application/vnd.vmware.vcloud.snapshotSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/snapshotSection" ovf:required="false">
164
+ <ovf:Info>Snapshot information section</ovf:Info>
165
+ </SnapshotSection>
166
+ <DateCreated>2014-07-08T00:35:59.703-04:00</DateCreated>
167
+ <VAppScopedLocalId>b6b1835b-cb2a-49c2-832f-93212a757858</VAppScopedLocalId>
168
+ <ovfenv:Environment xmlns:ns12="http://www.vmware.com/schema/ovfenv" ovfenv:id="" ns12:vCenterId="vm-3854">
169
+ <ovfenv:PlatformSection>
170
+ <ovfenv:Kind>VMware ESXi</ovfenv:Kind>
171
+ <ovfenv:Version>5.1.0</ovfenv:Version>
172
+ <ovfenv:Vendor>VMware, Inc.</ovfenv:Vendor>
173
+ <ovfenv:Locale>en</ovfenv:Locale>
174
+ </ovfenv:PlatformSection>
175
+ <ovfenv:PropertySection>
176
+ <ovfenv:Property ovfenv:value="aWYgWyB4JDEgPT0geCJwb3N0Y3VzdG9taX" ovfenv:key="vCloud_CustomizationInfo"/>
177
+ <ovfenv:Property ovfenv:value="None" ovfenv:key="vCloud_UseSysPrep"/>
178
+ <ovfenv:Property ovfenv:value="11" ovfenv:key="vCloud_bitMask"/>
179
+ <ovfenv:Property ovfenv:value="static" ovfenv:key="vCloud_bootproto_0"/>
180
+ <ovfenv:Property ovfenv:value="static" ovfenv:key="vCloud_bootproto_1"/>
181
+ <ovfenv:Property ovfenv:value="nas.test.com" ovfenv:key="vCloud_computerName"/>
182
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_dns1_0"/>
183
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_dns1_1"/>
184
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_dns2_0"/>
185
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_dns2_1"/>
186
+ <ovfenv:Property ovfenv:value="192.168.96.1" ovfenv:key="vCloud_gateway_0"/>
187
+ <ovfenv:Property ovfenv:value="10.81.196.1" ovfenv:key="vCloud_gateway_1"/>
188
+ <ovfenv:Property ovfenv:value="192.168.96.10" ovfenv:key="vCloud_ip_0"/>
189
+ <ovfenv:Property ovfenv:value="10.81.196.204" ovfenv:key="vCloud_ip_1"/>
190
+ <ovfenv:Property ovfenv:value="00:50:56:29:0c:18" ovfenv:key="vCloud_macaddr_0"/>
191
+ <ovfenv:Property ovfenv:value="00:50:56:29:0c:19" ovfenv:key="vCloud_macaddr_1"/>
192
+ <ovfenv:Property ovfenv:value="b120ff85-b0fe-42b9-bd78-c007e8226c2d" ovfenv:key="vCloud_markerid"/>
193
+ <ovfenv:Property ovfenv:value="255.255.255.0" ovfenv:key="vCloud_netmask_0"/>
194
+ <ovfenv:Property ovfenv:value="255.255.255.0" ovfenv:key="vCloud_netmask_1"/>
195
+ <ovfenv:Property ovfenv:value="2" ovfenv:key="vCloud_numnics"/>
196
+ <ovfenv:Property ovfenv:value="0" ovfenv:key="vCloud_primaryNic"/>
197
+ <ovfenv:Property ovfenv:value="846634504" ovfenv:key="vCloud_reconfigToken"/>
198
+ <ovfenv:Property ovfenv:value="0" ovfenv:key="vCloud_resetPassword"/>
199
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_suffix_0"/>
200
+ <ovfenv:Property ovfenv:value="" ovfenv:key="vCloud_suffix_1"/>
201
+ </ovfenv:PropertySection>
202
+ <ve:EthernetAdapterSection xmlns:ve="http://www.vmware.com/schema/ovfenv" xmlns="http://schemas.dmtf.org/ovf/environment/1" xmlns:oe="http://schemas.dmtf.org/ovf/environment/1">
203
+ <ve:Adapter ve:mac="00:50:56:29:0c:18" ve:network="dvs.VCDVSNon-DMZNetwork-11ba052e-d945-4aff-8ee4-e6e933516c22" ve:unitNumber="7"/>
204
+ <ve:Adapter ve:mac="00:50:56:29:0c:19" ve:network="dvPortGroup - V2799 - NFS-NET" ve:unitNumber="8"/>
205
+ </ve:EthernetAdapterSection>
206
+ </ovfenv:Environment>
207
+ <VmCapabilities type="application/vnd.vmware.vcloud.vmCapabilitiesSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/vmCapabilities/">
208
+ <Link rel="edit" type="application/vnd.vmware.vcloud.vmCapabilitiesSection+xml" href="https://vcloud-server.com/api/vApp/vm-17a2a3a9-248c-475d-8ee0-8dd45f7f8368/vmCapabilities/"/>
209
+ <MemoryHotAddEnabled>false</MemoryHotAddEnabled>
210
+ <CpuHotAddEnabled>false</CpuHotAddEnabled>
211
+ </VmCapabilities>
212
+ <StorageProfile type="application/vnd.vmware.vcloud.vdcStorageProfile+xml" name="StorageTier-SelectPlus" href="https://vcloud-server.com/api/vdcStorageProfile/7d4501e8-d734-4dc1-bc44-8eaa810629a0"/>
213
+ </Vm>
@@ -0,0 +1,108 @@
1
+ require 'fog/vcloud_director/generators/compute/compose_vapp'
2
+
3
+ Shindo.tests("Compute::VcloudDirector - ComposeVapp", ['vclouddirector']) do
4
+
5
+ @vapp_configuration = {
6
+ :Description => 'a description',
7
+ :InstantiationParams => {
8
+ :DefaultStorageProfile => 'profile',
9
+ :NetworkConfig => [
10
+ {
11
+ :networkName => 'net1',
12
+ :networkHref => 'http://net1',
13
+ :fenceMode => 'bridged'
14
+ },
15
+ {
16
+ :networkName => 'net2',
17
+ :networkHref => 'http://net2',
18
+ :fenceMode => 'isolated'
19
+ },
20
+ ]
21
+ },
22
+ :source_templates => [
23
+ { :href => 'http://template_1' },
24
+ { :href => 'http://template_2' }
25
+ ],
26
+ :source_vms => [
27
+ { :href => 'http://vm_1',
28
+ :networks => [
29
+ {
30
+ :networkName => 'vm_net_1',
31
+ :IsConnected => true,
32
+ :IpAddressAllocationMode => 'POOL',
33
+ },
34
+ {
35
+ :networkName => 'vm_net_2',
36
+ :IsConnected => false,
37
+ :IpAddressAllocationMode => 'DHCP'
38
+ }
39
+ ]
40
+ },
41
+ { :href => 'http://vm_2',
42
+ :guest_customization => {
43
+ :Enabled => true,
44
+ :ComputerName => 'wally',
45
+ :ChangeSid => false,
46
+ :JoinDomainEnabled => false,
47
+ :AdminPasswordEnabled => true,
48
+ :AdminPasswordAuto => false,
49
+ :AdminPassword => 'password',
50
+ :ResetPasswordRequired => false,
51
+ :CustomizationScript => 'ls -sal',
52
+ },
53
+ :StorageProfileHref => 'http://profile_1'
54
+ }
55
+ ]
56
+ }
57
+
58
+ tests('#check xml from generator').returns(true) do
59
+ xml = Nokogiri.XML Fog::Generators::Compute::VcloudDirector::ComposeVapp.new(@vapp_configuration).generate_xml
60
+
61
+ tags_with_values = {
62
+ 'ComposeVAppParams>Description' => 'a description',
63
+ 'ComposeVAppParams>AllEULAsAccepted' => 'true',
64
+ 'ComposeVAppParams>InstantiationParams>DefaultStorageProfileSection>StorageProfile' => 'profile',
65
+ "ComposeVAppParams>InstantiationParams>NetworkConfigSection>NetworkConfig[networkName='net1']>Configuration>ParentNetwork[href='http://net1']~FenceMode" => 'bridged',
66
+ "ComposeVAppParams>InstantiationParams>NetworkConfigSection>NetworkConfig[networkName='net2']>Configuration>ParentNetwork[href='http://net2']~FenceMode" => 'isolated',
67
+ 'ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>PrimaryNetworkConnectionIndex' => '0',
68
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_1']>NetworkConnectionIndex" => '0',
69
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_1']>IsConnected" => 'true',
70
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_1']>IpAddressAllocationMode" => 'POOL',
71
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_2']>NetworkConnectionIndex" => '1',
72
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_2']>IsConnected" => 'false',
73
+ "ComposeVAppParams>SourcedItem>InstantiationParams>NetworkConnectionSection>NetworkConnection[network='vm_net_2']>IpAddressAllocationMode" => 'DHCP',
74
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>Enabled" => 'true',
75
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>ComputerName" => 'wally',
76
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>ChangeSid" => 'false',
77
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>JoinDomainEnabled" => 'false',
78
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>AdminPasswordEnabled" => 'true',
79
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>AdminPasswordAuto" => 'false',
80
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>AdminPassword" => 'password',
81
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>ResetPasswordRequired" => 'false',
82
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~InstantiationParams>GuestCustomizationSection>CustomizationScript" => 'ls -sal',
83
+ }
84
+
85
+ empty_tags = [
86
+ "ComposeVAppParams>SourcedItem>Source[href='http://template_1']",
87
+ "ComposeVAppParams>SourcedItem>Source[href='http://template_2']",
88
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_1']",
89
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']",
90
+ "ComposeVAppParams>SourcedItem>Source[href='http://vm_2']~StorageProfile[href='http://profile_1']",
91
+ ]
92
+
93
+ tags_with_values_match = tags_with_values.none? do |path|
94
+ match = ((xml.css path[0]).inner_text == path[1])
95
+ puts "\tExpected '#{path[1]}' on css path '#{path[0]}' but found '#{(xml.css path[0]).inner_text}'" unless match
96
+ !match
97
+ end
98
+
99
+ tags_match = empty_tags.none? do |path|
100
+ node = xml.css path
101
+ puts "\tExpected to find '#{path}' but found '#{node}'." if node.empty?
102
+ node.empty?
103
+ end
104
+
105
+ tags_with_values_match && tags_match
106
+ end
107
+
108
+ end
@@ -0,0 +1,42 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
+
3
+ Shindo.tests("Compute::VcloudDirector | catalog_items", ['vclouddirector', 'all']) do
4
+ pending if Fog.mocking?
5
+
6
+ pending if catalog.nil?
7
+ catalog_items = catalog.catalog_items
8
+ pending if catalog_items.empty?
9
+ tests("#There is one or more catalog item").returns(true) { catalog_items.size >= 1 }
10
+ catalog_item = catalog_items.first
11
+
12
+ tests("Compute::VcloudDirector | catalog_item") do
13
+ tests("#id").returns(String){ catalog_item.id.class }
14
+ tests("#name").returns(String){ catalog_item.name.class }
15
+ tests("#href").returns(String){ catalog_item.href.class }
16
+ tests("#type").returns("application/vnd.vmware.vcloud.catalogItem+xml"){ catalog_item.type }
17
+ tests("#vapp_template").returns(VappTemplate){ catalog_item.vapp_template.class }
18
+ end
19
+
20
+ tests("Compute::VcloudDirector | catalog_item", ['lazy load attrs']) do
21
+ catalog_item.lazy_load_attrs.each do |lazy_attr|
22
+ tests("##{lazy_attr} is not loaded yet").returns(NonLoaded) { catalog_item.attributes[lazy_attr] }
23
+ end
24
+ end
25
+
26
+ tests("Compute::VcloudDirector | catalog_item", ['load on demand']) do
27
+ tests("#description is not loaded yet").returns(NonLoaded) { catalog_item.attributes[:description] }
28
+ tests("#description is loaded on demand").returns(String) { catalog_item.description.class }
29
+ tests("#description is now loaded").returns(true) { catalog_item.attributes[:description] != NonLoaded }
30
+ end
31
+
32
+ tests("Compute::VcloudDirector | catalog_item", ['lazy load attrs']) do
33
+ catalog.lazy_load_attrs.each do |lazy_attr|
34
+ tests("##{lazy_attr} is now loaded").returns(true) { catalog_item.attributes[lazy_attr] != NonLoaded }
35
+ end
36
+ end
37
+
38
+ tests("Compute::VcloudDirector | catalog_item", ['get']) do
39
+ tests("#get_by_name").returns(catalog_item.name) { catalog_items.get_by_name(catalog_item.name).name }
40
+ tests("#get").returns(catalog_item.id) { catalog_items.get(catalog_item.id).id }
41
+ end
42
+ end
@@ -0,0 +1,40 @@
1
+ require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
+
3
+ Shindo.tests("Compute::VcloudDirector | catalogs", ['vclouddirector', 'all']) do
4
+ pending if Fog.mocking?
5
+
6
+ pending if organization.catalogs.empty?
7
+ catalogs = organization.catalogs
8
+ tests("#There is one or more catalog").returns(true) { catalogs.size >= 1 }
9
+ catalog = catalogs.first
10
+
11
+ tests("Compute::VcloudDirector | catalog") do
12
+ tests("#id").returns(String){ catalog.id.class }
13
+ tests("#name").returns(String){ catalog.name.class }
14
+ tests("#href").returns(String){ catalog.href.class }
15
+ tests("#type").returns("application/vnd.vmware.vcloud.catalog+xml"){ catalog.type }
16
+ end
17
+
18
+ tests("Compute::VcloudDirector | catalog", ['lazy load attrs']) do
19
+ catalog.lazy_load_attrs.each do |lazy_attr|
20
+ tests("##{lazy_attr} is not loaded yet").returns(NonLoaded) { catalog.attributes[lazy_attr] }
21
+ end
22
+ end
23
+
24
+ tests("Compute::VcloudDirector | catalog", ['load on demand']) do
25
+ tests("#description is not loaded yet").returns(NonLoaded) { catalog.attributes[:description] }
26
+ tests("#description is loaded on demand").returns(String) { catalog.description.class }
27
+ tests("#description is now loaded").returns(true) { catalog.attributes[:description] != NonLoaded }
28
+ end
29
+
30
+ tests("Compute::VcloudDirector | catalog", ['lazy load attrs']) do
31
+ catalog.lazy_load_attrs.each do |lazy_attr|
32
+ tests("##{lazy_attr} is now loaded").returns(true) { catalog.attributes[lazy_attr] != NonLoaded }
33
+ end
34
+ end
35
+
36
+ tests("Compute::VcloudDirector | catalog", ['get']) do
37
+ tests("#get_by_name").returns(catalog.name) { catalogs.get_by_name(catalog.name).name }
38
+ tests("#get").returns(catalog.id) { catalogs.get(catalog.id).id }
39
+ end
40
+ end
@@ -0,0 +1,60 @@
1
+ require 'fog/vcloud_director/compute'
2
+
3
+ def boolean?(item)
4
+ [TrueClass, FalseClass].include?(item.class)
5
+ end
6
+
7
+ def vcloud_director
8
+ @vcloud_director ||= Fog::Compute::VcloudDirector.new(
9
+ :connection_options => {
10
+ :ssl_verify_peer => false,
11
+ :connect_timeout => 200,
12
+ :read_timeout => 200
13
+ }
14
+ )
15
+ end
16
+
17
+ def organizations
18
+ @organizations ||= vcloud_director.organizations
19
+ end
20
+
21
+ def organization
22
+ @organization ||= organizations.get_by_name(vcloud_director.org_name)
23
+ end
24
+
25
+ def catalogs
26
+ @catalogs ||= organization.catalogs
27
+ end
28
+
29
+ def catalog
30
+ catalogs.first
31
+ end
32
+
33
+ def vdcs
34
+ @vdcs ||= organization.vdcs
35
+ end
36
+
37
+ def vdc
38
+ vdcs.first
39
+ end
40
+
41
+ def vapps
42
+ @vapps ||= vdc.vapps
43
+ end
44
+
45
+ def vapp
46
+ vapps.find {|vapp| vapp.vms.size >= 1 }
47
+ end
48
+
49
+ def the_network
50
+ @network ||= organization.networks.get_by_name(NETWORK_NAME)
51
+ end
52
+
53
+ def the_catalog
54
+ @catalog ||= organization.catalogs.get_by_name(CATALOG_NAME)
55
+ end
56
+
57
+ def the_catalog_item
58
+ return nil unless the_catalog
59
+ @catalog_item ||= the_catalog.catalog_items.get_by_name(CATALOG_ITEM_NAME)
60
+ end