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,33 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Suspend a vApp or VM.
|
|
6
|
+
#
|
|
7
|
+
# If used on a vApp, suspends all VMs in the vApp. If used on a VM,
|
|
8
|
+
# suspends the VM. This operation is available only for a vApp or VM
|
|
9
|
+
# that is powered on.
|
|
10
|
+
#
|
|
11
|
+
# This operation is asynchronous and returns a task that you can
|
|
12
|
+
# monitor to track the progress of the request.
|
|
13
|
+
#
|
|
14
|
+
# @param [String] id Object identifier of the vApp or VM.
|
|
15
|
+
# @return [Excon::Response]
|
|
16
|
+
# * body<~Hash>:
|
|
17
|
+
#
|
|
18
|
+
# @raise [Fog::Compute::VcloudDirector::BadRequest]
|
|
19
|
+
#
|
|
20
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-SuspendVApp.html
|
|
21
|
+
# @since vCloud API version 0.9
|
|
22
|
+
def post_suspend_vapp(id)
|
|
23
|
+
request(
|
|
24
|
+
:expects => 202,
|
|
25
|
+
:method => 'POST',
|
|
26
|
+
:parser => Fog::ToHashDocument.new,
|
|
27
|
+
:path => "vApp/#{id}/power/action/suspend"
|
|
28
|
+
)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Undeploy a vApp/VM.
|
|
6
|
+
#
|
|
7
|
+
# Undeployment deallocates all resources used by the vApp and the VMs
|
|
8
|
+
# 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 [String] :UndeployPowerAction The specified action is
|
|
16
|
+
# applied to all virtual machines in the vApp. All values other than
|
|
17
|
+
# default ignore actions, order, and delay specified in the
|
|
18
|
+
# StartupSection. One of:
|
|
19
|
+
# - powerOff (Power off the virtual machines. This is the default
|
|
20
|
+
# action if this attribute is missing or empty)
|
|
21
|
+
# - suspend (Suspend the virtual machines)
|
|
22
|
+
# - shutdown (Shut down the virtual machines)
|
|
23
|
+
# - force (Attempt to power off the virtual machines. Failures in
|
|
24
|
+
# undeploying the virtual machine or associated networks are
|
|
25
|
+
# ignored. All references to the vApp and its virtual machines are
|
|
26
|
+
# removed from the database)
|
|
27
|
+
# - default (Use the actions, order, and delay specified in the
|
|
28
|
+
# StartupSection).
|
|
29
|
+
# @return [Excon::Response]
|
|
30
|
+
# * body<~Hash>:
|
|
31
|
+
#
|
|
32
|
+
# @raise [Fog::Compute::VcloudDirector::BadRequest]
|
|
33
|
+
#
|
|
34
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UndeployVApp.html
|
|
35
|
+
# @since vCloud API version 0.9
|
|
36
|
+
def post_undeploy_vapp(id, options={})
|
|
37
|
+
body = Nokogiri::XML::Builder.new do
|
|
38
|
+
attrs = {
|
|
39
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5'
|
|
40
|
+
}
|
|
41
|
+
UndeployVAppParams(attrs) {
|
|
42
|
+
if options[:UndeployPowerAction]
|
|
43
|
+
UndeployPowerAction options[:UndeployPowerAction]
|
|
44
|
+
end
|
|
45
|
+
}
|
|
46
|
+
end.to_xml
|
|
47
|
+
|
|
48
|
+
request(
|
|
49
|
+
:body => body,
|
|
50
|
+
:expects => 202,
|
|
51
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.undeployVAppParams+xml'},
|
|
52
|
+
:method => 'POST',
|
|
53
|
+
:parser => Fog::ToHashDocument.new,
|
|
54
|
+
:path => "vApp/#{id}/action/undeploy"
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# @deprecated Use {#post_undeploy_vapp} instead.
|
|
59
|
+
def undeploy(id)
|
|
60
|
+
Fog::Logger.deprecation("#{self} => ##{undeploy} is deprecated, use ##{post_undeploy_vapp} instead [light_black](#{caller.first})[/]")
|
|
61
|
+
post_undeploy_vapp(id, :UndeployPowerAction => 'shutdown')
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Merge the metadata provided in the request with existing catalog item metadata.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the catalog item.
|
|
8
|
+
# @param [Hash{String=>Boolean,DateTime,Fixnum,String}] metadata
|
|
9
|
+
# @return [Excon::Response]
|
|
10
|
+
# * body<~Hash>:
|
|
11
|
+
#
|
|
12
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UpdateCatalogItemMetadata.html
|
|
13
|
+
# @since vCloud API version 1.5
|
|
14
|
+
def post_update_catalog_item_metadata(id, metadata={})
|
|
15
|
+
body = Nokogiri::XML::Builder.new do
|
|
16
|
+
attrs = {
|
|
17
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
18
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
|
+
}
|
|
20
|
+
Metadata(attrs) {
|
|
21
|
+
metadata.each do |key, value|
|
|
22
|
+
MetadataEntry {
|
|
23
|
+
Key key
|
|
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
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 202,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "catalogItem/#{id}/metadata/"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Merge the metadata provided in the request with existing metadata.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the disk.
|
|
8
|
+
# @param [Hash{String=>Boolean,DateTime,Fixnum,String}] metadata
|
|
9
|
+
# @return [Excon::Response]
|
|
10
|
+
# * body<~Hash>:
|
|
11
|
+
#
|
|
12
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UpdateDiskMetadata.html
|
|
13
|
+
# @since vCloud API version 5.1
|
|
14
|
+
def post_update_disk_metadata(id, metadata={})
|
|
15
|
+
body = Nokogiri::XML::Builder.new do
|
|
16
|
+
attrs = {
|
|
17
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
18
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
|
+
}
|
|
20
|
+
Metadata(attrs) {
|
|
21
|
+
metadata.each do |key, value|
|
|
22
|
+
MetadataEntry {
|
|
23
|
+
Key key
|
|
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
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 202,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "disk/#{id}/metadata/"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Merge the metadata provided in the request with existing metadata.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the media object.
|
|
8
|
+
# @param [Hash{String=>Boolean,DateTime,Fixnum,String}] metadata
|
|
9
|
+
# @return [Excon::Response]
|
|
10
|
+
# * body<~Hash>:
|
|
11
|
+
#
|
|
12
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UpdateMediaMetadata.html
|
|
13
|
+
# @since vCloud API version 1.5
|
|
14
|
+
def post_update_media_metadata(id, metadata={})
|
|
15
|
+
body = Nokogiri::XML::Builder.new do
|
|
16
|
+
attrs = {
|
|
17
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
18
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
|
+
}
|
|
20
|
+
Metadata(attrs) {
|
|
21
|
+
metadata.each do |key, value|
|
|
22
|
+
MetadataEntry {
|
|
23
|
+
Key key
|
|
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
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 202,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "media/#{id}/metadata/"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Merge the metadata provided in the request with existing metadata.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vApp or VM.
|
|
8
|
+
# @param [Hash{String=>Boolean,DateTime,Fixnum,String}] metadata
|
|
9
|
+
# @return [Excon::Response]
|
|
10
|
+
# * body<~Hash>:
|
|
11
|
+
#
|
|
12
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UpdateVAppMetadata.html
|
|
13
|
+
# @since vCloud API version 1.5
|
|
14
|
+
def post_update_vapp_metadata(id, metadata={})
|
|
15
|
+
body = Nokogiri::XML::Builder.new do
|
|
16
|
+
attrs = {
|
|
17
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
18
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
|
+
}
|
|
20
|
+
Metadata(attrs) {
|
|
21
|
+
metadata.each do |key, value|
|
|
22
|
+
MetadataEntry {
|
|
23
|
+
Key key
|
|
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
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 202,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "vApp/#{id}/metadata/"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
class Mock
|
|
51
|
+
def post_update_vapp_metadata(id, metadata={})
|
|
52
|
+
unless vm = data[:vms][id]
|
|
53
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
54
|
+
'This operation is denied.'
|
|
55
|
+
)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
owner = {
|
|
59
|
+
:href => make_href("vApp/#{id}"),
|
|
60
|
+
:type => 'application/vnd.vmware.vcloud.vApp+xml'
|
|
61
|
+
}
|
|
62
|
+
task_id = enqueue_task(
|
|
63
|
+
"Updating Virtual Machine #{data[:vms][id][:name]}(#{id})", 'vappUpdateVm', owner,
|
|
64
|
+
:on_success => lambda do
|
|
65
|
+
metadata.each do |k,v|
|
|
66
|
+
data[:tags][id] ||= {}
|
|
67
|
+
data[:tags][id][k] = v
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
)
|
|
71
|
+
body = {
|
|
72
|
+
:xmlns => xmlns,
|
|
73
|
+
:xmlns_xsi => xmlns_xsi,
|
|
74
|
+
:xsi_schemaLocation => xsi_schema_location,
|
|
75
|
+
}.merge(task_body(task_id))
|
|
76
|
+
|
|
77
|
+
Excon::Response.new(
|
|
78
|
+
:status => 202,
|
|
79
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
80
|
+
:body => body
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Merge the metadata provided in the request with existing metadata.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vApp template.
|
|
8
|
+
# @param [Hash{String=>Boolean,DateTime,Fixnum,String}] metadata
|
|
9
|
+
# @return [Excon::Response]
|
|
10
|
+
# * body<~Hash>:
|
|
11
|
+
#
|
|
12
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-UpdateVAppTemplateMetadata.html
|
|
13
|
+
# @since vCloud API version 1.5
|
|
14
|
+
def post_update_vapp_template_metadata(id, metadata={})
|
|
15
|
+
body = Nokogiri::XML::Builder.new do
|
|
16
|
+
attrs = {
|
|
17
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
18
|
+
'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
|
|
19
|
+
}
|
|
20
|
+
Metadata(attrs) {
|
|
21
|
+
metadata.each do |key, value|
|
|
22
|
+
MetadataEntry {
|
|
23
|
+
Key key
|
|
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
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 202,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.metadata+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "vAppTemplate/#{id}/metadata/"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Upgrade the virtual hardware version of a VM to the highest supported
|
|
6
|
+
# virtual hardware version of the vDC that contains it.
|
|
7
|
+
#
|
|
8
|
+
# This operation is asynchronous and returns a task that you can
|
|
9
|
+
# monitor to track the progress of the request.
|
|
10
|
+
#
|
|
11
|
+
# @param [String] id Object identifier of the VM.
|
|
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-UpgradeHwVersion.html
|
|
16
|
+
# @since vCloud API version 5.1
|
|
17
|
+
def post_upgrade_hw_version(id)
|
|
18
|
+
request(
|
|
19
|
+
:expects => 202,
|
|
20
|
+
:method => 'POST',
|
|
21
|
+
:parser => Fog::ToHashDocument.new,
|
|
22
|
+
:path => "vApp/#{id}/action/upgradeHardwareVersion"
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Create a disk.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vDC.
|
|
8
|
+
# @param [String] name The name of the disk.
|
|
9
|
+
# @param [Integer] size Size of the disk. For modify operation this is
|
|
10
|
+
# required only for the XSD validation it could not be changed.
|
|
11
|
+
# @param [Hash] options
|
|
12
|
+
# @option options [String] :operationKey Optional unique identifier to
|
|
13
|
+
# support idempotent semantics for create and delete operations.
|
|
14
|
+
# @option options [Integer] :busSubType Disk bus sub type.
|
|
15
|
+
# @option options [Integer] :busType Disk bus type.
|
|
16
|
+
# @option options [String] :Description Optional description.
|
|
17
|
+
# @return [Excon::Response]
|
|
18
|
+
# * body<~Hash>:
|
|
19
|
+
# * :href<~String> - The URI of the disk.
|
|
20
|
+
# * :type<~String> - The MIME type of the disk.
|
|
21
|
+
# * :id<~String> - The disk identifier, expressed in URN format.
|
|
22
|
+
# * :operationKey<~String> - Optional unique identifier to support
|
|
23
|
+
# idempotent semantics for create and delete operations.
|
|
24
|
+
# * :name<~String> - The name of the disk.
|
|
25
|
+
# * :status<~String> - Creation status of the disk.
|
|
26
|
+
# * :busSubType<~String> - Disk bus sub type.
|
|
27
|
+
# * :busType<~String> - Disk bus type.
|
|
28
|
+
# * :size<~String> - Size of the disk.
|
|
29
|
+
# * :Link:
|
|
30
|
+
# * :Description<~String> - Optional description.
|
|
31
|
+
# * :Tasks<~Hash>:
|
|
32
|
+
# * :StorageProfile<~Hash> - Storage profile of the disk.
|
|
33
|
+
# * :href<~String> - Contains the URI to the entity.
|
|
34
|
+
# * :name<~String> - Contains the name of the entity.
|
|
35
|
+
# * :type<~String> - Contains the type of the entity.
|
|
36
|
+
# * :Owner<~Hash> - Disk owner.
|
|
37
|
+
# * :type<~String> - The MIME type of the entity.
|
|
38
|
+
# * :User<~Hash> - Reference to the user who is the owner of this
|
|
39
|
+
# disk.
|
|
40
|
+
# * :href<~String> - Contains the URI to the entity.
|
|
41
|
+
# * :name<~String> - Contains the name of the entity.
|
|
42
|
+
# * :type<~String> - Contains the type of the entity.
|
|
43
|
+
#
|
|
44
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateDisk.html
|
|
45
|
+
# @since vCloud API version 5.1
|
|
46
|
+
def post_upload_disk(id, name, size, options={})
|
|
47
|
+
body = Nokogiri::XML::Builder.new do
|
|
48
|
+
DiskCreateParams(:xmlns => 'http://www.vmware.com/vcloud/v1.5') {
|
|
49
|
+
attrs = {
|
|
50
|
+
:name => name,
|
|
51
|
+
:size => size
|
|
52
|
+
}
|
|
53
|
+
attrs[:operationKey] = options[:operationKey] if options.key?(:operationKey)
|
|
54
|
+
attrs[:busSubType] = options[:busSubType] if options.key?(:busSubType)
|
|
55
|
+
attrs[:busType] = options[:busType] if options.key?(:busType)
|
|
56
|
+
Disk(attrs) {
|
|
57
|
+
if options.key?(:Description)
|
|
58
|
+
Description options[:Description]
|
|
59
|
+
end
|
|
60
|
+
if options.key?(:StorageProfile)
|
|
61
|
+
attrs = {
|
|
62
|
+
:href => options[:StorageProfile][:href]
|
|
63
|
+
}
|
|
64
|
+
StorageProfile(attrs)
|
|
65
|
+
end
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
end.to_xml
|
|
69
|
+
|
|
70
|
+
request(
|
|
71
|
+
:body => body,
|
|
72
|
+
:expects => 201,
|
|
73
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.diskCreateParams+xml'},
|
|
74
|
+
:method => 'POST',
|
|
75
|
+
:parser => Fog::ToHashDocument.new,
|
|
76
|
+
:path => "vdc/#{id}/disk"
|
|
77
|
+
)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
class Mock
|
|
82
|
+
def post_upload_disk(id, name, size, options={})
|
|
83
|
+
unless size.to_s =~ /^\d+$/
|
|
84
|
+
raise Fog::Compute::VcloudDirector::BadRequest.new(
|
|
85
|
+
"validation error on field 'diskSpec.sizeBytes': must be greater than or equal to 0"
|
|
86
|
+
)
|
|
87
|
+
end
|
|
88
|
+
unless data[:vdcs][id]
|
|
89
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
90
|
+
'No access to entity "(com.vmware.vcloud.entity.vdc:%s)".' % id
|
|
91
|
+
)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
disk_id = uuid
|
|
95
|
+
|
|
96
|
+
owner = {
|
|
97
|
+
:href => make_href("disk/#{disk_id}"),
|
|
98
|
+
:type => 'application/vnd.vmware.vcloud.disk+xml'
|
|
99
|
+
}
|
|
100
|
+
task_id = enqueue_task(
|
|
101
|
+
"Creating Disk #{name}(#{disk_id})", 'vdcCreateDisk', owner,
|
|
102
|
+
:on_success => lambda do
|
|
103
|
+
data[:disks][disk_id][:status] = 1
|
|
104
|
+
end
|
|
105
|
+
)
|
|
106
|
+
|
|
107
|
+
disk = {
|
|
108
|
+
:description => options[:Description],
|
|
109
|
+
:name => name,
|
|
110
|
+
:size => size.to_i,
|
|
111
|
+
:status => 0,
|
|
112
|
+
:tasks => [task_id],
|
|
113
|
+
:vdc_id => id,
|
|
114
|
+
:vdc_storage_class => data[:vdc_storage_classes].find {|k,v| v[:default]}.first
|
|
115
|
+
}
|
|
116
|
+
data[:disks][disk_id] = disk
|
|
117
|
+
|
|
118
|
+
body = {
|
|
119
|
+
:xmlns => xmlns,
|
|
120
|
+
:xmlns_xsi => xmlns_xsi,
|
|
121
|
+
:xsi_schemaLocation => xsi_schema_location
|
|
122
|
+
}.merge(disk_body(disk_id))
|
|
123
|
+
|
|
124
|
+
Excon::Response.new(
|
|
125
|
+
:status => 201,
|
|
126
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
127
|
+
:body => body
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|