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,36 @@
|
|
1
|
+
Shindo.tests('Compute::VcloudDirector | ovf requests', ['vclouddirector']) do
|
2
|
+
|
3
|
+
@service = Fog::Compute::VcloudDirector.new
|
4
|
+
@org = VcloudDirector::Compute::Helper.current_org(@service)
|
5
|
+
|
6
|
+
tests('Get first vDC') do
|
7
|
+
session = @service.get_current_session.body
|
8
|
+
link = @org[:Link].find do |l|
|
9
|
+
l[:type] == 'application/vnd.vmware.vcloud.vdc+xml'
|
10
|
+
end
|
11
|
+
@vdc = @service.get_vdc(link[:href].split('/').last).body
|
12
|
+
end
|
13
|
+
|
14
|
+
# 'Envelope' is the outer type of the parsed XML document.
|
15
|
+
tests('#get_vapp_ovf_descriptor').returns('Envelope') do
|
16
|
+
pending if Fog.mocking?
|
17
|
+
link = @vdc[:ResourceEntities][:ResourceEntity].find do |l|
|
18
|
+
l[:type] == 'application/vnd.vmware.vcloud.vApp+xml'
|
19
|
+
end
|
20
|
+
pending if link.nil?
|
21
|
+
body = @service.get_vapp_ovf_descriptor(link[:href].split('/').last).body
|
22
|
+
Nokogiri::XML::Document.parse(body).children.first.name
|
23
|
+
end
|
24
|
+
|
25
|
+
# 'Envelope' is the outer type of the parsed XML document.
|
26
|
+
tests('#get_vapp_template_ovf_descriptor').returns('Envelope') do
|
27
|
+
pending if Fog.mocking?
|
28
|
+
link = @vdc[:ResourceEntities][:ResourceEntity].find do |l|
|
29
|
+
l[:type] == 'application/vnd.vmware.vcloud.vAppTemplate+xml'
|
30
|
+
end
|
31
|
+
pending if link.nil?
|
32
|
+
body = @service.get_vapp_template_ovf_descriptor(link[:href].split('/').last).body
|
33
|
+
Nokogiri::XML::Document.parse(body).children.first.name
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
Shindo.tests('Compute::VcloudDirector | query requests', ['vclouddirector']) do
|
2
|
+
|
3
|
+
@service = Fog::Compute::VcloudDirector.new
|
4
|
+
|
5
|
+
tests('retrieve a summary list of all typed queries types') do
|
6
|
+
tests('#get_execute_query') do
|
7
|
+
@query_list = @service.get_execute_query.body
|
8
|
+
tests(':type').returns('application/vnd.vmware.vcloud.query.queryList+xml') do
|
9
|
+
@query_list[:type]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# for each queriable type, query and check that each available format
|
15
|
+
# returns a result that matches the base schema
|
16
|
+
#
|
17
|
+
@query_list[:Link].select do |link|
|
18
|
+
link[:rel] == 'down'
|
19
|
+
end.sort_by do |link|
|
20
|
+
[link[:name], link[:href]]
|
21
|
+
end.each do |link|
|
22
|
+
|
23
|
+
href = Nokogiri::XML.fragment(link[:href])
|
24
|
+
query = CGI.parse(URI.parse(href.text).query)
|
25
|
+
type = query['type'].first
|
26
|
+
format = query['format'].first
|
27
|
+
next if %w[right role strandedUser].include?(type)
|
28
|
+
tests("type => #{type}, format => #{format}") do
|
29
|
+
|
30
|
+
pending if Fog.mocking? && (format != 'records' || type != 'orgVdcNetwork')
|
31
|
+
|
32
|
+
tests("#get_execute_query").data_matches_schema(VcloudDirector::Compute::Schema::CONTAINER_TYPE) do
|
33
|
+
@body = @service.get_execute_query(type, :format => format).body
|
34
|
+
end
|
35
|
+
tests("resource type").returns(link[:type]) { @body[:type] }
|
36
|
+
|
37
|
+
unless ( type == 'event' || type == 'edgeGateway' )
|
38
|
+
records_key = @body.keys.find {|key| key.to_s =~ /Record|Reference$/}
|
39
|
+
if records = @body[records_key]
|
40
|
+
records.first do |record|
|
41
|
+
case format
|
42
|
+
when 'records'
|
43
|
+
tests("record is correct schema").data_matches_schema(VcloudDirector::Compute::Schema::REFERENCE_TYPE) do
|
44
|
+
record
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
if Fog.mocking?
|
55
|
+
tests('ensure Mock logic is sound') do
|
56
|
+
tests('#get_execute_query') do
|
57
|
+
tests('orgVdcNetwork') do
|
58
|
+
output = @service.get_execute_query('orgVdcNetwork').body
|
59
|
+
tests('all records').returns(@service.data[:networks].size) do
|
60
|
+
output[:OrgVdcNetworkRecords].size
|
61
|
+
end
|
62
|
+
output = @service.get_execute_query('orgVdcNetwork', :filter => 'name==vDC1 backend network').body
|
63
|
+
tests(':filter by name').returns(1) do
|
64
|
+
output[:OrgVdcNetworkRecords].size
|
65
|
+
end
|
66
|
+
tests(':page option is ok if :page == 1').returns(@service.data[:networks].size) do
|
67
|
+
output = @service.get_execute_query('orgVdcNetwork', :page => '1').body
|
68
|
+
output[:OrgVdcNetworkRecords].size
|
69
|
+
end
|
70
|
+
tests('AND expression in :filter raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
71
|
+
@service.get_execute_query('orgVdcNetwork', :filter => 'name==Default Network;thing==wibble')
|
72
|
+
end
|
73
|
+
tests('OR expression in :filter raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
74
|
+
@service.get_execute_query('orgVdcNetwork', :filter => 'name==Default Network,thing==wibble')
|
75
|
+
end
|
76
|
+
tests('sortAsc option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
77
|
+
@service.get_execute_query('orgVdcNetwork', :sortAsc => 'name')
|
78
|
+
end
|
79
|
+
tests('sortDesc option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
80
|
+
@service.get_execute_query('orgVdcNetwork', :sortDesc => 'name')
|
81
|
+
end
|
82
|
+
tests('page option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
83
|
+
@service.get_execute_query('orgVdcNetwork', :page => '2')
|
84
|
+
end
|
85
|
+
tests('pageSize option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
86
|
+
@service.get_execute_query('orgVdcNetwork', :pageSize => '50')
|
87
|
+
end
|
88
|
+
tests('offset option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
89
|
+
@service.get_execute_query('orgVdcNetwork', :offset => '5')
|
90
|
+
end
|
91
|
+
tests('fields option raises MockNotImplemented').raises(Fog::Errors::MockNotImplemented) do
|
92
|
+
@service.get_execute_query('orgVdcNetwork', :fields => 'name,thing')
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
@@ -0,0 +1,663 @@
|
|
1
|
+
class VcloudDirector
|
2
|
+
module Compute
|
3
|
+
module Schema
|
4
|
+
# Mapping of a content media type to a xsd complex type.
|
5
|
+
MEDIA_TYPE_MAPPING_TYPE = {
|
6
|
+
:MediaType => String,
|
7
|
+
:ComplexTypeName => String,
|
8
|
+
:SchemaLocation => String
|
9
|
+
}
|
10
|
+
|
11
|
+
# Information for one version of the API.
|
12
|
+
VERSION_INFO_TYPE = {
|
13
|
+
:Version => String,
|
14
|
+
:LoginUrl => String,
|
15
|
+
:MediaTypeMapping => [MEDIA_TYPE_MAPPING_TYPE]
|
16
|
+
}
|
17
|
+
|
18
|
+
# List all supported versions.
|
19
|
+
SUPPORTED_VERSIONS_TYPE = {
|
20
|
+
:VersionInfo => [VERSION_INFO_TYPE]
|
21
|
+
}
|
22
|
+
|
23
|
+
# The standard error message type used in the vCloud REST API.
|
24
|
+
ERROR_TYPE = {
|
25
|
+
:majorErrorCode => String,
|
26
|
+
:message => String,
|
27
|
+
:minorErrorCode => String,
|
28
|
+
:stackTrace => Fog::Nullable::String,
|
29
|
+
:vendorSpecificErrorCode => Fog::Nullable::String
|
30
|
+
}
|
31
|
+
|
32
|
+
# The base type for all objects in the vCloud model. Has an optional list
|
33
|
+
# of links and href and type attributes.
|
34
|
+
REFERENCE_TYPE = {
|
35
|
+
:href => String,
|
36
|
+
:id => Fog::Nullable::String,
|
37
|
+
:name => Fog::Nullable::String,
|
38
|
+
:type => Fog::Nullable::String
|
39
|
+
}
|
40
|
+
|
41
|
+
# Extends reference type by adding relation attribute. Defines a
|
42
|
+
# hyper-link with a relationship, hyper-link reference, and an optional
|
43
|
+
# MIME type.
|
44
|
+
LINK_TYPE = REFERENCE_TYPE.merge({
|
45
|
+
:rel => String
|
46
|
+
})
|
47
|
+
|
48
|
+
# Represents a reference to a resource. Contains an href attribute, a
|
49
|
+
# resource status attribute, and optional name and type attributes.
|
50
|
+
RESOURCE_REFERENCE_TYPE = REFERENCE_TYPE.merge({
|
51
|
+
:status => Fog::Nullable::String
|
52
|
+
})
|
53
|
+
|
54
|
+
# The base type for all objects in the vCloud model. Has an optional list
|
55
|
+
# of links and href and type attributes.
|
56
|
+
RESOURCE_TYPE = {
|
57
|
+
:href => Fog::Nullable::String,
|
58
|
+
:type => Fog::Nullable::String,
|
59
|
+
# :Link => [LINK_TYPE] -- FIXME: not required
|
60
|
+
}
|
61
|
+
|
62
|
+
# The base type for all resource types which contain an id attribute.
|
63
|
+
IDENTIFIABLE_RESOURCE_TYPE = RESOURCE_TYPE.merge({
|
64
|
+
:id => Fog::Nullable::String,
|
65
|
+
:operationKey => Fog::Nullable::String,
|
66
|
+
})
|
67
|
+
|
68
|
+
# Basic entity type in the vCloud object model. Includes a name, an
|
69
|
+
# optional description, and an optional list of links.
|
70
|
+
ENTITY_TYPE = IDENTIFIABLE_RESOURCE_TYPE.merge({
|
71
|
+
:name => String
|
72
|
+
})
|
73
|
+
|
74
|
+
# Represents a file to be transferred (uploaded or downloaded).
|
75
|
+
FILE_TYPE = ENTITY_TYPE.merge({
|
76
|
+
:bytesTransfered => Fog::Nullable::String,
|
77
|
+
:checksum => Fog::Nullable::String, # normalizedString
|
78
|
+
:size => Fog::Nullable::String
|
79
|
+
})
|
80
|
+
|
81
|
+
# Represents a list of files to be transferred (uploaded or downloaded).
|
82
|
+
FILES_LIST_TYPE = {
|
83
|
+
:File => [FILE_TYPE]
|
84
|
+
}
|
85
|
+
|
86
|
+
# Container for query result sets.
|
87
|
+
CONTAINER_TYPE = RESOURCE_TYPE.merge({
|
88
|
+
:name => String,
|
89
|
+
:page => String,
|
90
|
+
:pageSize => String,
|
91
|
+
:total => String
|
92
|
+
})
|
93
|
+
|
94
|
+
# Represents an asynchronous operation in vCloud Director.
|
95
|
+
TASK_TYPE = ENTITY_TYPE.merge({
|
96
|
+
:cancelRequested => Fog::Nullable::String,
|
97
|
+
:endTime => Fog::Nullable::String,
|
98
|
+
:expiryTime => String,
|
99
|
+
:operation => Fog::Nullable::String,
|
100
|
+
:operationName => Fog::Nullable::String,
|
101
|
+
:serviceNamespace => Fog::Nullable::String,
|
102
|
+
:startTime => Fog::Nullable::String,
|
103
|
+
:status => String,
|
104
|
+
# :Tasks => TASKS_IN_PROGRESS_TYPE, # not happening!
|
105
|
+
:Owner => REFERENCE_TYPE,
|
106
|
+
# :Error => ERROR_TYPE,
|
107
|
+
:User => REFERENCE_TYPE,
|
108
|
+
:Organization => REFERENCE_TYPE,
|
109
|
+
:Progress => Fog::Nullable::String,
|
110
|
+
# :Params => anyType,
|
111
|
+
:Details => Fog::Nullable::String
|
112
|
+
})
|
113
|
+
|
114
|
+
# A list of queued, running, or recently completed tasks.
|
115
|
+
TASKS_IN_PROGRESS_TYPE = {
|
116
|
+
:Task => [TASK_TYPE]
|
117
|
+
}
|
118
|
+
|
119
|
+
# Base type that represents a resource entity such as a vApp template or
|
120
|
+
# virtual media.
|
121
|
+
RESOURCE_ENTITY_TYPE = ENTITY_TYPE.merge({
|
122
|
+
:status => Fog::Nullable::String,
|
123
|
+
:Description => Fog::Nullable::String,
|
124
|
+
# :Tasks => TASKS_IN_PROGRESS_TYPE,
|
125
|
+
# :Files => FILES_LIST_TYPE
|
126
|
+
})
|
127
|
+
|
128
|
+
# Container for references to ResourceEntity objects in this vDC.
|
129
|
+
RESOURCE_ENTITIES_TYPE = {
|
130
|
+
:ResourceEntity => [RESOURCE_REFERENCE_TYPE]
|
131
|
+
}
|
132
|
+
|
133
|
+
# Represents a supported virtual hardware version.
|
134
|
+
SUPPORTED_HARDWARE_VERSION_TYPE = String
|
135
|
+
|
136
|
+
# Contains a list of VMware virtual hardware versions supported in this
|
137
|
+
# vDC.
|
138
|
+
SUPPORTED_HARDWARE_VERSIONS_TYPE = {
|
139
|
+
:SupportedHardwareVersion => SUPPORTED_HARDWARE_VERSION_TYPE
|
140
|
+
}
|
141
|
+
|
142
|
+
# Represents a base type for VAppType and VmType.
|
143
|
+
ABSTRACT_VAPP_TYPE = RESOURCE_ENTITY_TYPE.merge({
|
144
|
+
:deployed => String,
|
145
|
+
:DateCreated => String
|
146
|
+
})
|
147
|
+
|
148
|
+
VAPP_CHILDREN_TYPE = {
|
149
|
+
#:VApp => ABSTRACT_VAPP_TYPE,
|
150
|
+
:Vm => [ABSTRACT_VAPP_TYPE]
|
151
|
+
}
|
152
|
+
|
153
|
+
# Controls access to the resource.
|
154
|
+
ACCESS_SETTING_TYPE = {
|
155
|
+
:Subject => REFERENCE_TYPE,
|
156
|
+
:AccessLevel => String
|
157
|
+
}
|
158
|
+
|
159
|
+
# A list of access settings for a resource.
|
160
|
+
ACCESS_SETTINGS_TYPE = {
|
161
|
+
:AccessSettingType => [ACCESS_SETTING_TYPE]
|
162
|
+
}
|
163
|
+
|
164
|
+
# Container for references to available organization vDC networks.
|
165
|
+
AVAILABLE_NETWORKS_TYPE = {
|
166
|
+
:Network => [REFERENCE_TYPE]
|
167
|
+
}
|
168
|
+
|
169
|
+
# Collection of supported hardware capabilities.
|
170
|
+
CAPABILITIES_TYPE = {
|
171
|
+
:SupportedHardwareVersions => SUPPORTED_HARDWARE_VERSIONS_TYPE
|
172
|
+
}
|
173
|
+
|
174
|
+
# Represents the capacity of a given resource.
|
175
|
+
CAPACITY_TYPE = {
|
176
|
+
:Units => String,
|
177
|
+
:Allocated => Fog::Nullable::String,
|
178
|
+
:Limit => String
|
179
|
+
}
|
180
|
+
|
181
|
+
# Represents a capacity and usage of a given resource.
|
182
|
+
CAPACITY_WITH_USAGE_TYPE = CAPACITY_TYPE.merge({
|
183
|
+
:Reserved => String,
|
184
|
+
:Used => Fog::Nullable::String,
|
185
|
+
:Overhead => Fog::Nullable::String
|
186
|
+
})
|
187
|
+
|
188
|
+
# Represents vDC compute capacity.
|
189
|
+
COMPUTE_CAPACITY_TYPE = {
|
190
|
+
:Cpu => CAPACITY_WITH_USAGE_TYPE,
|
191
|
+
:Memory => CAPACITY_WITH_USAGE_TYPE
|
192
|
+
}
|
193
|
+
|
194
|
+
# Represents a guest customization settings.
|
195
|
+
GUEST_CUSTOMIZATION_SECTION_TYPE = { # TODO: extends Section_Type
|
196
|
+
:Enabled => Fog::Nullable::String,
|
197
|
+
:ChangeSid => Fog::Nullable::String,
|
198
|
+
:VirtualMachineId => Fog::Nullable::String,
|
199
|
+
:JoinDomainEnabled => Fog::Nullable::String,
|
200
|
+
:UseOrgSettings => Fog::Nullable::String,
|
201
|
+
:DomainName => Fog::Nullable::String,
|
202
|
+
:DomainUserName => Fog::Nullable::String,
|
203
|
+
:DomainUserPassword => Fog::Nullable::String,
|
204
|
+
:MachineObjectOU => Fog::Nullable::String,
|
205
|
+
:AdminPasswordEnabled => Fog::Nullable::String,
|
206
|
+
:AdminPasswordAuto => Fog::Nullable::String,
|
207
|
+
:AdminPassword => Fog::Nullable::String,
|
208
|
+
:ResetPasswordRequired => Fog::Nullable::String,
|
209
|
+
:CustomizationScript => Fog::Nullable::String,
|
210
|
+
:ComputerName => String,
|
211
|
+
:Link => LINK_TYPE
|
212
|
+
}
|
213
|
+
|
214
|
+
# Represents the owner of this entity.
|
215
|
+
OWNER_TYPE = RESOURCE_TYPE.merge({
|
216
|
+
:User => REFERENCE_TYPE
|
217
|
+
})
|
218
|
+
|
219
|
+
# VMware Tools and other runtime information for this virtual machine.
|
220
|
+
RUNTIME_INFO_SECTION_TYPE = { # TODO: extends Section_Type
|
221
|
+
:VMWareTools => {
|
222
|
+
:version => Fog::Nullable::String
|
223
|
+
}
|
224
|
+
}
|
225
|
+
|
226
|
+
# Container for references to storage profiles associated with a vDC.
|
227
|
+
VDC_STORAGE_PROFILES_TYPE = {
|
228
|
+
:VdcStorageProfile => [REFERENCE_TYPE]
|
229
|
+
}
|
230
|
+
|
231
|
+
# Allows you to specify certain capabilities of this virtual machine.
|
232
|
+
VM_CAPABILITIES_TYPE = RESOURCE_TYPE.merge({
|
233
|
+
:MemoryHotAddEnabled => String,
|
234
|
+
:CpuHotAddEnabled => String
|
235
|
+
})
|
236
|
+
|
237
|
+
# Represents the user view of a Catalog object.
|
238
|
+
CATALOG_TYPE = ENTITY_TYPE.merge({
|
239
|
+
#:Owner => OWNER_TYPE,
|
240
|
+
#:CatalogItems => CATALOG_ITEMS_TYPE,
|
241
|
+
:IsPublished => String,
|
242
|
+
:DateCreated => String
|
243
|
+
})
|
244
|
+
|
245
|
+
# Specifies access controls for a resource.
|
246
|
+
CONTROL_ACCESS_PARAMS_TYPE = {
|
247
|
+
:IsSharedToEveryone => String,
|
248
|
+
:EveryoneAccessLevel => Fog::Nullable::String,
|
249
|
+
# :AccessSettings => ACCESS_SETTINGS_TYPE
|
250
|
+
}
|
251
|
+
|
252
|
+
# Represents a Media object.
|
253
|
+
MEDIA_TYPE = RESOURCE_ENTITY_TYPE.merge({
|
254
|
+
:imageType => String,
|
255
|
+
:size => String,
|
256
|
+
:Owner => OWNER_TYPE,
|
257
|
+
:VdcStorageProfile => REFERENCE_TYPE
|
258
|
+
})
|
259
|
+
|
260
|
+
METADATA_TYPE = RESOURCE_TYPE.merge({
|
261
|
+
#:MetadataEntry => METADATA_ENTRY_TYPE
|
262
|
+
})
|
263
|
+
|
264
|
+
# Represents a list of organizations.
|
265
|
+
ORG_LIST_TYPE = RESOURCE_TYPE.merge({
|
266
|
+
:Org => [REFERENCE_TYPE]
|
267
|
+
})
|
268
|
+
|
269
|
+
# Represents the user view of a vCloud Director organization.
|
270
|
+
ORG_TYPE = ENTITY_TYPE.merge({
|
271
|
+
:Description => Fog::Nullable::String,
|
272
|
+
:Tasks => TASKS_IN_PROGRESS_TYPE,
|
273
|
+
:FullName => String,
|
274
|
+
:IsEnabled => Fog::Nullable::String
|
275
|
+
})
|
276
|
+
|
277
|
+
# Represents a vCloud Session.
|
278
|
+
SESSION_TYPE = RESOURCE_TYPE.merge({
|
279
|
+
:org => String,
|
280
|
+
:user => String,
|
281
|
+
:Link => [LINK_TYPE]
|
282
|
+
})
|
283
|
+
|
284
|
+
# A list of tasks.
|
285
|
+
TASKS_LIST_TYPE = ENTITY_TYPE.merge({
|
286
|
+
#:Task => TASK_TYPE
|
287
|
+
})
|
288
|
+
# Represents a vApp.
|
289
|
+
VAPP_TYPE = ABSTRACT_VAPP_TYPE.merge({
|
290
|
+
:ovfDescriptorUploaded => String,
|
291
|
+
:Owner => OWNER_TYPE,
|
292
|
+
:InMaintenanceMode => String,
|
293
|
+
:Children => VAPP_CHILDREN_TYPE
|
294
|
+
})
|
295
|
+
|
296
|
+
# Represents the user view of an organization vDC.
|
297
|
+
VDC_TYPE = ENTITY_TYPE.merge({
|
298
|
+
:status => Fog::Nullable::String,
|
299
|
+
:AllocationModel => String,
|
300
|
+
# :StorageCapacity => CAPACITY_WITH_USAGE_TYPE,
|
301
|
+
:ComputeCapacity => COMPUTE_CAPACITY_TYPE,
|
302
|
+
:ResourceEntities => RESOURCE_ENTITIES_TYPE,
|
303
|
+
:AvailableNetworks => AVAILABLE_NETWORKS_TYPE,
|
304
|
+
:Capabilities => CAPABILITIES_TYPE,
|
305
|
+
:NicQuota => String,
|
306
|
+
:NetworkQuota => String,
|
307
|
+
:UsedNetworkCount => String,
|
308
|
+
:VmQuota => Fog::Nullable::String,
|
309
|
+
:IsEnabled => Fog::Nullable::String,
|
310
|
+
:VdcStorageProfiles => VDC_STORAGE_PROFILES_TYPE # >= 5.1
|
311
|
+
})
|
312
|
+
|
313
|
+
# Represents a storage profile in an organization vDC.
|
314
|
+
VDC_STORAGE_PROFILE_TYPE = ENTITY_TYPE.merge({
|
315
|
+
:Enabled => Fog::Nullable::String,
|
316
|
+
:Units => String,
|
317
|
+
:Limit => String,
|
318
|
+
:Default => String
|
319
|
+
})
|
320
|
+
|
321
|
+
# Information about an individual operating system.
|
322
|
+
OPERATING_SYSTEM_INFO_TYPE = {
|
323
|
+
:OperatingSystemId => String,
|
324
|
+
:DefaultHardDiskAdapterType => String,
|
325
|
+
:MinimumHardDiskSizeGigabytes => String,
|
326
|
+
:MinimumMemoryMegabytes => String,
|
327
|
+
:Name => String,
|
328
|
+
:InternalName => String,
|
329
|
+
:Supported => String,
|
330
|
+
:x64 => String,
|
331
|
+
:MaximumCpuCount => String,
|
332
|
+
:MinimumHardwareVersion => String,
|
333
|
+
:PersonalizationEnabled => String,
|
334
|
+
:PersonalizationAuto => String,
|
335
|
+
:SysprepPackagingSupported => String,
|
336
|
+
:SupportsMemHotAdd => String,
|
337
|
+
:cimOsId => String,
|
338
|
+
:CimVersion => String,
|
339
|
+
:SupportedForCreate => String
|
340
|
+
}
|
341
|
+
|
342
|
+
# Represents an operating system family.
|
343
|
+
OPERATING_SYSTEM_FAMILY_INFO_TYPE = {
|
344
|
+
:Name => String,
|
345
|
+
:OperatingSystemFamilyId => String,
|
346
|
+
:OperatingSystem => [OPERATING_SYSTEM_INFO_TYPE]
|
347
|
+
}
|
348
|
+
|
349
|
+
# Operating systems available for use on virtual machines owned by this
|
350
|
+
# organization.
|
351
|
+
SUPPORTED_OPERATING_SYSTEMS_INFO_TYPE = RESOURCE_TYPE.merge({
|
352
|
+
:OperatingSystemFamilyInfo => [OPERATING_SYSTEM_FAMILY_INFO_TYPE]
|
353
|
+
})
|
354
|
+
|
355
|
+
# Container for query results in records format.
|
356
|
+
# Combine with QUERY_RESULT_RECORD_TYPE subtypes to validate query results
|
357
|
+
QUERY_RESULT_RECORDS_TYPE = CONTAINER_TYPE
|
358
|
+
|
359
|
+
# Base type for a single record from query result in records format.
|
360
|
+
# Subtypes define more specific elements.
|
361
|
+
QUERY_RESULT_RECORD_TYPE = {
|
362
|
+
:href => String,
|
363
|
+
:id => Fog::Nullable::String,
|
364
|
+
:type => Fog::Nullable::String
|
365
|
+
}
|
366
|
+
|
367
|
+
# Type for a single edgeGateway query result in records format.
|
368
|
+
QUERY_RESULT_EDGE_GATEWAY_RECORD_TYPE = QUERY_RESULT_RECORD_TYPE.merge({
|
369
|
+
:gatewayStatus => String,
|
370
|
+
:haStatus => String,
|
371
|
+
:isBusy => String,
|
372
|
+
:name => String,
|
373
|
+
:numberOfExtNetworks => String,
|
374
|
+
:numberOfOrgNetworks=> String,
|
375
|
+
:vdc => String
|
376
|
+
})
|
377
|
+
|
378
|
+
FIREWALL_RULE_TYPE__PROTOCOLS = {
|
379
|
+
:Icmp => Fog::Nullable::String,
|
380
|
+
:Asny => Fog::Nullable::String,
|
381
|
+
:Other => Fog::Nullable::String
|
382
|
+
}
|
383
|
+
|
384
|
+
# Represents a firewall rule.
|
385
|
+
FIREWALL_RULE_TYPE = {
|
386
|
+
:Id => String,
|
387
|
+
:IsEnabled => String,
|
388
|
+
:MatchOnTranslate => Fog::Nullable::String,
|
389
|
+
:Description => Fog::Nullable::String,
|
390
|
+
:Policy => Fog::Nullable::String,
|
391
|
+
:IcmpSubType => Fog::Nullable::String,
|
392
|
+
:Port => Fog::Nullable::String,
|
393
|
+
:DestinationPortRange => String,
|
394
|
+
:SourcePort => Fog::Nullable::String,
|
395
|
+
:SourcePortRange => String,
|
396
|
+
:Direction => Fog::Nullable::String,
|
397
|
+
:EnableLogging => Fog::Nullable::String,
|
398
|
+
:Protocols => FIREWALL_RULE_TYPE__PROTOCOLS
|
399
|
+
}
|
400
|
+
|
401
|
+
# Represents a network firewall service.
|
402
|
+
FIREWALL_SERVICE_TYPE = {
|
403
|
+
:IsEnabled => String,
|
404
|
+
:DefaultAction => String,
|
405
|
+
:LogDefaultAction => String,
|
406
|
+
#:FirewallRule => [FIREWALL_RULE_TYPE] # not required
|
407
|
+
}
|
408
|
+
|
409
|
+
#Represents the SNAT and DNAT rules.
|
410
|
+
GATEWAY_NAT_RULE_TYPE = {
|
411
|
+
:Interface => REFERENCE_TYPE,
|
412
|
+
:OriginalIp => String,
|
413
|
+
:OriginalPort => Fog::Nullable::String,
|
414
|
+
:TranslatedIp => String,
|
415
|
+
:TranslatedPort => Fog::Nullable::String,
|
416
|
+
:Protocol => Fog::Nullable::String,
|
417
|
+
:IcmpSubType => Fog::Nullable::String
|
418
|
+
}
|
419
|
+
|
420
|
+
#Represents a NAT rule.
|
421
|
+
NAT_RULE_TYPE = {
|
422
|
+
:Description => Fog::Nullable::String,
|
423
|
+
:RuleType => String,
|
424
|
+
:IsEnabled => String,
|
425
|
+
:Id => String,
|
426
|
+
:GatewayNatRule => GATEWAY_NAT_RULE_TYPE
|
427
|
+
}
|
428
|
+
|
429
|
+
# Represents a NAT network service.
|
430
|
+
NAT_SERVICE_TYPE = {
|
431
|
+
:IsEnabled => String,
|
432
|
+
:NatType => Fog::Nullable::String,
|
433
|
+
:Policy => Fog::Nullable::String,
|
434
|
+
#:NatRule => [NAT_RULE_TYPE], # not required
|
435
|
+
:ExternalIp => Fog::Nullable::String
|
436
|
+
}
|
437
|
+
|
438
|
+
# Represents a service port in a load balancer pool.
|
439
|
+
LB_POOL_SERVICE_PORT_TYPE = {
|
440
|
+
:IsEnabled => Fog::Nullable::String,
|
441
|
+
:Protocol => String,
|
442
|
+
:Algorithm => Fog::Nullable::String,
|
443
|
+
:Port => String,
|
444
|
+
:HealthCheckPort => String,
|
445
|
+
#:HealthCheck => LBPoolHealthCheckType # not required
|
446
|
+
}
|
447
|
+
|
448
|
+
# Represents a member in a load balancer pool.
|
449
|
+
LB_POOL_MEMBER_TYPE = {
|
450
|
+
:IpAddress => String,
|
451
|
+
:Weight => String,
|
452
|
+
:ServicePort => [LB_POOL_SERVICE_PORT_TYPE]
|
453
|
+
}
|
454
|
+
|
455
|
+
# Represents a load balancer pool.
|
456
|
+
LOAD_BALANCER_POOL_TYPE = {
|
457
|
+
:Id => Fog::Nullable::String,
|
458
|
+
:Name => String,
|
459
|
+
:Description => Fog::Nullable::String,
|
460
|
+
:ServicePort => [LB_POOL_SERVICE_PORT_TYPE],
|
461
|
+
:Member => [LB_POOL_MEMBER_TYPE],
|
462
|
+
:Operational => String,
|
463
|
+
:ErrorDetails => Fog::Nullable::String
|
464
|
+
}
|
465
|
+
|
466
|
+
# Represents persistence type for a load balancer service profile.
|
467
|
+
LB_PERSISTENCE_TYPE = {
|
468
|
+
:Method => String,
|
469
|
+
:CookieName => Fog::Nullable::String,
|
470
|
+
:CookieMode => Fog::Nullable::String
|
471
|
+
}
|
472
|
+
|
473
|
+
# Represents service profile for a load balancing virtual server.
|
474
|
+
LB_VIRTUAL_SERVER_SERVICE_PROFILE_TYPE = {
|
475
|
+
:IsEnabled => String,
|
476
|
+
:Protocol => String,
|
477
|
+
:Port => String,
|
478
|
+
:Persistence => LB_PERSISTENCE_TYPE
|
479
|
+
}
|
480
|
+
|
481
|
+
# Information about a vendor service template. This is optional.
|
482
|
+
VENDOR_TEMPLATE_TYPE = {
|
483
|
+
:Name => String,
|
484
|
+
:Id => String
|
485
|
+
}
|
486
|
+
|
487
|
+
# Represents a load balancer virtual server.
|
488
|
+
LOAD_BALANCER_VIRTUAL_SERVER_TYPE = {
|
489
|
+
:IsEnabled => String,
|
490
|
+
:Name => String,
|
491
|
+
:Description => Fog::Nullable::String,
|
492
|
+
:Interface => REFERENCE_TYPE,
|
493
|
+
:IpAddress => String,
|
494
|
+
:ServiceProfile => [LB_VIRTUAL_SERVER_SERVICE_PROFILE_TYPE],
|
495
|
+
:Logging => String,
|
496
|
+
:Pool => String,
|
497
|
+
#:LoadBalancerTemplates => VENDOR_TEMPLATE_TYPE # not required
|
498
|
+
}
|
499
|
+
|
500
|
+
# Represents gateway load balancer service.
|
501
|
+
LOAD_BALANCER_SERVICE_TYPE = {
|
502
|
+
:Pool => LOAD_BALANCER_POOL_TYPE,
|
503
|
+
:VirtualServer => LOAD_BALANCER_VIRTUAL_SERVER_TYPE,
|
504
|
+
:IsEnabled => Fog::Nullable::String
|
505
|
+
}
|
506
|
+
|
507
|
+
# Represents Gateway DHCP service.
|
508
|
+
GATEWAY_DHCP_SERVICE_TYPE = {
|
509
|
+
:IsEnabled => String,
|
510
|
+
#:Pool => DHCP_POOL_SERVICE_TYPE # not required
|
511
|
+
}
|
512
|
+
|
513
|
+
# Represents edge gateway services.
|
514
|
+
GATEWAY_FEATURES_TYPE = {
|
515
|
+
#:StaticRoutingService => STATIC_ROUTING_SERVICE_TYPE, #not required
|
516
|
+
#:GatewayIpsecVpnService => GATEWAY_IPSEC_VPN_SERVICE_TYPE, #not required
|
517
|
+
#:GatewayDhcpService => GATEWAY_DHCP_SERVICE_TYPE, #not required
|
518
|
+
#:LoadBalancerService => LOAD_BALANCER_SERVICE_TYPE, #not required
|
519
|
+
#:NatService => NAT_SERVICE_TYPE, #not required
|
520
|
+
:FirewallService => FIREWALL_SERVICE_TYPE
|
521
|
+
}
|
522
|
+
|
523
|
+
# Represents a range of IP addresses, start and end inclusive.
|
524
|
+
IP_RANGE_TYPE = {
|
525
|
+
:StartAddress => String,
|
526
|
+
:EndAddress => String
|
527
|
+
}
|
528
|
+
|
529
|
+
# Represents a list of IP ranges.
|
530
|
+
IP_RANGES_TYPE = {
|
531
|
+
:IpRange => [IP_RANGE_TYPE]
|
532
|
+
}
|
533
|
+
|
534
|
+
# Allows to chose which subnets a gateway can be part of
|
535
|
+
SUBNET_PARTICIPATION_TYPE = {
|
536
|
+
:Gateway => String,
|
537
|
+
:Netmask => String,
|
538
|
+
:IpAddress => String,
|
539
|
+
:IpRanges => IP_RANGES_TYPE
|
540
|
+
}
|
541
|
+
|
542
|
+
# Gateway Interface configuration.
|
543
|
+
GATEWAY_INTERFACE_TYPE = {
|
544
|
+
:Name => String,
|
545
|
+
:DisplayName => String,
|
546
|
+
:Network => REFERENCE_TYPE,
|
547
|
+
:InterfaceType => String,
|
548
|
+
#:SubnetParticipation => [SUBNET_PARTICIPATION_TYPE], #bug in parser means list or hash
|
549
|
+
:ApplyRateLimit => String,
|
550
|
+
:InRateLimit => Fog::Nullable::String,
|
551
|
+
:OutRateLimit => Fog::Nullable::String,
|
552
|
+
:UseForDefaultRoute => String,
|
553
|
+
}
|
554
|
+
|
555
|
+
# A list of Gateway Interfaces.
|
556
|
+
GATEWAY_INTERFACES_TYPE = {
|
557
|
+
:GatewayInterface => [GATEWAY_INTERFACE_TYPE]
|
558
|
+
}
|
559
|
+
|
560
|
+
# Gateway Configuration.
|
561
|
+
GATEWAY_CONFIGURATION_TYPE = {
|
562
|
+
:BackwardCompatibilityMode => Fog::Nullable::String,
|
563
|
+
:GatewayBackingConfig => String,
|
564
|
+
:GatewayInterfaces => GATEWAY_INTERFACES_TYPE,
|
565
|
+
:EdgeGatewayServiceConfiguration => GATEWAY_FEATURES_TYPE,
|
566
|
+
:HaEnabled => Fog::Nullable::String,
|
567
|
+
:UseDefaultRouteForDnsRelay => Fog::Nullable::String
|
568
|
+
}
|
569
|
+
|
570
|
+
# Represents a gateway.
|
571
|
+
GATEWAY_TYPE = {
|
572
|
+
:href => String,
|
573
|
+
:type => String,
|
574
|
+
:id => String,
|
575
|
+
:operationKey => Fog::Nullable::String,
|
576
|
+
:name => String,
|
577
|
+
:status => Fog::Nullable::String,
|
578
|
+
#:Link => LINK_TYPE, # not required
|
579
|
+
:Description => Fog::Nullable::String,
|
580
|
+
#:Tasks => TASKS_IN_PROGRESS_TYPE, # not required
|
581
|
+
:Configuration => GATEWAY_CONFIGURATION_TYPE
|
582
|
+
}
|
583
|
+
|
584
|
+
ORGANIZATION_REFERENCE_TYPE = REFERENCE_TYPE
|
585
|
+
PROVIDER_VDC_REFERENCE_TYPE = REFERENCE_TYPE
|
586
|
+
RIGHT_REFERENCE_TYPE = REFERENCE_TYPE
|
587
|
+
ROLE_REFERENCE_TYPE = REFERENCE_TYPE
|
588
|
+
|
589
|
+
# Represents the admin view of this cloud.
|
590
|
+
ORGANIZATION_REFERENCES_TYPE = {
|
591
|
+
:OrganizationReference => [REFERENCE_TYPE]
|
592
|
+
}
|
593
|
+
|
594
|
+
# Container for references to Provider vDCs.
|
595
|
+
PROVIDER_VDC_REFERENCES_TYPE = {
|
596
|
+
:ProviderVdcReference => [PROVIDER_VDC_REFERENCE_TYPE]
|
597
|
+
}
|
598
|
+
|
599
|
+
# Container for references to rights.
|
600
|
+
RIGHT_REFERENCES_TYPE = {
|
601
|
+
:RightReference => [RIGHT_REFERENCE_TYPE]
|
602
|
+
}
|
603
|
+
|
604
|
+
# Container for references to roles.
|
605
|
+
ROLE_REFERENCES_TYPE = {
|
606
|
+
:RoleReference => [ROLE_REFERENCE_TYPE]
|
607
|
+
}
|
608
|
+
|
609
|
+
# Container for references to ExternalNetwork objects.
|
610
|
+
NETWORKS_TYPE = {
|
611
|
+
:Network => [REFERENCE_TYPE]
|
612
|
+
}
|
613
|
+
|
614
|
+
NETWORK_CONFIGURATION_TYPE = {
|
615
|
+
:IpScopes => {
|
616
|
+
:IpScope => {
|
617
|
+
:IsInherited => String,
|
618
|
+
:Gateway => Fog::Nullable::String,
|
619
|
+
:Netmask => String,
|
620
|
+
:Dns1 => String,
|
621
|
+
:Dns2 => String,
|
622
|
+
:DnsSuffix => String,
|
623
|
+
:IsEnabled=> String,
|
624
|
+
:IpRanges=> IP_RANGES_TYPE,
|
625
|
+
}
|
626
|
+
},
|
627
|
+
:FenceMode => Fog::Nullable::String,
|
628
|
+
:RetainNetInfoAcrossDeployments => String,
|
629
|
+
}
|
630
|
+
|
631
|
+
NETWORK_TYPE = {
|
632
|
+
:name => String,
|
633
|
+
:href => String,
|
634
|
+
:type => String,
|
635
|
+
:id => String,
|
636
|
+
:Description => String,
|
637
|
+
:Configuration => NETWORK_CONFIGURATION_TYPE,
|
638
|
+
:IsShared => String,
|
639
|
+
}
|
640
|
+
|
641
|
+
VCLOUD_TYPE = ENTITY_TYPE.merge({
|
642
|
+
:OrganizationReferences => ORGANIZATION_REFERENCES_TYPE,
|
643
|
+
:ProviderVdcReferences => PROVIDER_VDC_REFERENCES_TYPE,
|
644
|
+
:RightReferences => RIGHT_REFERENCES_TYPE,
|
645
|
+
:RoleReferences => ROLE_REFERENCES_TYPE,
|
646
|
+
:Networks => NETWORKS_TYPE
|
647
|
+
})
|
648
|
+
|
649
|
+
# Represents a named disk.
|
650
|
+
DISK_TYPE = RESOURCE_ENTITY_TYPE.merge({
|
651
|
+
:busSubType => Fog::Nullable::String,
|
652
|
+
:busType => Fog::Nullable::String,
|
653
|
+
:size => String,
|
654
|
+
:StorageProfile => REFERENCE_TYPE,
|
655
|
+
:Owner => OWNER_TYPE
|
656
|
+
})
|
657
|
+
|
658
|
+
VMS_TYPE = RESOURCE_TYPE.merge({
|
659
|
+
:VmReference => [REFERENCE_TYPE]
|
660
|
+
})
|
661
|
+
end
|
662
|
+
end
|
663
|
+
end
|