fog-vcloud-director 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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,38 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class VcloudDirector
|
4
|
+
class Real
|
5
|
+
# Redirects to the URL of an entity with the given VCD ID.
|
6
|
+
#
|
7
|
+
# @param [String] id
|
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
|
+
# * :id<~String> - The entity identifier, expressed in URN format.
|
13
|
+
# The value of this attribute uniquely identifies the entity,
|
14
|
+
# persists for the life of the entity, and is never reused.
|
15
|
+
# * :name<~String> - The name of the entity.
|
16
|
+
# * :Link<~Array<Hash>]:
|
17
|
+
# * :href<~String> - Contains the URI to the linked entity.
|
18
|
+
# * :type<~String> - Contains the type of the linked entity.
|
19
|
+
# * :rel<~String> - Defines the relationship of the link to the
|
20
|
+
# object that contains it.
|
21
|
+
#
|
22
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/GET-Entity.html
|
23
|
+
# @since vCloud API version 1.5
|
24
|
+
def get_entity(id)
|
25
|
+
response = request(
|
26
|
+
:expects => 200,
|
27
|
+
:idempotent => true,
|
28
|
+
:method => 'GET',
|
29
|
+
:parser => Fog::ToHashDocument.new,
|
30
|
+
:path => "entity/#{id}"
|
31
|
+
)
|
32
|
+
ensure_list! response.body, :Link
|
33
|
+
response
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,736 @@
|
|
1
|
+
module Fog
|
2
|
+
module Compute
|
3
|
+
class VcloudDirector
|
4
|
+
class Real
|
5
|
+
# REST API General queries handler.
|
6
|
+
#
|
7
|
+
# @param [String] type The type of the query. Type names are
|
8
|
+
# case-sensitive. You can retrieve a summary list of all typed
|
9
|
+
# queries types accessible to the currently authenticated user by
|
10
|
+
# making a request with type=nil.
|
11
|
+
# @param [Hash] options
|
12
|
+
# @option options [String] :sortAsc (Sorted by database ID) Sort
|
13
|
+
# results by attribute-name in ascending order. attribute-name cannot
|
14
|
+
# include metadata.
|
15
|
+
# @option options [String] :sortDesc (Sorted by database ID) Sort
|
16
|
+
# results by attribute-name in descending order. attribute-name
|
17
|
+
# cannot include metadata.
|
18
|
+
# @option options [Integer] :page (1) If the query results span
|
19
|
+
# multiple pages, return this page.
|
20
|
+
# @option options [Integer] :pageSize (25) Number of results per page,
|
21
|
+
# to a maximum of 128.
|
22
|
+
# @option options [String] :format (records) One of the following
|
23
|
+
# types:
|
24
|
+
# - *references* Returns a reference to each object, including its
|
25
|
+
# :name, :type, and :href attributes.
|
26
|
+
# - *records* Returns all database records for each object, with each
|
27
|
+
# record as an attribute.
|
28
|
+
# - *idrecords* Identical to the records format, except that object
|
29
|
+
# references are returned in :id format rather than :href format.
|
30
|
+
# @option options [Array<String>] :fields (all static attribute names)
|
31
|
+
# List of attribute names or metadata key names to return.
|
32
|
+
# @option options [Integer] :offset (0) Integer value specifying the
|
33
|
+
# first record to return. Record numbers < offset are not returned.
|
34
|
+
# @option options [String] :filter (none) Filter expression.
|
35
|
+
# @return [Excon::Response] if type is specified.
|
36
|
+
# * hash<~Hash>:
|
37
|
+
# * :href<~String> - The URI of the entity.
|
38
|
+
# * :type<~String> - The MIME type of the entity.
|
39
|
+
# * :name<~String> - Query name that generated this result set.
|
40
|
+
# * :page<~String> - Page of the result set that this container
|
41
|
+
# holds. The first page is page number 1.
|
42
|
+
# * :pageSize<~String> - Page size, as a number of records or
|
43
|
+
# references.
|
44
|
+
# * :total<~String> - Total number of records or references in the
|
45
|
+
# container.
|
46
|
+
# * :Link<~Array<Hash>>:
|
47
|
+
# * :href<~String> - Contains the URI to the entity.
|
48
|
+
# * :type<~String> - Contains the type of the entity.
|
49
|
+
# * :rel<~String> - Defines the relationship of the link to the
|
50
|
+
# object that contains it.
|
51
|
+
# * :Record<~Array<Hash>> - The name and content of this item
|
52
|
+
# varies according to the type and format of the query.
|
53
|
+
# * :firstPage<~Integer> - First page in the result set.
|
54
|
+
# * :previousPage<~Integer> - Previous page in the result set.
|
55
|
+
# * :nextPage<~Integer> - Next page in the result set.
|
56
|
+
# * :lastPage<~Integer> - Last page in the result set.
|
57
|
+
# @return [Excon::Response] if type is nil.
|
58
|
+
# * hash<~Hash>:
|
59
|
+
# * :href<~String> - The URI of the entity.
|
60
|
+
# * :type<~String> - The MIME type of the entity.
|
61
|
+
# * :Link<~Array<Hash>>:
|
62
|
+
# * :href<~String> - Contains the URI to the entity.
|
63
|
+
# * :name<~String> - Contains the name of the entity.
|
64
|
+
# * :type<~String> - Contains the type of the entity.
|
65
|
+
# * :rel<~String> - Defines the relationship of the link to the
|
66
|
+
# object that contains it.
|
67
|
+
#
|
68
|
+
# @see http://pubs.vmware.com/vcd-55/topic/com.vmware.vcloud.api.reference.doc_55/doc/operations/GET-ExecuteQuery.html
|
69
|
+
# @since vCloud API version 1.5
|
70
|
+
def get_execute_query(type=nil, options={})
|
71
|
+
if type.nil?
|
72
|
+
response = request(
|
73
|
+
:expects => 200,
|
74
|
+
:idempotent => true,
|
75
|
+
:method => 'GET',
|
76
|
+
:parser => Fog::ToHashDocument.new,
|
77
|
+
:path => 'query'
|
78
|
+
)
|
79
|
+
else
|
80
|
+
query = {
|
81
|
+
:type => type,
|
82
|
+
}
|
83
|
+
|
84
|
+
query[:sortAsc] = options[:sortAsc] if options[:sortAsc]
|
85
|
+
query[:sortDesc] = options[:sortDesc] if options[:sortDesc]
|
86
|
+
query[:page] = options[:page] if options[:page]
|
87
|
+
query[:pageSize] = options[:pageSize] if options[:pageSize]
|
88
|
+
query[:format] = options[:format] if options[:format]
|
89
|
+
query[:fields] = Array(options[:fields]).join(',') if options[:fields]
|
90
|
+
query[:offset] = options[:offset] if options[:offset]
|
91
|
+
query[:filter] = options[:filter] if options[:filter]
|
92
|
+
|
93
|
+
response = request(
|
94
|
+
:expects => 200,
|
95
|
+
:idempotent => true,
|
96
|
+
:method => 'GET',
|
97
|
+
:parser => Fog::ToHashDocument.new,
|
98
|
+
:path => 'query',
|
99
|
+
:query => query.map {|k, v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&').gsub('%3D', '=').gsub('%3B', ';')
|
100
|
+
)
|
101
|
+
ensure_list! response.body, :Link
|
102
|
+
# TODO: figure out the right key (this isn't it)
|
103
|
+
#ensure_list! response.body,
|
104
|
+
# response.body[:type] == 'application/vnd.vmware.vcloud.query.references+xml' ?
|
105
|
+
# "#{response.body[:name]}Reference".to_sym :
|
106
|
+
# "#{response.body[:name]}Record".to_sym
|
107
|
+
|
108
|
+
%w[firstPage previousPage nextPage lastPage].each do |rel|
|
109
|
+
if link = response.body[:Link].find {|l| l[:rel] == rel}
|
110
|
+
href = Nokogiri::XML.fragment(link[:href])
|
111
|
+
query = CGI.parse(URI.parse(href.text).query)
|
112
|
+
response.body[rel.to_sym] = query['page'].first.to_i
|
113
|
+
response.body[:pageSize] ||= query['pageSize'].first.to_i
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
response
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
class Mock
|
123
|
+
def get_execute_query(type=nil, options={})
|
124
|
+
unless options[:fields].nil?
|
125
|
+
Fog::Mock.not_implemented("Fields are not yet implemented in get_execute_query Mock for #{type}")
|
126
|
+
end
|
127
|
+
|
128
|
+
unless options[:format].nil? || options[:format] == 'records'
|
129
|
+
Fog::Mock.not_implemented("Formats #{options[:format]} is not yet implemented in get_execute_query Mock for #{type}")
|
130
|
+
end
|
131
|
+
|
132
|
+
# NB: default is to sort by 'Database ID' (uuid?). Does this matter?
|
133
|
+
unless options[:sortAsc].nil? && options[:sortDesc].nil?
|
134
|
+
Fog::Mock.not_implemented("Sorting by field is not yet implemented in get_execute_query Mock for #{type}")
|
135
|
+
end
|
136
|
+
|
137
|
+
# NB: default offset is 0
|
138
|
+
unless options[:offset].nil?
|
139
|
+
Fog::Mock.not_implemented("Offset results are not yet implemented in get_execute_query Mock for #{type}")
|
140
|
+
end
|
141
|
+
|
142
|
+
# NB: default page is 1
|
143
|
+
if options.key?(:page) && options[:page].to_i != 1
|
144
|
+
Fog::Mock.not_implemented("Paginated results are not yet implemented in get_execute_query Mock for #{type}")
|
145
|
+
end
|
146
|
+
|
147
|
+
# NB: default pageSize is 25
|
148
|
+
unless options[:pageSize].nil?
|
149
|
+
Fog::Mock.not_implemented("Paginated results are not yet implemented in get_execute_query Mock for #{type}")
|
150
|
+
end
|
151
|
+
|
152
|
+
if type.nil?
|
153
|
+
body = all_types
|
154
|
+
else
|
155
|
+
body = fetch_items(type, options)
|
156
|
+
end
|
157
|
+
|
158
|
+
Excon::Response.new(
|
159
|
+
:status => 200,
|
160
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
161
|
+
:body => body
|
162
|
+
)
|
163
|
+
end
|
164
|
+
|
165
|
+
private
|
166
|
+
|
167
|
+
def fetch_items(type, opts)
|
168
|
+
if opts.key?(:filter) && opts[:filter] =~ /^name==([^;,]+)$/
|
169
|
+
name = $1
|
170
|
+
elsif type == 'vAppTemplate' && opts.key?(:filter) &&
|
171
|
+
opts[:filter] =~ /^name==([^;,]+);catalogName==([^;,]+)$/ #TODO also match in other order
|
172
|
+
name = $1
|
173
|
+
catalog_name = $2
|
174
|
+
elsif opts.key?(:filter)
|
175
|
+
Fog::Mock.not_implemented("Complex filters are not yet implemented in get_execute_query Mock for #{type}: #{opts[:filter]}")
|
176
|
+
end
|
177
|
+
|
178
|
+
body = {
|
179
|
+
:xmlns=>xmlns,
|
180
|
+
:xmlns_xsi=>xmlns_xsi,
|
181
|
+
:href=>make_href('query'),
|
182
|
+
:name=>type,
|
183
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
184
|
+
:xsi_schemaLocation=>xsi_schema_location,
|
185
|
+
}
|
186
|
+
|
187
|
+
records = []
|
188
|
+
record_type = nil
|
189
|
+
|
190
|
+
if type == 'orgVdc'
|
191
|
+
record_type = :OrgVdcRecord
|
192
|
+
vdc_id = data[:vdcs].keys[0]
|
193
|
+
vdc_name = data[:vdcs][vdc_id][:name]
|
194
|
+
records = [{
|
195
|
+
:storageUsedMB=>"123967",
|
196
|
+
:storageLimitMB=>"8388608",
|
197
|
+
:storageAllocationMB=>"0",
|
198
|
+
:status=>"READY",
|
199
|
+
:orgName=>"orgName",
|
200
|
+
:name=>vdc_name,
|
201
|
+
:memoryUsedMB=>"0",
|
202
|
+
:memoryLimitMB=>"0",
|
203
|
+
:memoryAllocationMB=>"0",
|
204
|
+
:isSystemVdc=>"false",
|
205
|
+
:isEnabled=>"true",
|
206
|
+
:isBusy=>"false",
|
207
|
+
:href=>make_href("vdc/#{vdc_id}"),
|
208
|
+
}]
|
209
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
210
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
211
|
+
body[:total] = records.size.to_s
|
212
|
+
body[record_type] = records
|
213
|
+
|
214
|
+
elsif type == 'orgVdcNetwork'
|
215
|
+
record_type = :OrgVdcNetworkRecords
|
216
|
+
data_type = :networks
|
217
|
+
data[data_type].each do |id, dr|
|
218
|
+
r = {}
|
219
|
+
if name.nil? || dr[:name] == name
|
220
|
+
vdc_id = dr[:vdc]
|
221
|
+
if data[:vdcs][vdc_id] && data[:vdcs][vdc_id].key?(:name)
|
222
|
+
r[:vdcName] = data[:vdcs][vdc_id][:name]
|
223
|
+
end
|
224
|
+
r[:name] = dr[:name]
|
225
|
+
r[:vdc] = make_href("vdc/#{vdc_id}") if vdc_id
|
226
|
+
r[:href] = make_href("admin/network/#{id}")
|
227
|
+
mapping = {
|
228
|
+
:description => :Description,
|
229
|
+
:netmask => :Netmask,
|
230
|
+
:linkType => :LinkType,
|
231
|
+
:dns1 => :Dns1,
|
232
|
+
:dns2 => :Dns2,
|
233
|
+
:dnsSuffix => :DnsSuffix,
|
234
|
+
:defaultGateway => :Gateway,
|
235
|
+
:isShared => :IsShared,
|
236
|
+
:isBusy => :IsBusy,
|
237
|
+
:isIpScopeInherited => :IsIpScopeInherited,
|
238
|
+
}
|
239
|
+
|
240
|
+
mapping.each do |k,v|
|
241
|
+
r[k] = dr[v] if dr.key?(v)
|
242
|
+
end
|
243
|
+
|
244
|
+
records << r
|
245
|
+
end
|
246
|
+
end
|
247
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
248
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
249
|
+
body[:total] = records.size.to_s
|
250
|
+
body[record_type] = records
|
251
|
+
|
252
|
+
elsif type == 'edgeGateway'
|
253
|
+
record_type = :EdgeGatewayRecord
|
254
|
+
edge_gateway_id = data[:edge_gateways].keys[0]
|
255
|
+
vdc_id = data[:edge_gateways][edge_gateway_id][:vdc]
|
256
|
+
records = [{
|
257
|
+
:vdc=>make_href("vdc/#{vdc_id}"),
|
258
|
+
:numberOfOrgNetworks=>"1",
|
259
|
+
:numberOfExtNetworks=>"1",
|
260
|
+
:name=>"Test EdgeGateway Name",
|
261
|
+
:isBusy=>"false",
|
262
|
+
:haStatus=>"DISABLED",
|
263
|
+
:gatewayStatus=>"READY",
|
264
|
+
:href=>make_href("edgeGateway/#{edge_gateway_id}"),
|
265
|
+
:taskStatus=>"success",
|
266
|
+
:taskOperation=>"networkConfigureEdgeGatewayServices",
|
267
|
+
:task=>make_href("task/#{uuid}"),
|
268
|
+
:taskDetails=>" "
|
269
|
+
}]
|
270
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
271
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
272
|
+
body[:total] = records.size.to_s
|
273
|
+
body[record_type] = records
|
274
|
+
|
275
|
+
elsif type == 'vAppTemplate'
|
276
|
+
record_type = :VAappTemplateRecord
|
277
|
+
records = [{
|
278
|
+
:vdcName=>"Bogus vDC",
|
279
|
+
:vdc=>make_href("vdc/#{uuid}"),
|
280
|
+
:storageProfileName=>"*",
|
281
|
+
:status=>"RESOLVED",
|
282
|
+
:ownerName=>"system",
|
283
|
+
:org=> make_href("org/#{data[:org][:uuid]}"),
|
284
|
+
:name=> name,
|
285
|
+
:isPublished=>"true",
|
286
|
+
:isGoldMaster=>"false",
|
287
|
+
:isExpired=>"false",
|
288
|
+
:isEnabled=>"true",
|
289
|
+
:isDeployed=>"false",
|
290
|
+
:isBusy=>"false",
|
291
|
+
:creationDate=>"2013-09-19T22:55:30.257+01:00",
|
292
|
+
:catalogName=> catalog_name,
|
293
|
+
:href=> make_href("vAppTemplate/vappTemplate-#{uuid}"),
|
294
|
+
:honorBootOrder=>"false",
|
295
|
+
:isVdcEnabled=>"true",
|
296
|
+
:isInCatalog=>"true",
|
297
|
+
:cpuAllocationMhz=>"8",
|
298
|
+
:cpuAllocationInMhz=>"16000",
|
299
|
+
:storageKB=>"52428800",
|
300
|
+
:numberOfShadowVMs=>"0",
|
301
|
+
:numberOfVMs=>"1",
|
302
|
+
:isAutoDeleteNotified=>"false",
|
303
|
+
:numberOfCpus=>"8",
|
304
|
+
:isAutoUndeployNotified=>"false",
|
305
|
+
:memoryAllocationMB=>"32768"
|
306
|
+
}]
|
307
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
308
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
309
|
+
body[:total] = records.size.to_s
|
310
|
+
body[record_type] = records
|
311
|
+
|
312
|
+
elsif type == 'vApp'
|
313
|
+
record_type = :VAppRecord
|
314
|
+
all_records = data[:vapps].map do |vapp_id, vapp|
|
315
|
+
{
|
316
|
+
:vdcName => data.fetch(:vdcs).fetch(vapp[:vdc_id]).fetch(:name),
|
317
|
+
:vdc => make_href("vdc/#{vapp[:vdc_id]}"),
|
318
|
+
:storageProfileName => "*",
|
319
|
+
:ownerName => "system",
|
320
|
+
:name => vapp.fetch(:name),
|
321
|
+
:status => 'POWERED_OFF',
|
322
|
+
:isInMaintenanceMode=> 'false',
|
323
|
+
:isPublic => 'false',
|
324
|
+
:isExpired =>"false",
|
325
|
+
:isEnabled =>"true",
|
326
|
+
:isDeployed =>"false",
|
327
|
+
:isBusy => "false",
|
328
|
+
:pvdcHighestSupportedHardwareVersion => '8',
|
329
|
+
:lowestHardwareVersionInVApp => '8',
|
330
|
+
:creationDate => "2013-09-19T22:55:30.257+01:00",
|
331
|
+
:href => make_href("vApp/#{vapp_id}"),
|
332
|
+
:honorBootOrder => "false",
|
333
|
+
:isVdcEnabled => "true",
|
334
|
+
:cpuAllocationMhz => "8",
|
335
|
+
:cpuAllocationInMhz => "16000",
|
336
|
+
:storageKB => "52428800",
|
337
|
+
:numberOfVMs => "1",
|
338
|
+
:isAutoDeleteNotified => "false",
|
339
|
+
:numberOfCpus => "8",
|
340
|
+
:isAutoUndeployNotified => "false",
|
341
|
+
:memoryAllocationMB => "32768",
|
342
|
+
:task => make_href("task/#{uuid}"),
|
343
|
+
:taskStatusName => 'vdcInstantiateVapp',
|
344
|
+
:taskStatus => 'success',
|
345
|
+
:taskDetails => " ",
|
346
|
+
}
|
347
|
+
end
|
348
|
+
records = all_records.select do |record|
|
349
|
+
record[:name] == name
|
350
|
+
end
|
351
|
+
|
352
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
353
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
354
|
+
body[:total] = records.size.to_s
|
355
|
+
body[record_type] = records
|
356
|
+
|
357
|
+
elsif type == 'task'
|
358
|
+
|
359
|
+
record_type = :TaskRecord
|
360
|
+
data_type = :tasks
|
361
|
+
data[data_type].each do |id, dr|
|
362
|
+
r = {}
|
363
|
+
if name.nil? || dr.fetch(:operation_name) == name
|
364
|
+
r[:name] = dr.fetch(:operation_name)
|
365
|
+
r[:href] = make_href("task/#{id}")
|
366
|
+
if dr.key?(:end_time)
|
367
|
+
r[:endDate] = dr.fetch(:end_time).strftime('%Y-%m-%dT%H:%M:%S%z')
|
368
|
+
else
|
369
|
+
r[:endDate] = nil
|
370
|
+
end
|
371
|
+
if dr.key?(:start_time)
|
372
|
+
r[:startDate] = dr.fetch(:start_time).strftime('%Y-%m-%dT%H:%M:%S%z')
|
373
|
+
else
|
374
|
+
r[:startDate] = nil
|
375
|
+
end
|
376
|
+
r[:status] = dr.fetch(:status)
|
377
|
+
r[:serviceNamespace] = 'com.vmware.vcloud'
|
378
|
+
r[:ownerName] = '000.0.000000'
|
379
|
+
r[:orgName] = data.fetch(:org).fetch(:name)
|
380
|
+
r[:org] = make_href("org/#{data[:org][:uuid]}")
|
381
|
+
r[:objectType] = dr.fetch(:owner).fetch(:type).split(/\./).last.split(/\+/).first
|
382
|
+
r[:objectName] = dr.fetch(:owner).fetch(:name, '') # objectName is optional
|
383
|
+
r[:object] = dr.fetch(:owner).fetch(:href)
|
384
|
+
r[:details] = '! []'
|
385
|
+
|
386
|
+
records << r
|
387
|
+
end
|
388
|
+
end
|
389
|
+
|
390
|
+
else
|
391
|
+
Fog::Mock.not_implemented("No 'get by name' get_execute_query Mock for #{type} (#{name})")
|
392
|
+
end
|
393
|
+
|
394
|
+
body[:page] = 1.to_s # TODO: Support pagination
|
395
|
+
body[:pageSize] = records.size.to_s # TODO: Support pagination
|
396
|
+
body[:total] = records.size.to_s
|
397
|
+
body[record_type] = records
|
398
|
+
|
399
|
+
body
|
400
|
+
end
|
401
|
+
|
402
|
+
def all_types
|
403
|
+
{:xmlns=>xmlns,
|
404
|
+
:xmlns_xsi=>xmlns_xsi,
|
405
|
+
:type=>"application/vnd.vmware.vcloud.query.queryList+xml",
|
406
|
+
:href=>make_href('query'),
|
407
|
+
:xsi_schemaLocation=>xsi_schema_location,
|
408
|
+
:Link=>
|
409
|
+
[{:rel=>"down",
|
410
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
411
|
+
:name=>"organization",
|
412
|
+
:href=>make_href('query?type=organization&format=references')},
|
413
|
+
{:rel=>"down",
|
414
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
415
|
+
:name=>"organization",
|
416
|
+
:href=>make_href('query?type=organization&format=records')},
|
417
|
+
{:rel=>"down",
|
418
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
419
|
+
:name=>"organization",
|
420
|
+
:href=>make_href('query?type=organization&format=idrecords')},
|
421
|
+
{:rel=>"down",
|
422
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
423
|
+
:name=>"orgVdc",
|
424
|
+
:href=>make_href('query?type=orgVdc&format=references')},
|
425
|
+
{:rel=>"down",
|
426
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
427
|
+
:name=>"orgVdc",
|
428
|
+
:href=>make_href('query?type=orgVdc&format=records')},
|
429
|
+
{:rel=>"down",
|
430
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
431
|
+
:name=>"orgVdc",
|
432
|
+
:href=>make_href('query?type=orgVdc&format=idrecords')},
|
433
|
+
{:rel=>"down",
|
434
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
435
|
+
:name=>"media",
|
436
|
+
:href=>make_href('query?type=media&format=references')},
|
437
|
+
{:rel=>"down",
|
438
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
439
|
+
:name=>"media",
|
440
|
+
:href=>make_href('query?type=media&format=records')},
|
441
|
+
{:rel=>"down",
|
442
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
443
|
+
:name=>"media",
|
444
|
+
:href=>make_href('query?type=media&format=idrecords')},
|
445
|
+
{:rel=>"down",
|
446
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
447
|
+
:name=>"vAppTemplate",
|
448
|
+
:href=>make_href('query?type=vAppTemplate&format=references')},
|
449
|
+
{:rel=>"down",
|
450
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
451
|
+
:name=>"vAppTemplate",
|
452
|
+
:href=>make_href('query?type=vAppTemplate&format=records')},
|
453
|
+
{:rel=>"down",
|
454
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
455
|
+
:name=>"vAppTemplate",
|
456
|
+
:href=>make_href('query?type=vAppTemplate&format=idrecords')},
|
457
|
+
{:rel=>"down",
|
458
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
459
|
+
:name=>"vApp",
|
460
|
+
:href=>make_href('query?type=vApp&format=references')},
|
461
|
+
{:rel=>"down",
|
462
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
463
|
+
:name=>"vApp",
|
464
|
+
:href=>make_href('query?type=vApp&format=records')},
|
465
|
+
{:rel=>"down",
|
466
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
467
|
+
:name=>"vApp",
|
468
|
+
:href=>make_href('query?type=vApp&format=idrecords')},
|
469
|
+
{:rel=>"down",
|
470
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
471
|
+
:name=>"vm",
|
472
|
+
:href=>make_href('query?type=vm&format=references')},
|
473
|
+
{:rel=>"down",
|
474
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
475
|
+
:name=>"vm",
|
476
|
+
:href=>make_href('query?type=vm&format=records')},
|
477
|
+
{:rel=>"down",
|
478
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
479
|
+
:name=>"vm",
|
480
|
+
:href=>make_href('query?type=vm&format=idrecords')},
|
481
|
+
{:rel=>"down",
|
482
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
483
|
+
:name=>"orgNetwork",
|
484
|
+
:href=>make_href('query?type=orgNetwork&format=references')},
|
485
|
+
{:rel=>"down",
|
486
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
487
|
+
:name=>"orgNetwork",
|
488
|
+
:href=>make_href('query?type=orgNetwork&format=records')},
|
489
|
+
{:rel=>"down",
|
490
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
491
|
+
:name=>"orgNetwork",
|
492
|
+
:href=>make_href('query?type=orgNetwork&format=idrecords')},
|
493
|
+
{:rel=>"down",
|
494
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
495
|
+
:name=>"vAppNetwork",
|
496
|
+
:href=>make_href('query?type=vAppNetwork&format=references')},
|
497
|
+
{:rel=>"down",
|
498
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
499
|
+
:name=>"vAppNetwork",
|
500
|
+
:href=>make_href('query?type=vAppNetwork&format=records')},
|
501
|
+
{:rel=>"down",
|
502
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
503
|
+
:name=>"vAppNetwork",
|
504
|
+
:href=>make_href('query?type=vAppNetwork&format=idrecords')},
|
505
|
+
{:rel=>"down",
|
506
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
507
|
+
:name=>"catalog",
|
508
|
+
:href=>make_href('query?type=catalog&format=references')},
|
509
|
+
{:rel=>"down",
|
510
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
511
|
+
:name=>"catalog",
|
512
|
+
:href=>make_href('query?type=catalog&format=records')},
|
513
|
+
{:rel=>"down",
|
514
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
515
|
+
:name=>"catalog",
|
516
|
+
:href=>make_href('query?type=catalog&format=idrecords')},
|
517
|
+
{:rel=>"down",
|
518
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
519
|
+
:name=>"group",
|
520
|
+
:href=>make_href('query?type=group&format=references')},
|
521
|
+
{:rel=>"down",
|
522
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
523
|
+
:name=>"group",
|
524
|
+
:href=>make_href('query?type=group&format=records')},
|
525
|
+
{:rel=>"down",
|
526
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
527
|
+
:name=>"group",
|
528
|
+
:href=>make_href('query?type=group&format=idrecords')},
|
529
|
+
{:rel=>"down",
|
530
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
531
|
+
:name=>"user",
|
532
|
+
:href=>make_href('query?type=user&format=references')},
|
533
|
+
{:rel=>"down",
|
534
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
535
|
+
:name=>"user",
|
536
|
+
:href=>make_href('query?type=user&format=records')},
|
537
|
+
{:rel=>"down",
|
538
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
539
|
+
:name=>"user",
|
540
|
+
:href=>make_href('query?type=user&format=idrecords')},
|
541
|
+
{:rel=>"down",
|
542
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
543
|
+
:name=>"strandedUser",
|
544
|
+
:href=>make_href('query?type=strandedUser&format=references')},
|
545
|
+
{:rel=>"down",
|
546
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
547
|
+
:name=>"strandedUser",
|
548
|
+
:href=>make_href('query?type=strandedUser&format=records')},
|
549
|
+
{:rel=>"down",
|
550
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
551
|
+
:name=>"strandedUser",
|
552
|
+
:href=>make_href('query?type=strandedUser&format=idrecords')},
|
553
|
+
{:rel=>"down",
|
554
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
555
|
+
:name=>"role",
|
556
|
+
:href=>make_href('query?type=role&format=references')},
|
557
|
+
{:rel=>"down",
|
558
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
559
|
+
:name=>"role",
|
560
|
+
:href=>make_href('query?type=role&format=records')},
|
561
|
+
{:rel=>"down",
|
562
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
563
|
+
:name=>"role",
|
564
|
+
:href=>make_href('query?type=role&format=idrecords')},
|
565
|
+
{:rel=>"down",
|
566
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
567
|
+
:name=>"allocatedExternalAddress",
|
568
|
+
:href=>make_href('query?type=allocatedExternalAddress&format=records')},
|
569
|
+
{:rel=>"down",
|
570
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
571
|
+
:name=>"allocatedExternalAddress",
|
572
|
+
:href=>make_href('query?type=allocatedExternalAddress&format=idrecords')},
|
573
|
+
{:rel=>"down",
|
574
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
575
|
+
:name=>"event",
|
576
|
+
:href=>make_href('query?type=event&format=records')},
|
577
|
+
{:rel=>"down",
|
578
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
579
|
+
:name=>"event",
|
580
|
+
:href=>make_href('query?type=event&format=idrecords')},
|
581
|
+
{:rel=>"down",
|
582
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
583
|
+
:name=>"right",
|
584
|
+
:href=>make_href('query?type=right&format=references')},
|
585
|
+
{:rel=>"down",
|
586
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
587
|
+
:name=>"right",
|
588
|
+
:href=>make_href('query?type=right&format=records')},
|
589
|
+
{:rel=>"down",
|
590
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
591
|
+
:name=>"right",
|
592
|
+
:href=>make_href('query?type=right&format=idrecords')},
|
593
|
+
{:rel=>"down",
|
594
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
595
|
+
:name=>"vAppOrgNetworkRelation",
|
596
|
+
:href=>make_href('query?type=vAppOrgNetworkRelation&format=references')},
|
597
|
+
{:rel=>"down",
|
598
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
599
|
+
:name=>"vAppOrgNetworkRelation",
|
600
|
+
:href=>make_href('query?type=vAppOrgNetworkRelation&format=records')},
|
601
|
+
{:rel=>"down",
|
602
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
603
|
+
:name=>"vAppOrgNetworkRelation",
|
604
|
+
:href=>make_href('query?type=vAppOrgNetworkRelation&format=idrecords')},
|
605
|
+
{:rel=>"down",
|
606
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
607
|
+
:name=>"catalogItem",
|
608
|
+
:href=>make_href('query?type=catalogItem&format=references')},
|
609
|
+
{:rel=>"down",
|
610
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
611
|
+
:name=>"catalogItem",
|
612
|
+
:href=>make_href('query?type=catalogItem&format=records')},
|
613
|
+
{:rel=>"down",
|
614
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
615
|
+
:name=>"catalogItem",
|
616
|
+
:href=>make_href('query?type=catalogItem&format=idrecords')},
|
617
|
+
{:rel=>"down",
|
618
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
619
|
+
:name=>"task",
|
620
|
+
:href=>make_href('query?type=task&format=references')},
|
621
|
+
{:rel=>"down",
|
622
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
623
|
+
:name=>"task",
|
624
|
+
:href=>make_href('query?type=task&format=records')},
|
625
|
+
{:rel=>"down",
|
626
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
627
|
+
:name=>"task",
|
628
|
+
:href=>make_href('query?type=task&format=idrecords')},
|
629
|
+
{:rel=>"down",
|
630
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
631
|
+
:name=>"disk",
|
632
|
+
:href=>make_href('query?type=disk&format=references')},
|
633
|
+
{:rel=>"down",
|
634
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
635
|
+
:name=>"disk",
|
636
|
+
:href=>make_href('query?type=disk&format=records')},
|
637
|
+
{:rel=>"down",
|
638
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
639
|
+
:name=>"disk",
|
640
|
+
:href=>make_href('query?type=disk&format=idrecords')},
|
641
|
+
{:rel=>"down",
|
642
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
643
|
+
:name=>"vmDiskRelation",
|
644
|
+
:href=>make_href('query?type=vmDiskRelation&format=records')},
|
645
|
+
{:rel=>"down",
|
646
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
647
|
+
:name=>"vmDiskRelation",
|
648
|
+
:href=>make_href('query?type=vmDiskRelation&format=idrecords')},
|
649
|
+
{:rel=>"down",
|
650
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
651
|
+
:name=>"service",
|
652
|
+
:href=>make_href('query?type=service&format=references')},
|
653
|
+
{:rel=>"down",
|
654
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
655
|
+
:name=>"service",
|
656
|
+
:href=>make_href('query?type=service&format=records')},
|
657
|
+
{:rel=>"down",
|
658
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
659
|
+
:name=>"service",
|
660
|
+
:href=>make_href('query?type=service&format=idrecords')},
|
661
|
+
{:rel=>"down",
|
662
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
663
|
+
:name=>"orgVdcStorageProfile",
|
664
|
+
:href=>make_href('query?type=orgVdcStorageProfile&format=references')},
|
665
|
+
{:rel=>"down",
|
666
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
667
|
+
:name=>"orgVdcStorageProfile",
|
668
|
+
:href=>make_href('query?type=orgVdcStorageProfile&format=records')},
|
669
|
+
{:rel=>"down",
|
670
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
671
|
+
:name=>"orgVdcStorageProfile",
|
672
|
+
:href=>make_href('query?type=orgVdcStorageProfile&format=idrecords')},
|
673
|
+
{:rel=>"down",
|
674
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
675
|
+
:name=>"apiDefinition",
|
676
|
+
:href=>make_href('query?type=apiDefinition&format=references')},
|
677
|
+
{:rel=>"down",
|
678
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
679
|
+
:name=>"apiDefinition",
|
680
|
+
:href=>make_href('query?type=apiDefinition&format=records')},
|
681
|
+
{:rel=>"down",
|
682
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
683
|
+
:name=>"apiDefinition",
|
684
|
+
:href=>make_href('query?type=apiDefinition&format=idrecords')},
|
685
|
+
{:rel=>"down",
|
686
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
687
|
+
:name=>"fileDescriptor",
|
688
|
+
:href=>make_href('query?type=fileDescriptor&format=records')},
|
689
|
+
{:rel=>"down",
|
690
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
691
|
+
:name=>"fileDescriptor",
|
692
|
+
:href=>make_href('query?type=fileDescriptor&format=idrecords')},
|
693
|
+
{:rel=>"down",
|
694
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
695
|
+
:name=>"edgeGateway",
|
696
|
+
:href=>make_href('query?type=edgeGateway&format=references')},
|
697
|
+
{:rel=>"down",
|
698
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
699
|
+
:name=>"edgeGateway",
|
700
|
+
:href=>make_href('query?type=edgeGateway&format=records')},
|
701
|
+
{:rel=>"down",
|
702
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
703
|
+
:name=>"edgeGateway",
|
704
|
+
:href=>make_href('query?type=edgeGateway&format=idrecords')},
|
705
|
+
{:rel=>"down",
|
706
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
707
|
+
:name=>"orgVdcNetwork",
|
708
|
+
:href=>make_href('query?type=orgVdcNetwork&format=references')},
|
709
|
+
{:rel=>"down",
|
710
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
711
|
+
:name=>"orgVdcNetwork",
|
712
|
+
:href=>make_href('query?type=orgVdcNetwork&format=records')},
|
713
|
+
{:rel=>"down",
|
714
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
715
|
+
:name=>"orgVdcNetwork",
|
716
|
+
:href=>make_href('query?type=orgVdcNetwork&format=idrecords')},
|
717
|
+
{:rel=>"down",
|
718
|
+
:type=>"application/vnd.vmware.vcloud.query.references+xml",
|
719
|
+
:name=>"vAppOrgVdcNetworkRelation",
|
720
|
+
:href=>make_href('query?type=vAppOrgVdcNetworkRelation&format=references')},
|
721
|
+
{:rel=>"down",
|
722
|
+
:type=>"application/vnd.vmware.vcloud.query.records+xml",
|
723
|
+
:name=>"vAppOrgVdcNetworkRelation",
|
724
|
+
:href=>make_href('query?type=vAppOrgVdcNetworkRelation&format=records')},
|
725
|
+
{:rel=>"down",
|
726
|
+
:type=>"application/vnd.vmware.vcloud.query.idrecords+xml",
|
727
|
+
:name=>"vAppOrgVdcNetworkRelation",
|
728
|
+
:href=>make_href('query?type=vAppOrgVdcNetworkRelation&format=idrecords')}
|
729
|
+
]
|
730
|
+
}
|
731
|
+
end
|
732
|
+
|
733
|
+
end
|
734
|
+
end
|
735
|
+
end
|
736
|
+
end
|