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.
- checksums.yaml +7 -0
- data/.editorconfig +11 -0
- data/.gitignore +17 -0
- data/.hound.yml +2 -0
- data/.rubocop.yml +240 -0
- data/.ruby-gemset +1 -0
- data/.travis.yml +15 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +962 -0
- data/Rakefile +19 -0
- data/fog-vcloud-director.gemspec +31 -0
- data/lib/fog/vcloud_director.rb +1 -0
- data/lib/fog/vcloud_director/compute.rb +916 -0
- data/lib/fog/vcloud_director/core.rb +69 -0
- data/lib/fog/vcloud_director/generators/compute/compose_common.rb +122 -0
- data/lib/fog/vcloud_director/generators/compute/compose_vapp.rb +25 -0
- data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
- data/lib/fog/vcloud_director/generators/compute/customization.rb +105 -0
- data/lib/fog/vcloud_director/generators/compute/disks.rb +186 -0
- data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +243 -0
- data/lib/fog/vcloud_director/generators/compute/instantiate_vapp_template_params.rb +30 -0
- data/lib/fog/vcloud_director/generators/compute/metadata.rb +104 -0
- data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +88 -0
- data/lib/fog/vcloud_director/generators/compute/recompose_vapp.rb +34 -0
- data/lib/fog/vcloud_director/generators/compute/vapp.rb +28 -0
- data/lib/fog/vcloud_director/generators/compute/vm.rb +32 -0
- data/lib/fog/vcloud_director/generators/compute/vm_network.rb +119 -0
- data/lib/fog/vcloud_director/models/compute/catalog.rb +22 -0
- data/lib/fog/vcloud_director/models/compute/catalog_item.rb +30 -0
- data/lib/fog/vcloud_director/models/compute/catalog_items.rb +33 -0
- data/lib/fog/vcloud_director/models/compute/catalogs.rb +30 -0
- data/lib/fog/vcloud_director/models/compute/custom_field.rb +18 -0
- data/lib/fog/vcloud_director/models/compute/custom_fields.rb +67 -0
- data/lib/fog/vcloud_director/models/compute/disk.rb +53 -0
- data/lib/fog/vcloud_director/models/compute/disks.rb +44 -0
- data/lib/fog/vcloud_director/models/compute/media.rb +26 -0
- data/lib/fog/vcloud_director/models/compute/medias.rb +75 -0
- data/lib/fog/vcloud_director/models/compute/network.rb +25 -0
- data/lib/fog/vcloud_director/models/compute/networks.rb +62 -0
- data/lib/fog/vcloud_director/models/compute/organization.rb +37 -0
- data/lib/fog/vcloud_director/models/compute/organizations.rb +28 -0
- data/lib/fog/vcloud_director/models/compute/tag.rb +31 -0
- data/lib/fog/vcloud_director/models/compute/tags.rb +41 -0
- data/lib/fog/vcloud_director/models/compute/task.rb +55 -0
- data/lib/fog/vcloud_director/models/compute/tasks.rb +36 -0
- data/lib/fog/vcloud_director/models/compute/template_vm.rb +52 -0
- data/lib/fog/vcloud_director/models/compute/template_vms.rb +41 -0
- data/lib/fog/vcloud_director/models/compute/vapp.rb +144 -0
- data/lib/fog/vcloud_director/models/compute/vapp_template.rb +26 -0
- data/lib/fog/vcloud_director/models/compute/vapp_templates.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vapps.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vdc.rb +45 -0
- data/lib/fog/vcloud_director/models/compute/vdcs.rb +37 -0
- data/lib/fog/vcloud_director/models/compute/vm.rb +197 -0
- data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +29 -0
- data/lib/fog/vcloud_director/models/compute/vm_network.rb +27 -0
- data/lib/fog/vcloud_director/models/compute/vm_networks.rb +19 -0
- data/lib/fog/vcloud_director/models/compute/vms.rb +46 -0
- data/lib/fog/vcloud_director/parsers/compute/disks.rb +53 -0
- data/lib/fog/vcloud_director/parsers/compute/metadata.rb +61 -0
- data/lib/fog/vcloud_director/parsers/compute/network.rb +104 -0
- data/lib/fog/vcloud_director/parsers/compute/vm.rb +86 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +55 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +107 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb +62 -0
- data/lib/fog/vcloud_director/parsers/compute/vms.rb +68 -0
- data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +37 -0
- data/lib/fog/vcloud_director/query.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/delete_catalog_item.rb +22 -0
- data/lib/fog/vcloud_director/requests/compute/delete_catalog_item_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_disk.rb +60 -0
- data/lib/fog/vcloud_director/requests/compute/delete_disk_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_logout.rb +18 -0
- data/lib/fog/vcloud_director/requests/compute/delete_media.rb +122 -0
- data/lib/fog/vcloud_director/requests/compute/delete_media_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_network.rb +62 -0
- data/lib/fog/vcloud_director/requests/compute/delete_shadow_vm.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_metadata_item_metadata.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_template.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_template_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_allocated_ip_addresses.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +63 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +48 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_control_access_params_catalog.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_control_access_params_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb +65 -0
- data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk.rb +123 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_owner.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb +90 -0
- data/lib/fog/vcloud_director/requests/compute/get_edge_gateway.rb +109 -0
- data/lib/fog/vcloud_director/requests/compute/get_entity.rb +38 -0
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +736 -0
- data/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb +69 -0
- data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_href.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_media.rb +111 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb +92 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_owner.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_network.rb +67 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_complete.rb +78 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb +61 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb +68 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/get_org_settings.rb +38 -0
- data/lib/fog/vcloud_director/requests/compute/get_org_vdc_gateways.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization.rb +100 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization_metadata_item_metadata.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp_template.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_request.rb +19 -0
- data/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb +57 -0
- data/lib/fog/vcloud_director/requests/compute/get_serial_ports_items_list.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_shadow_vm.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb +55 -0
- data/lib/fog/vcloud_director/requests/compute/get_startup_section.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_supported_systems_info.rb +239 -0
- data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1159 -0
- data/lib/fog/vcloud_director/requests/compute/get_task.rb +168 -0
- data/lib/fog/vcloud_director/requests/compute/get_task_list.rb +130 -0
- data/lib/fog/vcloud_director/requests/compute/get_template_vm.rb +74 -0
- data/lib/fog/vcloud_director/requests/compute/get_template_vms.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_thumbnail.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +176 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +84 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_ovf_descriptor.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb +58 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_customization_system_section.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata_item_metadata.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_ovf_descriptor.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_owner.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_vcloud.rb +76 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +174 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata_item_metadata.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_virtual_hardware_section.rb +29 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm.rb +74 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb +61 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_compliance_results.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +31 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +56 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_pending_question.rb +34 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_disk_attached_to.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb +150 -0
- data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +173 -0
- data/lib/fog/vcloud_director/requests/compute/post_acquire_ticket.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_answer_vm_pending_question.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/post_cancel_task.rb +43 -0
- data/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/post_check_vm_compliance.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_media.rb +102 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_vapp.rb +62 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_vapp_template.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_compose_vapp.rb +45 -0
- data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +73 -0
- data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp_template.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb +56 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +171 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_disable_nested_hv.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_disable_vapp_template_download.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/post_discard_vapp_state.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_enable_nested_hv.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_enable_vapp_template_download.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/post_enter_maintenance_mode.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/post_exit_maintenance_mode.rb +22 -0
- data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_install_vmware_tools.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +196 -0
- data/lib/fog/vcloud_director/requests/compute/post_login_session.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_power_off_vapp.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +71 -0
- data/lib/fog/vcloud_director/requests/compute/post_reboot_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_recompose_vapp.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
- data/lib/fog/vcloud_director/requests/compute/post_remove_all_snapshots.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_reset_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_revert_snapshot.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_shutdown_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_suspend_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_undeploy_vapp.rb +66 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_catalog_item_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_disk_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_media_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +86 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_vapp_template_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_upgrade_hw_version.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb +133 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_media.rb +120 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_catalog_item_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_cpu.rb +88 -0
- data/lib/fog/vcloud_director/requests/compute/put_disk_metadata_item_metadata.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_disks.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +141 -0
- data/lib/fog/vcloud_director/requests/compute/put_media_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_memory.rb +89 -0
- data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/put_network.rb +162 -0
- data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +152 -0
- data/lib/fog/vcloud_director/requests/compute/put_product_sections.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb +85 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_template_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm.rb +72 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm_capabilities.rb +44 -0
- data/lib/fog/vcloud_director/version.rb +5 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/vcloud_director/generators/compute/instantiate_vapp_template_params_spec.rb +68 -0
- data/spec/vcloud_director/requests/compute/instantiate_vapp_template_spec.rb +78 -0
- data/spec/vcloud_director/spec_helper.rb +11 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/console.rake +12 -0
- data/tasks/lint.rake +3 -0
- data/tasks/test.rake +13 -0
- data/tests/helper.rb +32 -0
- data/tests/helpers/collection_helper.rb +97 -0
- data/tests/helpers/compute/flavors_helper.rb +32 -0
- data/tests/helpers/compute/server_helper.rb +25 -0
- data/tests/helpers/compute/servers_helper.rb +10 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/formats_helper_tests.rb +110 -0
- data/tests/helpers/mock_helper.rb +95 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/lorem.txt +1 -0
- data/tests/vcloud_director/ensure_list_tests.rb +84 -0
- data/tests/vcloud_director/fixtures/test.iso +1 -0
- data/tests/vcloud_director/fixtures/vapp.xml +532 -0
- data/tests/vcloud_director/fixtures/vm.xml +213 -0
- data/tests/vcloud_director/generators/compute/compose_vapp_tests.rb +108 -0
- data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
- data/tests/vcloud_director/models/compute/catalogs_tests.rb +40 -0
- data/tests/vcloud_director/models/compute/helper.rb +60 -0
- data/tests/vcloud_director/models/compute/media_tests.rb +58 -0
- data/tests/vcloud_director/models/compute/network_tests.rb +108 -0
- data/tests/vcloud_director/models/compute/organizations_tests.rb +18 -0
- data/tests/vcloud_director/models/compute/tasks_tests.rb +56 -0
- data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +93 -0
- data/tests/vcloud_director/models/compute/vapp_template_tests.rb +29 -0
- data/tests/vcloud_director/models/compute/vapp_tests.rb +61 -0
- data/tests/vcloud_director/models/compute/vdcs_tests.rb +54 -0
- data/tests/vcloud_director/models/compute/vms_tests.rb +101 -0
- data/tests/vcloud_director/requests/compute/admin_tests.rb +16 -0
- data/tests/vcloud_director/requests/compute/catalog_tests.rb +42 -0
- data/tests/vcloud_director/requests/compute/disk_tests.rb +178 -0
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +217 -0
- data/tests/vcloud_director/requests/compute/groups_tests.rb +18 -0
- data/tests/vcloud_director/requests/compute/helper.rb +32 -0
- data/tests/vcloud_director/requests/compute/media_tests.rb +195 -0
- data/tests/vcloud_director/requests/compute/network_tests.rb +186 -0
- data/tests/vcloud_director/requests/compute/organization_tests.rb +37 -0
- data/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb +36 -0
- data/tests/vcloud_director/requests/compute/query_tests.rb +99 -0
- data/tests/vcloud_director/requests/compute/schema_helper.rb +663 -0
- data/tests/vcloud_director/requests/compute/session_tests.rb +14 -0
- data/tests/vcloud_director/requests/compute/supported_systems_tests.rb +11 -0
- data/tests/vcloud_director/requests/compute/task_tests.rb +35 -0
- data/tests/vcloud_director/requests/compute/users_tests.rb +18 -0
- data/tests/vcloud_director/requests/compute/vapp_tests.rb +123 -0
- data/tests/vcloud_director/requests/compute/vdc_storage_profile_tests.rb +27 -0
- data/tests/vcloud_director/requests/compute/vdc_tests.rb +36 -0
- data/tests/vcloud_director/requests/compute/versions_tests.rb +13 -0
- data/tests/vcloud_director/requests/compute/vm_tests.rb +185 -0
- data/tests/watchr.rb +22 -0
- metadata +461 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
require 'fog/vcloud_director/generators/compute/create_snapshot'
|
|
6
|
+
def post_create_snapshot(id, options={})
|
|
7
|
+
body = Fog::Generators::Compute::VcloudDirector::CreateSnapshot.new(options).generate_xml
|
|
8
|
+
|
|
9
|
+
request(
|
|
10
|
+
:body => body,
|
|
11
|
+
:expects => 202,
|
|
12
|
+
:headers => { 'Content-Type' => 'application/vnd.vmware.vcloud.createSnapshotParams+xml' },
|
|
13
|
+
:method => 'POST',
|
|
14
|
+
:parser => Fog::ToHashDocument.new,
|
|
15
|
+
:path => "vApp/#{id}/action/createSnapshot"
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Deploy a vApp or VM.
|
|
6
|
+
#
|
|
7
|
+
# Deployment allocates all resources for the vApp and the virtual
|
|
8
|
+
# machines it contains.
|
|
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 vApp.
|
|
14
|
+
# @param [Hash] options
|
|
15
|
+
# @option options [Integer] :deploymentLeaseSeconds Lease in seconds
|
|
16
|
+
# for deployment. A value of 0 is replaced by the organization
|
|
17
|
+
# default deploymentLeaseSeconds value.
|
|
18
|
+
# @option options [Boolean] :forceCustomization Used to specify whether
|
|
19
|
+
# to force customization on deployment, if not set default value is
|
|
20
|
+
# false.
|
|
21
|
+
# @option options [Boolean] :powerOn Used to specify whether to power
|
|
22
|
+
# on vApp on deployment, if not set default value is true.
|
|
23
|
+
# @return [Excon::Response]
|
|
24
|
+
# * body<~Hash>:
|
|
25
|
+
#
|
|
26
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-DeployVApp.html
|
|
27
|
+
# @since vCloud API version 0.9
|
|
28
|
+
def post_deploy_vapp(id, options={})
|
|
29
|
+
body = Nokogiri::XML::Builder.new do
|
|
30
|
+
attrs = {
|
|
31
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5'
|
|
32
|
+
}
|
|
33
|
+
attrs[:deploymentLeaseSeconds] = options[:deploymentLeaseSeconds] if options.key?(:deploymentLeaseSeconds)
|
|
34
|
+
attrs[:forceCustomization] = options[:forceCustomization] if options.key?(:forceCustomization)
|
|
35
|
+
attrs[:powerOn] = options[:powerOn] if options.key?(:powerOn)
|
|
36
|
+
DeployVAppParams(attrs)
|
|
37
|
+
end.to_xml
|
|
38
|
+
|
|
39
|
+
request(
|
|
40
|
+
:body => body,
|
|
41
|
+
:expects => 202,
|
|
42
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.deployVAppParams+xml'},
|
|
43
|
+
:method => 'POST',
|
|
44
|
+
:parser => Fog::ToHashDocument.new,
|
|
45
|
+
:path => "vApp/#{id}/action/deploy"
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Detach a disk from a VM.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @param [String] disk_id Object identifier of the disk.
|
|
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/POST-DetachDisk.html
|
|
16
|
+
# @since vCloud API version 5.1
|
|
17
|
+
def post_detach_disk(id, disk_id)
|
|
18
|
+
body = Nokogiri::XML::Builder.new do
|
|
19
|
+
attrs = {
|
|
20
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5'
|
|
21
|
+
}
|
|
22
|
+
DiskAttachOrDetachParams(attrs) {
|
|
23
|
+
Disk(:href => "#{end_point}disk/#{disk_id}")
|
|
24
|
+
}
|
|
25
|
+
end.to_xml
|
|
26
|
+
|
|
27
|
+
request(
|
|
28
|
+
:body => body,
|
|
29
|
+
:expects => 202,
|
|
30
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.diskAttachOrDetachParams+xml'},
|
|
31
|
+
:method => 'POST',
|
|
32
|
+
:parser => Fog::ToHashDocument.new,
|
|
33
|
+
:path => "vApp/#{id}/disk/action/detach"
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Hide hardware-assisted CPU virtualization from guest OS.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @return [Excon::Response]
|
|
12
|
+
# * body<~Hash>:
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-DisableNestedHv.html
|
|
15
|
+
# @since vCloud API version 5.1
|
|
16
|
+
def post_disable_nested_hv(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 202,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vApp/#{id}/action/disableNestedHypervisor"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Disable a vApp template for download.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the VM.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
# * body<~Hash>:
|
|
10
|
+
#
|
|
11
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-DisableVAppTemplateDownload.html
|
|
12
|
+
# @since vCloud API version 0.9
|
|
13
|
+
def post_disable_vapp_template_download(id)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 202,
|
|
16
|
+
:method => 'POST',
|
|
17
|
+
:parser => Fog::ToHashDocument.new,
|
|
18
|
+
:path => "vAppTemplate/#{id}/action/disableDownload"
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Discard suspended state of a vApp or VM.
|
|
6
|
+
#
|
|
7
|
+
# Discarding the suspended state of a vApp discards the suspended state
|
|
8
|
+
# of all VMs it contains.
|
|
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 vApp or VM.
|
|
14
|
+
# @return [Excon::Response]
|
|
15
|
+
# * body<~Hash>:
|
|
16
|
+
#
|
|
17
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-DiscardVAppState.html
|
|
18
|
+
# @since vCloud API version 0.9
|
|
19
|
+
def post_discard_vapp_state(id)
|
|
20
|
+
request(
|
|
21
|
+
:expects => 202,
|
|
22
|
+
:method => 'POST',
|
|
23
|
+
:parser => Fog::ToHashDocument.new,
|
|
24
|
+
:path => "vApp/#{id}/action/discardSuspendedState"
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Eject virtual media.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @param [String] media_id Object identifier of the media object.
|
|
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/POST-EjectCdRom.html
|
|
16
|
+
# @since vCloud API version 0.9
|
|
17
|
+
def post_eject_cd_rom(id, media_id)
|
|
18
|
+
body = Nokogiri::XML::Builder.new do
|
|
19
|
+
attrs = {
|
|
20
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5'
|
|
21
|
+
}
|
|
22
|
+
MediaInsertOrEjectParams(attrs) {
|
|
23
|
+
Media(:href => "#{end_point}media/#{media_id}")
|
|
24
|
+
}
|
|
25
|
+
end.to_xml
|
|
26
|
+
|
|
27
|
+
request(
|
|
28
|
+
:body => body,
|
|
29
|
+
:expects => 202,
|
|
30
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml'},
|
|
31
|
+
:method => 'POST',
|
|
32
|
+
:parser => Fog::ToHashDocument.new,
|
|
33
|
+
:path => "vApp/#{id}/media/action/ejectMedia"
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Expose hardware-assisted CPU virtualization to guest OS.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @return [Excon::Response]
|
|
12
|
+
# * body<~Hash>:
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-EnableNestedHv.html
|
|
15
|
+
# @since vCloud API version 5.1
|
|
16
|
+
def post_enable_nested_hv(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 202,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vApp/#{id}/action/enableNestedHypervisor"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Enable a vApp template for download.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the VM.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
# * body<~Hash>:
|
|
10
|
+
#
|
|
11
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-EnableVAppTemplateDownload.html
|
|
12
|
+
# @since vCloud API version 0.9
|
|
13
|
+
def post_enable_vapp_template_download(id)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 202,
|
|
16
|
+
:method => 'POST',
|
|
17
|
+
:parser => Fog::ToHashDocument.new,
|
|
18
|
+
:path => "vAppTemplate/#{id}/action/enableDownload"
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Place the vApp in maintenance mode.
|
|
6
|
+
#
|
|
7
|
+
# When a vApp is in maintenance mode, it is read-only to users. Only a
|
|
8
|
+
# system administrator can modify it. User-initiated tasks that are
|
|
9
|
+
# running when the vApp enters maintenance mode continue to run.
|
|
10
|
+
#
|
|
11
|
+
# @param [String] id Object identifier of the vApp.
|
|
12
|
+
# @return [Excon::Response]
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-EnterMaintenanceMode.html
|
|
15
|
+
# @since vCloud API version 1.5
|
|
16
|
+
def post_enter_maintenance_mode(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 204,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:path => "vApp/#{id}/action/enterMaintenanceMode"
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Take the vApp out of maintenance mode.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vApp.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
#
|
|
10
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ExitMaintenanceMode.html
|
|
11
|
+
# @since vCloud API version 1.5
|
|
12
|
+
def post_exit_maintenance_mode(id)
|
|
13
|
+
request(
|
|
14
|
+
:expects => 204,
|
|
15
|
+
:method => 'POST',
|
|
16
|
+
:path => "vApp/#{id}/action/exitMaintenanceMode"
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Insert virtual media.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @param [String] media_id Object identifier of the media object.
|
|
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/POST-InsertCdRom.html
|
|
16
|
+
# @since vCloud API version 0.9
|
|
17
|
+
def post_insert_cd_rom(id, media_id)
|
|
18
|
+
body = Nokogiri::XML::Builder.new do
|
|
19
|
+
attrs = {
|
|
20
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5'
|
|
21
|
+
}
|
|
22
|
+
MediaInsertOrEjectParams(attrs) {
|
|
23
|
+
Media(:href => "#{end_point}media/#{media_id}")
|
|
24
|
+
}
|
|
25
|
+
end.to_xml
|
|
26
|
+
|
|
27
|
+
request(
|
|
28
|
+
:body => body,
|
|
29
|
+
:expects => 202,
|
|
30
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.mediaInsertOrEjectParams+xml'},
|
|
31
|
+
:method => 'POST',
|
|
32
|
+
:parser => Fog::ToHashDocument.new,
|
|
33
|
+
:path => "vApp/#{id}/media/action/insertMedia"
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Install VMware Tools on a running VM.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @return [Excon::Response]
|
|
12
|
+
# * body<~Hash>:
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-InstallVMwareTools.html
|
|
15
|
+
# @since vCloud API version 1.5
|
|
16
|
+
def post_install_vmware_tools(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 202,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vApp/#{id}/action/installVMwareTools"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Create a vApp from a vApp template.
|
|
6
|
+
#
|
|
7
|
+
# The response includes a Task element. You can monitor the task to to
|
|
8
|
+
# track the creation of the vApp.
|
|
9
|
+
#
|
|
10
|
+
# @note This may not work at all or may work only under certain
|
|
11
|
+
# circumstances.
|
|
12
|
+
#
|
|
13
|
+
# @param [String] id Object identifier of the vDC.
|
|
14
|
+
# @param [String] vapp_template_id Object identifier of the vApp
|
|
15
|
+
# template.
|
|
16
|
+
# @param [String] name
|
|
17
|
+
# @param [Hash] options
|
|
18
|
+
# @option options [Boolean] :deploy True if the vApp should be deployed
|
|
19
|
+
# at instantiation. Defaults to true.
|
|
20
|
+
# @option options [Boolean] :powerOn True if the vApp should be
|
|
21
|
+
# powered-on at instantiation. Defaults to true.
|
|
22
|
+
# @option options [String] :Description Optional description.
|
|
23
|
+
# @option options [Hash] :InstantiationParams Instantiation parameters
|
|
24
|
+
# for the composed vApp.
|
|
25
|
+
# * :LeaseSettingsSection<~Hasn>:
|
|
26
|
+
# * :DeploymentLeaseTimeInSeconds<~Integer> - Deployment lease in
|
|
27
|
+
# seconds.
|
|
28
|
+
# * :StorageLeaseTimeInSeconds<~Integer> - Storage lease in
|
|
29
|
+
# seconds.
|
|
30
|
+
# * :DeploymentLeaseExpiration<~Integer> - Expiration date/time of
|
|
31
|
+
# deployment lease.
|
|
32
|
+
# * :StorageLeaseExpiration<~Integer> - Expiration date/time of
|
|
33
|
+
# storage lease.
|
|
34
|
+
# * :NetworkConfigSection<~Hash>:
|
|
35
|
+
# * :NetworkConfig<~Hash>:
|
|
36
|
+
# * :networkName<~String> - The name of the vApp network.
|
|
37
|
+
# * :Configuration<~Hash>:
|
|
38
|
+
# * :ParentNetwork<~Hash>:
|
|
39
|
+
# * :href<~String> -
|
|
40
|
+
# * :FenceMode<~String> - Isolation type of the network.
|
|
41
|
+
# @option options [Boolean] :IsSourceDelete Set to true to delete the
|
|
42
|
+
# source object after the operation completes.
|
|
43
|
+
# @option options [Boolean] :AllEULAsAccepted True confirms acceptance
|
|
44
|
+
# of all EULAs in a vApp template.
|
|
45
|
+
# @return [Excon::Response]
|
|
46
|
+
# * body<~Hash>:
|
|
47
|
+
#
|
|
48
|
+
# @raise Fog::Compute::VcloudDirector::DuplicateName
|
|
49
|
+
#
|
|
50
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-InstantiateVAppTemplate.html
|
|
51
|
+
# @since vCloud API version 0.9
|
|
52
|
+
def post_instantiate_vapp_template(id, vapp_template_id, name, options={})
|
|
53
|
+
body = Nokogiri::XML::Builder.new do
|
|
54
|
+
attrs = {
|
|
55
|
+
'xmlns' => 'http://www.vmware.com/vcloud/v1.5',
|
|
56
|
+
'xmlns:ovf' => 'http://schemas.dmtf.org/ovf/envelope/1',
|
|
57
|
+
:name => name
|
|
58
|
+
}
|
|
59
|
+
attrs[:deploy] = options[:deploy] if options.key?(:deploy)
|
|
60
|
+
attrs[:powerOn] = options[:powerOn] if options.key?(:powerOn)
|
|
61
|
+
InstantiateVAppTemplateParams(attrs) {
|
|
62
|
+
if options.key?(:Description)
|
|
63
|
+
Description options[:Description]
|
|
64
|
+
end
|
|
65
|
+
if instantiation_params = options[:InstantiationParams]
|
|
66
|
+
InstantiationParams {
|
|
67
|
+
if section = instantiation_params[:LeaseSettingsSection]
|
|
68
|
+
LeaseSettingsSection {
|
|
69
|
+
self['ovf'].Info 'Lease settings section'
|
|
70
|
+
if section.key?(:DeploymentLeaseInSeconds)
|
|
71
|
+
DeploymentLeaseInSeconds section[:DeploymentLeaseInSeconds]
|
|
72
|
+
end
|
|
73
|
+
if section.key?(:StorageLeaseInSeconds)
|
|
74
|
+
StorageLeaseInSeconds section[:StorageLeaseInSeconds]
|
|
75
|
+
end
|
|
76
|
+
if section.key?(:DeploymentLeaseExpiration)
|
|
77
|
+
DeploymentLeaseExpiration section[:DeploymentLeaseExpiration].strftime('%Y-%m-%dT%H:%M:%S%z')
|
|
78
|
+
end
|
|
79
|
+
if section.key?(:StorageLeaseExpiration)
|
|
80
|
+
StorageLeaseExpiration section[:StorageLeaseExpiration].strftime('%Y-%m-%dT%H:%M:%S%z')
|
|
81
|
+
end
|
|
82
|
+
}
|
|
83
|
+
end
|
|
84
|
+
if section = instantiation_params[:NetworkConfigSection]
|
|
85
|
+
NetworkConfigSection {
|
|
86
|
+
self['ovf'].Info 'Configuration parameters for logical networks'
|
|
87
|
+
if network_configs = section[:NetworkConfig]
|
|
88
|
+
network_configs = [network_configs] if network_configs.is_a?(Hash)
|
|
89
|
+
network_configs.each do |network_config|
|
|
90
|
+
NetworkConfig(:networkName => network_config[:networkName]) {
|
|
91
|
+
if configuration = network_config[:Configuration]
|
|
92
|
+
Configuration {
|
|
93
|
+
ParentNetwork(configuration[:ParentNetwork])
|
|
94
|
+
FenceMode configuration[:FenceMode]
|
|
95
|
+
}
|
|
96
|
+
end
|
|
97
|
+
}
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
}
|
|
101
|
+
end
|
|
102
|
+
}
|
|
103
|
+
end
|
|
104
|
+
Source(:href => "#{end_point}vAppTemplate/#{vapp_template_id}")
|
|
105
|
+
if options.key?(:IsSourceDelete)
|
|
106
|
+
IsSourceDelete options[:IsSourceDelete]
|
|
107
|
+
end
|
|
108
|
+
if options.key?(:AllEULAsAccepted)
|
|
109
|
+
AllEULAsAccepted options[:AllEULAsAccepted]
|
|
110
|
+
end
|
|
111
|
+
}
|
|
112
|
+
end.to_xml
|
|
113
|
+
|
|
114
|
+
begin
|
|
115
|
+
request(
|
|
116
|
+
:body => body,
|
|
117
|
+
:expects => 201,
|
|
118
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml'},
|
|
119
|
+
:method => 'POST',
|
|
120
|
+
:parser => Fog::ToHashDocument.new,
|
|
121
|
+
:path => "vdc/#{id}/action/instantiateVAppTemplate"
|
|
122
|
+
)
|
|
123
|
+
rescue Fog::Compute::VcloudDirector::BadRequest => e
|
|
124
|
+
if e.minor_error_code == 'DUPLICATE_NAME'
|
|
125
|
+
raise Fog::Compute::VcloudDirector::DuplicateName.new(e.message)
|
|
126
|
+
end
|
|
127
|
+
raise
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
class Mock
|
|
133
|
+
|
|
134
|
+
def post_instantiate_vapp_template(vdc_id, vapp_template_id, name, options={})
|
|
135
|
+
unless data[:vdcs][vdc_id]
|
|
136
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
137
|
+
"No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
|
|
138
|
+
)
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
type = 'vApp'
|
|
142
|
+
vapp_id = "vapp-#{uuid}"
|
|
143
|
+
vm_id = "vm-#{uuid}"
|
|
144
|
+
|
|
145
|
+
data[:vapps][vapp_id] = {
|
|
146
|
+
:name => name,
|
|
147
|
+
:vdc_id => vdc_id,
|
|
148
|
+
:description => options.fetch(:description, "vApp created from #{vapp_template_id}"),
|
|
149
|
+
:networks => [],
|
|
150
|
+
:metadata => {:'vapp_key' => 'vapp_value'},
|
|
151
|
+
:status => "0",
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
data[:vms][vm_id] = {
|
|
155
|
+
:name => 'vm-template-name',
|
|
156
|
+
:parent_vapp => vapp_id,
|
|
157
|
+
:memory_in_mb => "1024",
|
|
158
|
+
:cpu_count => "2",
|
|
159
|
+
:metadata => {:'vm_key' => 'vm_value'},
|
|
160
|
+
:nics => [
|
|
161
|
+
{
|
|
162
|
+
:network_name => 'Default Network',
|
|
163
|
+
:mac_address => "00:50:56:00:00:00",
|
|
164
|
+
:ip_address => "192.168.0.1",
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
owner = {
|
|
170
|
+
:href => make_href("#{type}/#{vapp_id}"),
|
|
171
|
+
:type => "application/vnd.vmware.vcloud.#{type}+xml"
|
|
172
|
+
}
|
|
173
|
+
task_id = enqueue_task(
|
|
174
|
+
"Creating Virtual Application #{name}(#{vapp_id})", 'vdcInstantiateVapp', owner,
|
|
175
|
+
:on_success => lambda do
|
|
176
|
+
data[:vapps][vapp_id][:status] = "8"
|
|
177
|
+
end
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
body = get_vapp(vapp_id).body
|
|
181
|
+
|
|
182
|
+
body[:Tasks] = {
|
|
183
|
+
:Task => task_body(task_id)
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
Excon::Response.new(
|
|
187
|
+
:status => 201,
|
|
188
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
189
|
+
:body => body
|
|
190
|
+
)
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
end
|