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