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,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve the value of the specified key from vApp template or VM
|
|
6
|
+
# metadata.
|
|
7
|
+
#
|
|
8
|
+
# @param [String] id Object identifier of the vApp template or VM.
|
|
9
|
+
# @param [String] key Key of the metadata.
|
|
10
|
+
# @return [Excon::Response]
|
|
11
|
+
# * body<~Hash>:
|
|
12
|
+
#
|
|
13
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VAppTemplateMetadataItem-metadata.html
|
|
14
|
+
# @since vCloud API version 1.5
|
|
15
|
+
def get_vapp_template_metadata_item_metadata(id, key)
|
|
16
|
+
request(
|
|
17
|
+
:expects => 200,
|
|
18
|
+
:idempotent => true,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vAppTemplate/#{id}/metadata/#{URI.escape(key)})"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve the OVF descriptor of a vApp template.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vAppTemplate.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
# * body<~String> - the OVF descriptor.
|
|
10
|
+
#
|
|
11
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VAppTemplateOvfDescriptor.html
|
|
12
|
+
# @since vCloud API version 0.9
|
|
13
|
+
def get_vapp_template_ovf_descriptor(id)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 200,
|
|
16
|
+
:idempotent => true,
|
|
17
|
+
:method => 'GET',
|
|
18
|
+
:path => "vAppTemplate/#{id}/ovf"
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve the owner of a vApp template.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vApp template.
|
|
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-VAppTemplateOwner.html
|
|
12
|
+
# @since vCloud API version 1.5
|
|
13
|
+
def get_vapp_template_owner(id)
|
|
14
|
+
request(
|
|
15
|
+
:expects => 200,
|
|
16
|
+
:idempotent => true,
|
|
17
|
+
:method => 'GET',
|
|
18
|
+
:parser => Fog::ToHashDocument.new,
|
|
19
|
+
:path => "vAppTemplate/#{id}/owner"
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieves a list of vAppTemplates using REST API general
|
|
6
|
+
# QueryHandler.
|
|
7
|
+
#
|
|
8
|
+
# @param [Hash] options
|
|
9
|
+
# @option options [String] :sortAsc (Sorted by database ID) Sort
|
|
10
|
+
# results by attribute-name in ascending order. attribute-name cannot
|
|
11
|
+
# include metadata.
|
|
12
|
+
# @option options [String] :sortDesc (Sorted by database ID) Sort
|
|
13
|
+
# results by attribute-name in descending order. attribute-name
|
|
14
|
+
# cannot include metadata.
|
|
15
|
+
# @option options [Integer] :page (1) If the query results span
|
|
16
|
+
# multiple pages, return this page.
|
|
17
|
+
# @option options [Integer] :pageSize (25) Number of results per page,
|
|
18
|
+
# to a maximum of 128.
|
|
19
|
+
# @option options [String] :format (records) One of the following
|
|
20
|
+
# types:
|
|
21
|
+
# - *references* Returns a reference to each object, including its
|
|
22
|
+
# :name, :type, and :href attributes.
|
|
23
|
+
# - *records* Returns all database records for each object, with each
|
|
24
|
+
# record as an attribute.
|
|
25
|
+
# - *idrecords* Identical to the records format, except that object
|
|
26
|
+
# references are returned in :id format rather than :href format.
|
|
27
|
+
# @option options [Array<String>] :fields (all static attribute names)
|
|
28
|
+
# List of attribute names or metadata key names to return.
|
|
29
|
+
# @option options [Integer] :offset (0) Integer value specifying the
|
|
30
|
+
# first record to return. Record numbers < offset are not returned.
|
|
31
|
+
# @option options [String] :filter (none) Filter expression.
|
|
32
|
+
# @return [Excon::Response]
|
|
33
|
+
# * hash<~Hash>:
|
|
34
|
+
# * :href<~String> - The URI of the entity.
|
|
35
|
+
# * :type<~String> - The MIME type of the entity.
|
|
36
|
+
# * :name<~String> - Query name that generated this result set.
|
|
37
|
+
# * :page<~String> - Page of the result set that this container
|
|
38
|
+
# holds. The first page is page number 1.
|
|
39
|
+
# * :pageSize<~String> - Page size, as a number of records or
|
|
40
|
+
# references.
|
|
41
|
+
# * :total<~String> - Total number of records or references in the
|
|
42
|
+
# container.
|
|
43
|
+
# * :Link<~Array<Hash>>:
|
|
44
|
+
# * :href<~String> - Contains the URI to the entity.
|
|
45
|
+
# * :type<~String> - Contains the type of the entity.
|
|
46
|
+
# * :rel<~String> - Defines the relationship of the link to the
|
|
47
|
+
# object that contains it.
|
|
48
|
+
# * :VAppTemplateRecord<~Array<Hash>>:
|
|
49
|
+
# * TODO
|
|
50
|
+
# * :firstPage<~Integer> - First page in the result set.
|
|
51
|
+
# * :previousPage<~Integer> - Previous page in the result set.
|
|
52
|
+
# * :nextPage<~Integer> - Next page in the result set.
|
|
53
|
+
# * :lastPage<~Integer> - Last page in the result set.
|
|
54
|
+
#
|
|
55
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VAppTemplatesFromQuery.html
|
|
56
|
+
# @since vCloud API version 1.5
|
|
57
|
+
def get_vapp_templates_from_query(options={})
|
|
58
|
+
query = []
|
|
59
|
+
query << "sortAsc=#{options[:sortAsc]}" if options[:sortAsc]
|
|
60
|
+
query << "sortDesc=#{options[:sortDesc]}" if options[:sortDesc]
|
|
61
|
+
query << "page=#{options[:page]}" if options[:page]
|
|
62
|
+
query << "pageSize=#{options[:pageSize]}" if options[:pageSize]
|
|
63
|
+
query << "format=#{options[:format]}" if options[:format]
|
|
64
|
+
query << "fields=#{Array(options[:fields]).join(',')}" if options[:fields]
|
|
65
|
+
query << "offset=#{options[:offset]}" if options[:offset]
|
|
66
|
+
query << "filter=#{options[:filter]}" if options[:filter]
|
|
67
|
+
|
|
68
|
+
response = request(
|
|
69
|
+
:expects => 200,
|
|
70
|
+
:idempotent => true,
|
|
71
|
+
:method => 'GET',
|
|
72
|
+
:parser => Fog::ToHashDocument.new,
|
|
73
|
+
:path => 'vAppTemplates/query',
|
|
74
|
+
:query => query.map {|q| URI.escape(q)}.join('&')
|
|
75
|
+
)
|
|
76
|
+
ensure_list! response.body, :Link
|
|
77
|
+
ensure_list! response.body,
|
|
78
|
+
response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
|
|
79
|
+
:VAppTemplateReference : :VAppTemplateRecord
|
|
80
|
+
|
|
81
|
+
%w[firstPage previousPage nextPage lastPage].each do |rel|
|
|
82
|
+
if link = response.body[:Link].find {|l| l[:rel] == rel}
|
|
83
|
+
href = Nokogiri::XML.fragment(link[:href])
|
|
84
|
+
query = CGI.parse(URI.parse(href.text).query)
|
|
85
|
+
response.body[rel.to_sym] = query['page'].first.to_i
|
|
86
|
+
response.body[:pageSize] ||= query['pageSize'].first.to_i
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
response
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieves a list of vApps by using REST API general QueryHandler.
|
|
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
|
+
# * :VAppRecord<~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-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-VAppsInLeaseFromQuery.html
|
|
55
|
+
# @since vCloud API version 1.5
|
|
56
|
+
def get_vapps_in_lease_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 => 'vApps/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
|
+
:VAppReference : :VAppRecord
|
|
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,76 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve an administrative view of a cloud.
|
|
6
|
+
#
|
|
7
|
+
# The VCloud element provides access to cloud-wide namespace of objects
|
|
8
|
+
# that an administrator can view and, in most cases, modify.
|
|
9
|
+
#
|
|
10
|
+
# @return [Excon:Response]
|
|
11
|
+
# * body<~Hash>:
|
|
12
|
+
# * :href<~String> - The URI of the entity.
|
|
13
|
+
# * :type<~String> - The MIME type of the entity.
|
|
14
|
+
# * :name<~String> - The name of the entity.
|
|
15
|
+
# * :Description<~String> - Optional description.
|
|
16
|
+
# * :OrganizationReferences<Hash>:
|
|
17
|
+
# * :OrganizationReference<~Array<Hash>>:
|
|
18
|
+
# * :href<~String> - Contains the URI to the entity.
|
|
19
|
+
# * :name<~String> - Contains the name of the entity.
|
|
20
|
+
# * :type<~String> - Contains the type of the entity.
|
|
21
|
+
# * :ProviderVdcReferences<~Hash>:
|
|
22
|
+
# * :ProviderVdcReferences<~Array<Hash>>:
|
|
23
|
+
# * :RightReferences<~Hash>:
|
|
24
|
+
# * :RightReferences<~Array<Hash>>:
|
|
25
|
+
# * :RoleReferences<~Hash>:
|
|
26
|
+
# * :RoleReferences<~Array<Hash>>:
|
|
27
|
+
# * :Networks<~Hash>:
|
|
28
|
+
# * :Network<~Array<Hash>>:
|
|
29
|
+
#
|
|
30
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Vcloud.html
|
|
31
|
+
# @since vCloud API version 0.9
|
|
32
|
+
def get_vcloud
|
|
33
|
+
response = request(
|
|
34
|
+
:expects => 200,
|
|
35
|
+
:idempotent => true,
|
|
36
|
+
:method => 'GET',
|
|
37
|
+
:parser => Fog::ToHashDocument.new,
|
|
38
|
+
:path => 'admin/'
|
|
39
|
+
)
|
|
40
|
+
ensure_list! response.body, :OrganizationReferences, :OrganizationReference
|
|
41
|
+
ensure_list! response.body, :ProviderVdcReferences, :ProviderVdcReference
|
|
42
|
+
ensure_list! response.body, :RightReferences, :RightReference
|
|
43
|
+
ensure_list! response.body, :RoleReferences, :RoleReference
|
|
44
|
+
ensure_list! response.body, :Networks, :Network
|
|
45
|
+
response
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
class Mock
|
|
50
|
+
def get_vcloud
|
|
51
|
+
body =
|
|
52
|
+
{:href=>make_href('admin/'),
|
|
53
|
+
:type=>"application/vnd.vmware.admin.vcloud+xml",
|
|
54
|
+
:name=>'VMware vCloud Director',
|
|
55
|
+
:Description=>'5.1.2.1377223 Tue Oct 15 20:56:05 GMT 2013',
|
|
56
|
+
:Tasks=>{:Task=>[]},
|
|
57
|
+
:OrganizationReferences=>
|
|
58
|
+
{:OrganizationReference=>
|
|
59
|
+
[{:type=>"application/vnd.vmware.admin.organization+xml",
|
|
60
|
+
:name=>data[:org][:name],
|
|
61
|
+
:href=>make_href("api/admin/org/#{data[:org][:uuid]}")}]},
|
|
62
|
+
:ProviderVdcReferences=>{:ProviderVdcReference=>[]},
|
|
63
|
+
:RightReferences=>{:RightReference=>[]},
|
|
64
|
+
:RoleReferences=>{:RoleReference=>[]},
|
|
65
|
+
:Networks=>{:Network=>[]}}
|
|
66
|
+
|
|
67
|
+
Excon::Response.new(
|
|
68
|
+
:body => body,
|
|
69
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
70
|
+
:status => 200
|
|
71
|
+
)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Retrieve a vDC.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the vDC.
|
|
8
|
+
# @return [Excon::Response]
|
|
9
|
+
# * body<~Hash>:
|
|
10
|
+
#
|
|
11
|
+
# @raise [Fog::Compute::VcloudDirector::Forbidden]
|
|
12
|
+
#
|
|
13
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Vdc.html
|
|
14
|
+
# @since vCloud API version 0.9
|
|
15
|
+
def get_vdc(id)
|
|
16
|
+
response = request(
|
|
17
|
+
:expects => 200,
|
|
18
|
+
:idempotent => true,
|
|
19
|
+
:method => 'GET',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vdc/#{id}"
|
|
22
|
+
)
|
|
23
|
+
ensure_list! response.body, :ResourceEntities, :ResourceEntity
|
|
24
|
+
ensure_list! response.body, :AvailableNetworks, :Network
|
|
25
|
+
ensure_list! response.body, :VdcStorageProfiles, :VdcStorageProfile
|
|
26
|
+
response
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class Mock
|
|
31
|
+
def get_vdc(vdc_id)
|
|
32
|
+
response = Excon::Response.new
|
|
33
|
+
|
|
34
|
+
unless vdc = data[:vdcs][vdc_id]
|
|
35
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
36
|
+
"No access to entity \"com.vmware.vcloud.entity.vdc:#{vdc_id}\"."
|
|
37
|
+
)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
body =
|
|
41
|
+
{:xmlns=>xmlns,
|
|
42
|
+
:xmlns_xsi=>xmlns_xsi,
|
|
43
|
+
:status=>"1",
|
|
44
|
+
:name=>vdc[:name],
|
|
45
|
+
:id=>"urn:vcloud:vdc:#{vdc_id}",
|
|
46
|
+
:type=>"application/vnd.vmware.vcloud.vdc+xml",
|
|
47
|
+
:href=>make_href("vdc/#{vdc_id}"),
|
|
48
|
+
:xsi_schemaLocation=>xsi_schema_location,
|
|
49
|
+
:Link=>
|
|
50
|
+
[{:rel=>"up",
|
|
51
|
+
:type=>"application/vnd.vmware.vcloud.org+xml",
|
|
52
|
+
:href=>make_href("org/#{data[:org][:uuid]}")},
|
|
53
|
+
{:rel=>"down",
|
|
54
|
+
:type=>"application/vnd.vmware.vcloud.metadata+xml",
|
|
55
|
+
:href=>make_href("vdc/#{vdc_id}/metadata")},
|
|
56
|
+
{:rel=>"add",
|
|
57
|
+
:type=>"application/vnd.vmware.vcloud.uploadVAppTemplateParams+xml",
|
|
58
|
+
:href=>
|
|
59
|
+
make_href("vdc/#{vdc_id}/action/uploadVAppTemplate")},
|
|
60
|
+
{:rel=>"add",
|
|
61
|
+
:type=>"application/vnd.vmware.vcloud.media+xml",
|
|
62
|
+
:href=>make_href("vdc/#{vdc_id}/media")},
|
|
63
|
+
{:rel=>"add",
|
|
64
|
+
:type=>
|
|
65
|
+
"application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml",
|
|
66
|
+
:href=>
|
|
67
|
+
make_href("vdc/#{vdc_id}/action/instantiateVAppTemplate")},
|
|
68
|
+
{:rel=>"add",
|
|
69
|
+
:type=>"application/vnd.vmware.vcloud.cloneVAppParams+xml",
|
|
70
|
+
:href=>make_href("vdc/#{vdc_id}/action/cloneVApp")},
|
|
71
|
+
{:rel=>"add",
|
|
72
|
+
:type=>"application/vnd.vmware.vcloud.cloneVAppTemplateParams+xml",
|
|
73
|
+
:href=>
|
|
74
|
+
make_href("vdc/#{vdc_id}/action/cloneVAppTemplate")},
|
|
75
|
+
{:rel=>"add",
|
|
76
|
+
:type=>"application/vnd.vmware.vcloud.cloneMediaParams+xml",
|
|
77
|
+
:href=>make_href("vdc/#{vdc_id}/action/cloneMedia")},
|
|
78
|
+
{:rel=>"add",
|
|
79
|
+
:type=>"application/vnd.vmware.vcloud.captureVAppParams+xml",
|
|
80
|
+
:href=>make_href("vdc/#{vdc_id}/action/captureVApp")},
|
|
81
|
+
{:rel=>"add",
|
|
82
|
+
:type=>"application/vnd.vmware.vcloud.composeVAppParams+xml",
|
|
83
|
+
:href=>make_href("vdc/#{vdc_id}/action/composeVApp")},
|
|
84
|
+
{:rel=>"add",
|
|
85
|
+
:type=>"application/vnd.vmware.vcloud.diskCreateParams+xml",
|
|
86
|
+
:href=>make_href("vdc/#{vdc_id}/disk")},
|
|
87
|
+
{:rel=>"edgeGateways",
|
|
88
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
|
89
|
+
:href=>make_href("admin/vdc/#{vdc_id}/edgeGateways")},
|
|
90
|
+
{:rel=>"add",
|
|
91
|
+
:type=>"application/vnd.vmware.vcloud.orgVdcNetwork+xml",
|
|
92
|
+
:href=>make_href("admin/vdc/#{vdc_id}/networks")},
|
|
93
|
+
{:rel=>"orgVdcNetworks",
|
|
94
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
|
95
|
+
:href=>make_href("admin/vdc/#{vdc_id}/networks")}],
|
|
96
|
+
:Description=>vdc[:description]||'',
|
|
97
|
+
:AllocationModel=>"AllocationVApp",
|
|
98
|
+
:ComputeCapacity=>
|
|
99
|
+
{:Cpu=>
|
|
100
|
+
{:Units=>"MHz",
|
|
101
|
+
:Allocated=>"0",
|
|
102
|
+
:Limit=>"0",
|
|
103
|
+
:Reserved=>"0",
|
|
104
|
+
:Used=>"0",
|
|
105
|
+
:Overhead=>"0"},
|
|
106
|
+
:Memory=>
|
|
107
|
+
{:Units=>"MB",
|
|
108
|
+
:Allocated=>"0",
|
|
109
|
+
:Limit=>"0",
|
|
110
|
+
:Reserved=>"0",
|
|
111
|
+
:Used=>"0",
|
|
112
|
+
:Overhead=>"0"}},
|
|
113
|
+
:ResourceEntities => {
|
|
114
|
+
:ResourceEntity => []
|
|
115
|
+
},
|
|
116
|
+
:AvailableNetworks => {},
|
|
117
|
+
:Capabilities=>
|
|
118
|
+
{:SupportedHardwareVersions=>
|
|
119
|
+
{:SupportedHardwareVersion=>"vmx-08"}},
|
|
120
|
+
:NicQuota=>"0",
|
|
121
|
+
:NetworkQuota=>"20",
|
|
122
|
+
:UsedNetworkCount=>"0",
|
|
123
|
+
:VmQuota=>"100",
|
|
124
|
+
:IsEnabled=>"true"}
|
|
125
|
+
|
|
126
|
+
body[:ResourceEntities][:ResourceEntity] =
|
|
127
|
+
data[:catalog_items].map do |id, item|
|
|
128
|
+
{:type=>"application/vnd.vmware.vcloud.#{item[:type]}+xml",
|
|
129
|
+
:name=>item[:name],
|
|
130
|
+
:href=>make_href("#{item[:type]}/#{item[:type]}-#{id}")}
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
body[:ResourceEntities][:ResourceEntity] +=
|
|
134
|
+
get_vapps_in_this_vdc(vdc_id).map do |vapp_id, vapp|
|
|
135
|
+
{:type => "application/vnd.vmware.vcloud.vApp+xml",
|
|
136
|
+
:name => vapp[:name],
|
|
137
|
+
:href => make_href("vApp/#{vapp_id}")}
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
body[:AvailableNetworks][:Network] =
|
|
141
|
+
data[:networks].map do |id, network|
|
|
142
|
+
{:type=>"application/vnd.vmware.vcloud.network+xml",
|
|
143
|
+
:name=>network[:name],
|
|
144
|
+
:href=>make_href("network/#{id}")}
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
if api_version.to_f >= 5.1
|
|
148
|
+
body[:VdcStorageProfiles] = {}
|
|
149
|
+
body[:VdcStorageProfiles][:VdcStorageProfile] =
|
|
150
|
+
data[:vdc_storage_classes].select do |id, storage_class|
|
|
151
|
+
storage_class[:vdc] == vdc_id
|
|
152
|
+
end.map do |id, storage_class|
|
|
153
|
+
{:type => 'application/vnd.vmware.vcloud.vdcStorageProfile+xml',
|
|
154
|
+
:name => storage_class[:name],
|
|
155
|
+
:href => make_href("vdcStorageProfile/#{id}")}
|
|
156
|
+
end
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
response.status = 200
|
|
160
|
+
response.headers = {'Content-Type' => "#{body[:type]};version=#{api_version}"}
|
|
161
|
+
response.body = body
|
|
162
|
+
response
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def get_vapps_in_this_vdc(vdc_id)
|
|
166
|
+
data[:vapps].select do |vapp_id, vapp|
|
|
167
|
+
vapp[:vdc_id] == vdc_id
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|