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,25 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve metadata associated with a vDC.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vDC.
|
|
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/GET-VdcMetadata.html
|
|
12
|
+
# @since vCloud API version 1.5
|
|
13
|
+
def get_vdc_metadata(id)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 200,
|
|
16
|
+
:idempotent => true,
|
|
17
|
+
:method => 'GET',
|
|
18
|
+
:parser => Fog::ToHashDocument.new,
|
|
19
|
+
:path => "vdc/#{id}/metadata/"
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve the value of the specified key from virtual datacenter
|
|
6
|
+
# metadata.
|
|
7
|
+
#
|
|
8
|
+
# @param [String] id Object identifier of the network.
|
|
9
|
+
# @param [String] domain
|
|
10
|
+
# @param [String] key Key of the metadata.
|
|
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/GET-VdcMetadataItem-metadata.html
|
|
15
|
+
# @since vCloud API version 1.5
|
|
16
|
+
def get_vdc_metadata_item_metadata(id, domain, key)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 200,
|
|
19
|
+
:idempotent => true,
|
|
20
|
+
:method => 'GET',
|
|
21
|
+
:parser => Fog::ToHashDocument.new,
|
|
22
|
+
:path => "admin/vdc/#{id}/metadata/#{URI.escape(key)})"
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
extend Fog::Deprecation
|
|
6
|
+
deprecate :get_vdc_storage_profile, :get_vdc_storage_class
|
|
7
|
+
|
|
8
|
+
# Returns storage class referred by the Id. All properties of the
|
|
9
|
+
# storage classes are visible to vcloud user, except for VDC Storage
|
|
10
|
+
# Class reference.
|
|
11
|
+
#
|
|
12
|
+
# @param [String] id Object identifier of the vDC storage profile.
|
|
13
|
+
# @return [Excon::Response]
|
|
14
|
+
# * body<~Hash>:
|
|
15
|
+
# * :href<~String> - The URI of the entity.
|
|
16
|
+
# * :type<~String> - The MIME type of the entity.
|
|
17
|
+
# * :id<~String> - The entity identifier, expressed in URN format.
|
|
18
|
+
# The value of this attribute uniquely identifies the entity,
|
|
19
|
+
# persists for the life of the entity, and is never reused.
|
|
20
|
+
# * :name<~String> - The name of the entity.
|
|
21
|
+
# * :Description<~String> - Optional description.
|
|
22
|
+
# * :Enabled<~String> - True if this storage profile is enabled for
|
|
23
|
+
# use in the vDC.
|
|
24
|
+
# * :Units<~String> - Units used to define :Limit.
|
|
25
|
+
# * :Limit<~String> - Maximum number of :Units allocated for this
|
|
26
|
+
# storage profile.
|
|
27
|
+
# * :Default<~String> - True if this is default storage profile for
|
|
28
|
+
# this vDC. The default storage profile is used when an object
|
|
29
|
+
# that can specify a storage profile is created with no storage
|
|
30
|
+
# profile specified.
|
|
31
|
+
#
|
|
32
|
+
# @raise [Fog::Compute::VcloudDirector::Forbidden]
|
|
33
|
+
#
|
|
34
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VdcStorageClass.html
|
|
35
|
+
def get_vdc_storage_class(id)
|
|
36
|
+
request(
|
|
37
|
+
:expects => 200,
|
|
38
|
+
:idempotent => true,
|
|
39
|
+
:method => 'GET',
|
|
40
|
+
:parser => Fog::ToHashDocument.new,
|
|
41
|
+
:path => "vdcStorageProfile/#{id}"
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class Mock
|
|
47
|
+
def get_vdc_storage_class(id)
|
|
48
|
+
unless vdc_storage_class = data[:vdc_storage_classes][id]
|
|
49
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
50
|
+
"No access to entity \"(com.vmware.vcloud.entity.vdcstorageProfile:#{id})\"."
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
body =
|
|
55
|
+
{:xmlns=>xmlns,
|
|
56
|
+
:xmlns_xsi=>xmlns_xsi,
|
|
57
|
+
:name=>vdc_storage_class[:name],
|
|
58
|
+
:id=>"urn:vcloud:vdcstorageProfile:#{id}",
|
|
59
|
+
:type=>"application/vnd.vmware.vcloud.vdcStorageProfile+xml",
|
|
60
|
+
:href=>make_href("api/vdcStorageProfile/#{id}"),
|
|
61
|
+
:xsi_schemaLocation=>xsi_schema_location,
|
|
62
|
+
:Link=>
|
|
63
|
+
[{:rel=>"up",
|
|
64
|
+
:type=>"application/vnd.vmware.vcloud.vdc+xml",
|
|
65
|
+
:href=>make_href("vdc/#{vdc_storage_class[:vdc]}")},
|
|
66
|
+
{:rel=>"down",
|
|
67
|
+
:type=>"application/vnd.vmware.vcloud.metadata+xml",
|
|
68
|
+
:href=>make_href("vdcStorageProfile/#{id}/metadata")}],
|
|
69
|
+
:Enabled=>vdc_storage_class[:enabled].to_s,
|
|
70
|
+
:Units=>vdc_storage_class[:units],
|
|
71
|
+
:Limit=>vdc_storage_class[:limit].to_s,
|
|
72
|
+
:Default=>vdc_storage_class[:default].to_s}
|
|
73
|
+
|
|
74
|
+
Excon::Response.new(
|
|
75
|
+
:status => 200,
|
|
76
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
77
|
+
:body => body
|
|
78
|
+
)
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
extend Fog::Deprecation
|
|
6
|
+
deprecate :get_vdc_storage_profile_metadata, :get_vdc_storage_class_metadata
|
|
7
|
+
|
|
8
|
+
# Retrieve metadata associated with the vDC storage profile.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the vDC storage profile.
|
|
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/GET-VdcStorageClassMetadata.html
|
|
15
|
+
def get_vdc_storage_class_metadata(id)
|
|
16
|
+
request(
|
|
17
|
+
:expects => 200,
|
|
18
|
+
:idempotent => true,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vdcStorageProfile/#{id}/metadata/"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve metadata associated with the vDC storage profile.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vDC storage profile.
|
|
8
|
+
# @param [String] key Key of the 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/GET-VdcStorageClassMetadataItem-metadata.html
|
|
13
|
+
def get_vdc_storage_class_metadata_item_metadata(id, key)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 200,
|
|
16
|
+
:idempotent => true,
|
|
17
|
+
:method => 'GET',
|
|
18
|
+
:parser => Fog::ToHashDocument.new,
|
|
19
|
+
:path => "vdcStorageProfile/#{id}/metadata/#{URI.escape(key)})"
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieves a list of vdcs in the organization.
|
|
6
|
+
#
|
|
7
|
+
# @param [Hash] options
|
|
8
|
+
# @option options [String] :sortAsc (Sorted by database ID) Sort
|
|
9
|
+
# results by attribute-name in ascending order. attribute-name cannot
|
|
10
|
+
# include metadata.
|
|
11
|
+
# @option options [String] :sortDesc (Sorted by database ID) Sort
|
|
12
|
+
# results by attribute-name in descending order. attribute-name
|
|
13
|
+
# cannot include metadata.
|
|
14
|
+
# @option options [Integer] :page (1) If the query results span
|
|
15
|
+
# multiple pages, return this page.
|
|
16
|
+
# @option options [Integer] :pageSize (25) Number of results per page,
|
|
17
|
+
# to a maximum of 128.
|
|
18
|
+
# @option options [String] :format (records) One of the following
|
|
19
|
+
# types:
|
|
20
|
+
# - *references* Returns a reference to each object, including its
|
|
21
|
+
# :name, :type, and :href attributes.
|
|
22
|
+
# - *records* Returns all database records for each object, with each
|
|
23
|
+
# record as an attribute.
|
|
24
|
+
# - *idrecords* Identical to the records format, except that object
|
|
25
|
+
# references are returned in :id format rather than :href format.
|
|
26
|
+
# @option options [Array<String>] :fields (all static attribute names)
|
|
27
|
+
# List of attribute names or metadata key names to return.
|
|
28
|
+
# @option options [Integer] :offset (0) Integer value specifying the
|
|
29
|
+
# first record to return. Record numbers < offset are not returned.
|
|
30
|
+
# @option options [String] :filter (none) Filter expression.
|
|
31
|
+
# @return [Excon::Response]
|
|
32
|
+
# * hash<~Hash>:
|
|
33
|
+
# * :href<~String> - The URI of the entity.
|
|
34
|
+
# * :type<~String> - The MIME type of the entity.
|
|
35
|
+
# * :name<~String> - Query name that generated this result set.
|
|
36
|
+
# * :page<~String> - Page of the result set that this container
|
|
37
|
+
# holds. The first page is page number 1.
|
|
38
|
+
# * :pageSize<~String> - Page size, as a number of records or
|
|
39
|
+
# references.
|
|
40
|
+
# * :total<~String> - Total number of records or references in the
|
|
41
|
+
# container.
|
|
42
|
+
# * :Link<~Array<Hash>>:
|
|
43
|
+
# * :href<~String> - Contains the URI to the entity.
|
|
44
|
+
# * :type<~String> - Contains the type of the entity.
|
|
45
|
+
# * :rel<~String> - Defines the relationship of the link to the
|
|
46
|
+
# object that contains it.
|
|
47
|
+
# * :OrgVdcRecord<~Array<Hash>>:
|
|
48
|
+
# * TODO
|
|
49
|
+
# * :firstPage<~Integer> - First page in the result set.
|
|
50
|
+
# * :previousPage<~Integer> - Previous page in the result set.
|
|
51
|
+
# * :nextPage<~Integer> - Next page in the result set.
|
|
52
|
+
# * :lastPage<~Integer> - Last page in the result set.
|
|
53
|
+
#
|
|
54
|
+
# @see http://pubs.vmware.com/vcd-55/topic/com.vmware.vcloud.api.reference.doc_55/doc/operations/GET-RightsFromQuery-query.html
|
|
55
|
+
# @since vCloud API version 1.5
|
|
56
|
+
def get_vdcs_from_query(options={})
|
|
57
|
+
query = []
|
|
58
|
+
query << "sortAsc=#{options[:sortAsc]}" if options[:sortAsc]
|
|
59
|
+
query << "sortDesc=#{options[:sortDesc]}" if options[:sortDesc]
|
|
60
|
+
query << "page=#{options[:page]}" if options[:page]
|
|
61
|
+
query << "pageSize=#{options[:pageSize]}" if options[:pageSize]
|
|
62
|
+
query << "format=#{options[:format]}" if options[:format]
|
|
63
|
+
query << "fields=#{Array(options[:fields]).join(',')}" if options[:fields]
|
|
64
|
+
query << "offset=#{options[:offset]}" if options[:offset]
|
|
65
|
+
query << "filter=#{options[:filter]}" if options[:filter]
|
|
66
|
+
|
|
67
|
+
response = request(
|
|
68
|
+
:expects => 200,
|
|
69
|
+
:idempotent => true,
|
|
70
|
+
:method => 'GET',
|
|
71
|
+
:parser => Fog::ToHashDocument.new,
|
|
72
|
+
:path => 'admin/vdcs/query',
|
|
73
|
+
:query => query.map {|q| URI.escape(q)}.join('&')
|
|
74
|
+
)
|
|
75
|
+
ensure_list! response.body, :Link
|
|
76
|
+
ensure_list! response.body,
|
|
77
|
+
response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
|
|
78
|
+
:OrgVdcReference : :OrgVdcRecord
|
|
79
|
+
|
|
80
|
+
%w[firstPage previousPage nextPage lastPage].each do |rel|
|
|
81
|
+
if link = response.body[:Link].find {|l| l[:rel] == rel}
|
|
82
|
+
href = Nokogiri::XML.fragment(link[:href])
|
|
83
|
+
query = CGI.parse(URI.parse(href.text).query)
|
|
84
|
+
response.body[rel.to_sym] = query['page'].first.to_i
|
|
85
|
+
response.body[:pageSize] ||= query['pageSize'].first.to_i
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
response
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve the virtual hardware section of a VM.
|
|
6
|
+
#
|
|
7
|
+
# This operation retrieves the entire VirtualHardwareSection of a VM.
|
|
8
|
+
# You can also retrieve many RASD item elements of a
|
|
9
|
+
# VirtualHardwareSection individually, or as groups of related items.
|
|
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/GET-VirtualHardwareSection.html
|
|
16
|
+
# @since vCloud API version 0.9
|
|
17
|
+
def get_virtual_hardware_section(id)
|
|
18
|
+
request(
|
|
19
|
+
:expects => 200,
|
|
20
|
+
:idempotent => true,
|
|
21
|
+
:method => 'GET',
|
|
22
|
+
:parser => Fog::ToHashDocument.new,
|
|
23
|
+
:path => "vApp/#{id}/virtualHardwareSection/"
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
require 'fog/vcloud_director/parsers/compute/vm'
|
|
6
|
+
|
|
7
|
+
# Retrieve a vApp or VM.
|
|
8
|
+
#
|
|
9
|
+
# @note This should probably be deprecated.
|
|
10
|
+
#
|
|
11
|
+
# @param [String] id Object identifier of the vApp or VM.
|
|
12
|
+
# @return [Excon::Response]
|
|
13
|
+
# * body<~Hash>:
|
|
14
|
+
#
|
|
15
|
+
# @see #get_vapp
|
|
16
|
+
def get_vm(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 200,
|
|
19
|
+
:idempotent => true,
|
|
20
|
+
:method => 'GET',
|
|
21
|
+
:parser => Fog::Parsers::Compute::VcloudDirector::Vm.new,
|
|
22
|
+
:path => "vApp/#{id}"
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
class Mock
|
|
27
|
+
def get_vm(id)
|
|
28
|
+
vapp = get_vapp(id).body
|
|
29
|
+
vm = parse_vapp_to_vm(vapp)
|
|
30
|
+
body = {:type => vapp[:type], :vm => vm}
|
|
31
|
+
Excon::Response.new(
|
|
32
|
+
:status => 200,
|
|
33
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
34
|
+
:body => body
|
|
35
|
+
)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
# Mock equivalent of Fog::Parsers::Compute::VcloudDirector::Vm
|
|
39
|
+
def parse_vapp_to_vm(vapp)
|
|
40
|
+
parser = Fog::Parsers::Compute::VcloudDirector::Vm.new
|
|
41
|
+
vm = vapp.select {|k| [:href, :name, :status, :type].include? k}
|
|
42
|
+
network = vapp[:NetworkConnectionSection]
|
|
43
|
+
vm.merge({
|
|
44
|
+
:id => vapp[:href].split('/').last,
|
|
45
|
+
:status => parser.human_status(vapp[:status]),
|
|
46
|
+
:ip_address => network[:NetworkConnection][:IpAddress],
|
|
47
|
+
:description => vapp[:Description],
|
|
48
|
+
:cpu => get_hardware(vapp, 3),
|
|
49
|
+
:memory => get_hardware(vapp, 4),
|
|
50
|
+
:disks => get_disks(vapp),
|
|
51
|
+
:links => [vapp[:GuestCustomizationSection][:Link]],
|
|
52
|
+
})
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def get_hardware(vapp, resource_type)
|
|
56
|
+
hardware = vapp[:"ovf:VirtualHardwareSection"][:"ovf:Item"]
|
|
57
|
+
item = hardware.find {|h| h[:"rasd:ResourceType"].to_i == resource_type}
|
|
58
|
+
if item and item.key? :"rasd:VirtualQuantity"
|
|
59
|
+
item[:"rasd:VirtualQuantity"].to_i
|
|
60
|
+
else
|
|
61
|
+
nil
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def get_disks(vapp)
|
|
66
|
+
hardware = vapp[:"ovf:VirtualHardwareSection"][:"ovf:Item"]
|
|
67
|
+
disks = hardware.select {|h| h[:"rasd:ResourceType"].to_i == 17}
|
|
68
|
+
disks.map {|d| {d[:"rasd:ElementName"] => d[:"rasd:HostResource"][:ns12_capacity].to_i}}
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Gets capabilities for the VM identified by id.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the VM.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
# * body<~Hash>:
|
|
10
|
+
# * :href<~String> - The URI of the entity.
|
|
11
|
+
# * :type<~String> - The MIME type of the entity.
|
|
12
|
+
# * :MemoryHotAddEnabled<~String> - True if the virtual machine
|
|
13
|
+
# supports addition of memory while powered on.
|
|
14
|
+
# * :CpuHotAddEnabled<~String> - True if the virtual machine
|
|
15
|
+
# supports addition of virtual CPUs while powered on.
|
|
16
|
+
#
|
|
17
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VmCapabilities.html
|
|
18
|
+
def get_vm_capabilities(id)
|
|
19
|
+
request(
|
|
20
|
+
:expects => 200,
|
|
21
|
+
:idempotent => true,
|
|
22
|
+
:method => 'GET',
|
|
23
|
+
:parser => Fog::ToHashDocument.new,
|
|
24
|
+
:path => "vApp/#{id}/vmCapabilities"
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class Mock
|
|
30
|
+
|
|
31
|
+
def get_vm_capabilities(id)
|
|
32
|
+
|
|
33
|
+
type = 'application/vnd.vmware.vcloud.vmCapabilitiesSection+xml'
|
|
34
|
+
|
|
35
|
+
unless vm = data[:vms][id]
|
|
36
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
37
|
+
'This operation is denied.'
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
Excon::Response.new(
|
|
42
|
+
:status => 200,
|
|
43
|
+
:headers => {'Content-Type' => "#{type};version=#{api_version}"},
|
|
44
|
+
:body => get_vm_capabilities_section_body(id, vm)
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def get_vm_capabilities_section_body(id, vm)
|
|
50
|
+
{
|
|
51
|
+
:type => "application/vnd.vmware.vcloud.vmCapabilitiesSection+xml",
|
|
52
|
+
:href => make_href("vApp/#{id}/vmCapabilities/"),
|
|
53
|
+
:MemoryHotAddEnabled => "false",
|
|
54
|
+
:CpuHotAddEnabled => "false",
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|