fog-vcloud-director 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +11 -0
- data/.gitignore +17 -0
- data/.hound.yml +2 -0
- data/.rubocop.yml +240 -0
- data/.ruby-gemset +1 -0
- data/.travis.yml +15 -0
- data/Gemfile +4 -0
- data/LICENSE.md +20 -0
- data/README.md +962 -0
- data/Rakefile +19 -0
- data/fog-vcloud-director.gemspec +31 -0
- data/lib/fog/vcloud_director.rb +1 -0
- data/lib/fog/vcloud_director/compute.rb +916 -0
- data/lib/fog/vcloud_director/core.rb +69 -0
- data/lib/fog/vcloud_director/generators/compute/compose_common.rb +122 -0
- data/lib/fog/vcloud_director/generators/compute/compose_vapp.rb +25 -0
- data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
- data/lib/fog/vcloud_director/generators/compute/customization.rb +105 -0
- data/lib/fog/vcloud_director/generators/compute/disks.rb +186 -0
- data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +243 -0
- data/lib/fog/vcloud_director/generators/compute/instantiate_vapp_template_params.rb +30 -0
- data/lib/fog/vcloud_director/generators/compute/metadata.rb +104 -0
- data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +88 -0
- data/lib/fog/vcloud_director/generators/compute/recompose_vapp.rb +34 -0
- data/lib/fog/vcloud_director/generators/compute/vapp.rb +28 -0
- data/lib/fog/vcloud_director/generators/compute/vm.rb +32 -0
- data/lib/fog/vcloud_director/generators/compute/vm_network.rb +119 -0
- data/lib/fog/vcloud_director/models/compute/catalog.rb +22 -0
- data/lib/fog/vcloud_director/models/compute/catalog_item.rb +30 -0
- data/lib/fog/vcloud_director/models/compute/catalog_items.rb +33 -0
- data/lib/fog/vcloud_director/models/compute/catalogs.rb +30 -0
- data/lib/fog/vcloud_director/models/compute/custom_field.rb +18 -0
- data/lib/fog/vcloud_director/models/compute/custom_fields.rb +67 -0
- data/lib/fog/vcloud_director/models/compute/disk.rb +53 -0
- data/lib/fog/vcloud_director/models/compute/disks.rb +44 -0
- data/lib/fog/vcloud_director/models/compute/media.rb +26 -0
- data/lib/fog/vcloud_director/models/compute/medias.rb +75 -0
- data/lib/fog/vcloud_director/models/compute/network.rb +25 -0
- data/lib/fog/vcloud_director/models/compute/networks.rb +62 -0
- data/lib/fog/vcloud_director/models/compute/organization.rb +37 -0
- data/lib/fog/vcloud_director/models/compute/organizations.rb +28 -0
- data/lib/fog/vcloud_director/models/compute/tag.rb +31 -0
- data/lib/fog/vcloud_director/models/compute/tags.rb +41 -0
- data/lib/fog/vcloud_director/models/compute/task.rb +55 -0
- data/lib/fog/vcloud_director/models/compute/tasks.rb +36 -0
- data/lib/fog/vcloud_director/models/compute/template_vm.rb +52 -0
- data/lib/fog/vcloud_director/models/compute/template_vms.rb +41 -0
- data/lib/fog/vcloud_director/models/compute/vapp.rb +144 -0
- data/lib/fog/vcloud_director/models/compute/vapp_template.rb +26 -0
- data/lib/fog/vcloud_director/models/compute/vapp_templates.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vapps.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vdc.rb +45 -0
- data/lib/fog/vcloud_director/models/compute/vdcs.rb +37 -0
- data/lib/fog/vcloud_director/models/compute/vm.rb +197 -0
- data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
- data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +29 -0
- data/lib/fog/vcloud_director/models/compute/vm_network.rb +27 -0
- data/lib/fog/vcloud_director/models/compute/vm_networks.rb +19 -0
- data/lib/fog/vcloud_director/models/compute/vms.rb +46 -0
- data/lib/fog/vcloud_director/parsers/compute/disks.rb +53 -0
- data/lib/fog/vcloud_director/parsers/compute/metadata.rb +61 -0
- data/lib/fog/vcloud_director/parsers/compute/network.rb +104 -0
- data/lib/fog/vcloud_director/parsers/compute/vm.rb +86 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +55 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +107 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb +62 -0
- data/lib/fog/vcloud_director/parsers/compute/vms.rb +68 -0
- data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +37 -0
- data/lib/fog/vcloud_director/query.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/delete_catalog_item.rb +22 -0
- data/lib/fog/vcloud_director/requests/compute/delete_catalog_item_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_disk.rb +60 -0
- data/lib/fog/vcloud_director/requests/compute/delete_disk_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_logout.rb +18 -0
- data/lib/fog/vcloud_director/requests/compute/delete_media.rb +122 -0
- data/lib/fog/vcloud_director/requests/compute/delete_media_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/delete_network.rb +62 -0
- data/lib/fog/vcloud_director/requests/compute/delete_shadow_vm.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_metadata_item_metadata.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_template.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/delete_vapp_template_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_allocated_ip_addresses.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +63 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +48 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_control_access_params_catalog.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_control_access_params_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb +65 -0
- data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk.rb +123 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_disk_owner.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb +90 -0
- data/lib/fog/vcloud_director/requests/compute/get_edge_gateway.rb +109 -0
- data/lib/fog/vcloud_director/requests/compute/get_entity.rb +38 -0
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +736 -0
- data/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb +69 -0
- data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_href.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_media.rb +111 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb +92 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_media_owner.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_network.rb +67 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_complete.rb +78 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb +61 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb +68 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb +59 -0
- data/lib/fog/vcloud_director/requests/compute/get_org_settings.rb +38 -0
- data/lib/fog/vcloud_director/requests/compute/get_org_vdc_gateways.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization.rb +100 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_organization_metadata_item_metadata.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp_template.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_request.rb +19 -0
- data/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb +57 -0
- data/lib/fog/vcloud_director/requests/compute/get_serial_ports_items_list.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_shadow_vm.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb +55 -0
- data/lib/fog/vcloud_director/requests/compute/get_startup_section.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_supported_systems_info.rb +239 -0
- data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1159 -0
- data/lib/fog/vcloud_director/requests/compute/get_task.rb +168 -0
- data/lib/fog/vcloud_director/requests/compute/get_task_list.rb +130 -0
- data/lib/fog/vcloud_director/requests/compute/get_template_vm.rb +74 -0
- data/lib/fog/vcloud_director/requests/compute/get_template_vms.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_thumbnail.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +176 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +84 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata_item_metadata.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_ovf_descriptor.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb +58 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_customization_system_section.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata_item_metadata.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_ovf_descriptor.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_template_owner.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb +95 -0
- data/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_vcloud.rb +76 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +174 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata_item_metadata.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class.rb +83 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata_item_metadata.rb +25 -0
- data/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb +94 -0
- data/lib/fog/vcloud_director/requests/compute/get_virtual_hardware_section.rb +29 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm.rb +74 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb +61 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_compliance_results.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +31 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +56 -0
- data/lib/fog/vcloud_director/requests/compute/get_vm_pending_question.rb +34 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms.rb +41 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_disk_attached_to.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb +150 -0
- data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +173 -0
- data/lib/fog/vcloud_director/requests/compute/post_acquire_ticket.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_answer_vm_pending_question.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/post_cancel_task.rb +43 -0
- data/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb +70 -0
- data/lib/fog/vcloud_director/requests/compute/post_check_vm_compliance.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_media.rb +102 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_vapp.rb +62 -0
- data/lib/fog/vcloud_director/requests/compute/post_clone_vapp_template.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_compose_vapp.rb +45 -0
- data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +73 -0
- data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp_template.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb +56 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +171 -0
- data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb +51 -0
- data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_disable_nested_hv.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_disable_vapp_template_download.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/post_discard_vapp_state.rb +30 -0
- data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_enable_nested_hv.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_enable_vapp_template_download.rb +24 -0
- data/lib/fog/vcloud_director/requests/compute/post_enter_maintenance_mode.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/post_exit_maintenance_mode.rb +22 -0
- data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_install_vmware_tools.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +196 -0
- data/lib/fog/vcloud_director/requests/compute/post_login_session.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/post_power_off_vapp.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +71 -0
- data/lib/fog/vcloud_director/requests/compute/post_reboot_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_recompose_vapp.rb +21 -0
- data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
- data/lib/fog/vcloud_director/requests/compute/post_remove_all_snapshots.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_reset_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_revert_snapshot.rb +27 -0
- data/lib/fog/vcloud_director/requests/compute/post_shutdown_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_suspend_vapp.rb +33 -0
- data/lib/fog/vcloud_director/requests/compute/post_undeploy_vapp.rb +66 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_catalog_item_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_disk_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_media_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +86 -0
- data/lib/fog/vcloud_director/requests/compute/post_update_vapp_template_metadata.rb +52 -0
- data/lib/fog/vcloud_director/requests/compute/post_upgrade_hw_version.rb +28 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb +133 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_media.rb +120 -0
- data/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_catalog_item_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_cpu.rb +88 -0
- data/lib/fog/vcloud_director/requests/compute/put_disk_metadata_item_metadata.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_disks.rb +39 -0
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +141 -0
- data/lib/fog/vcloud_director/requests/compute/put_media_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_memory.rb +89 -0
- data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +26 -0
- data/lib/fog/vcloud_director/requests/compute/put_network.rb +162 -0
- data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +152 -0
- data/lib/fog/vcloud_director/requests/compute/put_product_sections.rb +46 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb +85 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +36 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_template_metadata_item_metadata.rb +50 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm.rb +72 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm_capabilities.rb +44 -0
- data/lib/fog/vcloud_director/version.rb +5 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/vcloud_director/generators/compute/instantiate_vapp_template_params_spec.rb +68 -0
- data/spec/vcloud_director/requests/compute/instantiate_vapp_template_spec.rb +78 -0
- data/spec/vcloud_director/spec_helper.rb +11 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/console.rake +12 -0
- data/tasks/lint.rake +3 -0
- data/tasks/test.rake +13 -0
- data/tests/helper.rb +32 -0
- data/tests/helpers/collection_helper.rb +97 -0
- data/tests/helpers/compute/flavors_helper.rb +32 -0
- data/tests/helpers/compute/server_helper.rb +25 -0
- data/tests/helpers/compute/servers_helper.rb +10 -0
- data/tests/helpers/formats_helper.rb +98 -0
- data/tests/helpers/formats_helper_tests.rb +110 -0
- data/tests/helpers/mock_helper.rb +95 -0
- data/tests/helpers/model_helper.rb +31 -0
- data/tests/helpers/responds_to_helper.rb +11 -0
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/helpers/succeeds_helper.rb +9 -0
- data/tests/lorem.txt +1 -0
- data/tests/vcloud_director/ensure_list_tests.rb +84 -0
- data/tests/vcloud_director/fixtures/test.iso +1 -0
- data/tests/vcloud_director/fixtures/vapp.xml +532 -0
- data/tests/vcloud_director/fixtures/vm.xml +213 -0
- data/tests/vcloud_director/generators/compute/compose_vapp_tests.rb +108 -0
- data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
- data/tests/vcloud_director/models/compute/catalogs_tests.rb +40 -0
- data/tests/vcloud_director/models/compute/helper.rb +60 -0
- data/tests/vcloud_director/models/compute/media_tests.rb +58 -0
- data/tests/vcloud_director/models/compute/network_tests.rb +108 -0
- data/tests/vcloud_director/models/compute/organizations_tests.rb +18 -0
- data/tests/vcloud_director/models/compute/tasks_tests.rb +56 -0
- data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +93 -0
- data/tests/vcloud_director/models/compute/vapp_template_tests.rb +29 -0
- data/tests/vcloud_director/models/compute/vapp_tests.rb +61 -0
- data/tests/vcloud_director/models/compute/vdcs_tests.rb +54 -0
- data/tests/vcloud_director/models/compute/vms_tests.rb +101 -0
- data/tests/vcloud_director/requests/compute/admin_tests.rb +16 -0
- data/tests/vcloud_director/requests/compute/catalog_tests.rb +42 -0
- data/tests/vcloud_director/requests/compute/disk_tests.rb +178 -0
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +217 -0
- data/tests/vcloud_director/requests/compute/groups_tests.rb +18 -0
- data/tests/vcloud_director/requests/compute/helper.rb +32 -0
- data/tests/vcloud_director/requests/compute/media_tests.rb +195 -0
- data/tests/vcloud_director/requests/compute/network_tests.rb +186 -0
- data/tests/vcloud_director/requests/compute/organization_tests.rb +37 -0
- data/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb +36 -0
- data/tests/vcloud_director/requests/compute/query_tests.rb +99 -0
- data/tests/vcloud_director/requests/compute/schema_helper.rb +663 -0
- data/tests/vcloud_director/requests/compute/session_tests.rb +14 -0
- data/tests/vcloud_director/requests/compute/supported_systems_tests.rb +11 -0
- data/tests/vcloud_director/requests/compute/task_tests.rb +35 -0
- data/tests/vcloud_director/requests/compute/users_tests.rb +18 -0
- data/tests/vcloud_director/requests/compute/vapp_tests.rb +123 -0
- data/tests/vcloud_director/requests/compute/vdc_storage_profile_tests.rb +27 -0
- data/tests/vcloud_director/requests/compute/vdc_tests.rb +36 -0
- data/tests/vcloud_director/requests/compute/versions_tests.rb +13 -0
- data/tests/vcloud_director/requests/compute/vm_tests.rb +185 -0
- data/tests/watchr.rb +22 -0
- metadata +461 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Create a copy of a vApp.
|
|
6
|
+
#
|
|
7
|
+
# The response includes a Task element. You can monitor the task to to
|
|
8
|
+
# track the creation of the vApp template.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] vdc_id Object identifier of the vDC.
|
|
11
|
+
# @param [String] name Name of the new vApp.
|
|
12
|
+
# @param [String] source_id Object identifier of the source vApp.
|
|
13
|
+
# @param [Hash] options
|
|
14
|
+
# @option options [Boolean] :deploy True if the vApp should be deployed
|
|
15
|
+
# at instantiation. Defaults to true.
|
|
16
|
+
# @option options [Boolean] :powerOn True if the vApp should be
|
|
17
|
+
# powered-on at instantiation. Defaults to true.
|
|
18
|
+
# @option options [String] :Description Optional description.
|
|
19
|
+
# @option options [Hash] :InstantiationParams Instantiation parameters
|
|
20
|
+
# for the composed vApp.
|
|
21
|
+
# @option options [Boolean] :IsSourceDelete Set to true to delete the
|
|
22
|
+
# source object after the operation completes.
|
|
23
|
+
# @return [Excon::Response]
|
|
24
|
+
# * body<~Hash>:
|
|
25
|
+
#
|
|
26
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CloneVApp.html
|
|
27
|
+
# @since vCloud API version 0.9
|
|
28
|
+
def post_clone_vapp(vdc_id, name, source_id, options={})
|
|
29
|
+
body = Nokogiri::XML::Builder.new do
|
|
30
|
+
attrs = {
|
|
31
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
32
|
+
:name => name
|
|
33
|
+
}
|
|
34
|
+
attrs[:deploy] = options[:deploy] if options.key?(:deploy)
|
|
35
|
+
attrs[:powerOn] = options[:powerOn] if options.key?(:powerOn)
|
|
36
|
+
CloneVAppParams(attrs) {
|
|
37
|
+
if options.key?(:Description)
|
|
38
|
+
Description options[:Description]
|
|
39
|
+
end
|
|
40
|
+
InstantiationParams {
|
|
41
|
+
# TODO
|
|
42
|
+
}
|
|
43
|
+
Source(:href => "#{end_point}vApp/#{source_id}")
|
|
44
|
+
if options.key?(:IsSourceDelete)
|
|
45
|
+
IsSourceDelete options[:IsSourceDelete]
|
|
46
|
+
end
|
|
47
|
+
}
|
|
48
|
+
end.to_xml
|
|
49
|
+
|
|
50
|
+
request(
|
|
51
|
+
:body => body,
|
|
52
|
+
:expects => 201,
|
|
53
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.cloneVAppParams+xml'},
|
|
54
|
+
:method => 'POST',
|
|
55
|
+
:parser => Fog::ToHashDocument.new,
|
|
56
|
+
:path => "vdc/#{vdc_id}/action/cloneVApp"
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Create a copy of a vApp template.
|
|
6
|
+
#
|
|
7
|
+
# The response includes a Task element. You can monitor the task to to
|
|
8
|
+
# track the creation of the vApp template.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] vdc_id Object identifier of the vDC.
|
|
11
|
+
# @param [String] name Name of the new vApp template.
|
|
12
|
+
# @param [String] source_id Object identifier of the source vApp
|
|
13
|
+
# template.
|
|
14
|
+
# @param [Hash] options
|
|
15
|
+
# @option options [String] :Description Optional description.
|
|
16
|
+
# @option options [Boolean] :IsSourceDelete Set to true to delete the
|
|
17
|
+
# source object after the operation completes.
|
|
18
|
+
# @return [Excon::Response]
|
|
19
|
+
# * body<~Hash>:
|
|
20
|
+
#
|
|
21
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CloneVAppTemplate.html
|
|
22
|
+
# @since vCloud API version 0.9
|
|
23
|
+
def post_clone_vapp_template(vdc_id, name, source_id, options={})
|
|
24
|
+
body = Nokogiri::XML::Builder.new do
|
|
25
|
+
attrs = {
|
|
26
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
27
|
+
:name => name
|
|
28
|
+
}
|
|
29
|
+
CloneVAppTemplateParams(attrs) {
|
|
30
|
+
if options.key?(:Description)
|
|
31
|
+
Description options[:Description]
|
|
32
|
+
end
|
|
33
|
+
Source(:href => "#{end_point}vAppTemplate/#{source_id}")
|
|
34
|
+
if options.key?(:IsSourceDelete)
|
|
35
|
+
IsSourceDelete options[:IsSourceDelete]
|
|
36
|
+
end
|
|
37
|
+
}
|
|
38
|
+
end.to_xml
|
|
39
|
+
|
|
40
|
+
request(
|
|
41
|
+
:body => body,
|
|
42
|
+
:expects => 201,
|
|
43
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.cloneVAppTemplateParams+xml'},
|
|
44
|
+
:method => 'POST',
|
|
45
|
+
:parser => Fog::ToHashDocument.new,
|
|
46
|
+
:path => "vdc/#{vdc_id}/action/cloneVAppTemplate"
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
require 'fog/vcloud_director/generators/compute/compose_vapp'
|
|
6
|
+
# Compose a vApp from existing virtual machines.
|
|
7
|
+
#
|
|
8
|
+
# This operation is asynchronous and returns a task that you can
|
|
9
|
+
# monitor to track the progress of the request.
|
|
10
|
+
#
|
|
11
|
+
# @param [String] id Object identifier of the vdc.
|
|
12
|
+
# @param [Hash] options
|
|
13
|
+
# @option options [Boolean] :powerOn Used to specify whether to power
|
|
14
|
+
# on vApp on deployment, if not set default value is true.
|
|
15
|
+
# @option options [Boolean] :deploy Used to specify whether to deploy
|
|
16
|
+
# the vApp, if not set default value is true.
|
|
17
|
+
# @option options [String] :name Used to identify the vApp.
|
|
18
|
+
# @option options [String] :networkName Used to conect the vApp and VMs to a VDC network, which has
|
|
19
|
+
# to exist beforehand.
|
|
20
|
+
# @option options [String] :networkHref Used to conect the vApp and VMs to a VDC network, which has
|
|
21
|
+
# to exist beforehand.
|
|
22
|
+
# @option options [String] :fenceMode Used to configure the network Mode (briged, isolated).
|
|
23
|
+
# @option options [String] :source_vms Array with VMs to be used to compose the vApp, each containing -
|
|
24
|
+
# :name, :href, :isGuestCustomizationEnabled, :computer_name and :ipAllocationMode (e.g. 'DHCP').
|
|
25
|
+
# @return [Excon::Response]
|
|
26
|
+
# * body<~Hash>:
|
|
27
|
+
#
|
|
28
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ComposeVApp.html
|
|
29
|
+
# @since vCloud API version 0.9
|
|
30
|
+
def post_compose_vapp(id, options={})
|
|
31
|
+
body = Fog::Generators::Compute::VcloudDirector::ComposeVapp.new(options).generate_xml
|
|
32
|
+
|
|
33
|
+
request(
|
|
34
|
+
:body => body,
|
|
35
|
+
:expects => 201,
|
|
36
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.composeVAppParams+xml'},
|
|
37
|
+
:method => 'POST',
|
|
38
|
+
:parser => Fog::ToHashDocument.new,
|
|
39
|
+
:path => "vdc/#{id}/action/composeVApp"
|
|
40
|
+
)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
require 'fog/vcloud_director/generators/compute/edge_gateway_service_configuration'
|
|
6
|
+
|
|
7
|
+
# Configure edge gateway services like firewall, nat and load balancer.
|
|
8
|
+
#
|
|
9
|
+
# The response includes a Task element. You can monitor the task to
|
|
10
|
+
# track the configuration of edge gateway services.
|
|
11
|
+
#
|
|
12
|
+
# @param [String] id Object identifier of the edge gateway.
|
|
13
|
+
# @param [Hash] configuration
|
|
14
|
+
# @configuration firewall_service [Hash] - configurations for firewall service.
|
|
15
|
+
# @configuration nat_service [Hash] - configurations for NAT network service.
|
|
16
|
+
# @configuration load_balancer_service [Hash] - configurations for load balancer service
|
|
17
|
+
# @return [Excon::Response]
|
|
18
|
+
# * body<~Hash>:
|
|
19
|
+
# @see https://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ConfigureEdgeGatewayServices.html
|
|
20
|
+
# vCloud API Documentaion
|
|
21
|
+
# @since vCloud API version 5.1
|
|
22
|
+
def post_configure_edge_gateway_services(id, configuration)
|
|
23
|
+
body = Fog::Generators::Compute::VcloudDirector::EdgeGatewayServiceConfiguration.new(configuration).generate_xml
|
|
24
|
+
|
|
25
|
+
request(
|
|
26
|
+
:body => body,
|
|
27
|
+
:expects => 202,
|
|
28
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.admin.edgeGatewayServiceConfiguration+xml'},
|
|
29
|
+
:method => 'POST',
|
|
30
|
+
:parser => Fog::ToHashDocument.new,
|
|
31
|
+
:path => "admin/edgeGateway/#{id}/action/configureServices"
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class Mock
|
|
37
|
+
def post_configure_edge_gateway_services(id, configuration)
|
|
38
|
+
unless data[:edge_gateways][id]
|
|
39
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
40
|
+
"No access to entity \"(com.vmware.vcloud.entity.edgegateway:#{id})\"."
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
owner = {
|
|
45
|
+
:href => make_href("admin/edgeGateway/#{id}"),
|
|
46
|
+
:type => 'application/vnd.vmware.vcloud.gateway+xml'
|
|
47
|
+
}
|
|
48
|
+
task_id = enqueue_task(
|
|
49
|
+
"Configuring edgegateway(#{id})", 'networkConfigureEdgeGatewayServices', owner,
|
|
50
|
+
:on_success => lambda do
|
|
51
|
+
data[:edge_gateways][id][:Configuration][:EdgeGatewayServiceConfiguration] = configuration
|
|
52
|
+
end
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
task = task_body(task_id)
|
|
56
|
+
task.delete(:Owner) # known bug - admin tasks do not return Owner
|
|
57
|
+
|
|
58
|
+
body = {
|
|
59
|
+
:xmlns => xmlns,
|
|
60
|
+
:xmlns_xsi => xmlns_xsi,
|
|
61
|
+
:xsi_schemaLocation => xsi_schema_location,
|
|
62
|
+
}.merge(task)
|
|
63
|
+
|
|
64
|
+
Excon::Response.new(
|
|
65
|
+
:status => 202,
|
|
66
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
67
|
+
:body => body
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Consolidate VM snapshots.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @return [Excon::Response]
|
|
12
|
+
# * body<~Hash>:
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ConsolidateVm-vApp.html
|
|
15
|
+
# @since vCloud API version 1.5
|
|
16
|
+
def post_consolidate_vm_vapp(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 202,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vApp/#{id}/action/consolidate"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Consolidate VM snapshots.
|
|
6
|
+
#
|
|
7
|
+
# This operation is asynchronous and returns a task that you can
|
|
8
|
+
# monitor to track the progress of the request.
|
|
9
|
+
#
|
|
10
|
+
# @param [String] id Object identifier of the VM.
|
|
11
|
+
# @return [Excon::Response]
|
|
12
|
+
# * body<~Hash>:
|
|
13
|
+
#
|
|
14
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-ConsolidateVm-vAppTemplate.html
|
|
15
|
+
# @since vCloud API version 1.5
|
|
16
|
+
def post_consolidate_vm_vapp_template(id)
|
|
17
|
+
request(
|
|
18
|
+
:expects => 202,
|
|
19
|
+
:method => 'POST',
|
|
20
|
+
:parser => Fog::ToHashDocument.new,
|
|
21
|
+
:path => "vAppTemplate/#{id}/action/consolidate"
|
|
22
|
+
)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
# Add an item to a catalog.
|
|
6
|
+
#
|
|
7
|
+
# @param [String] id Object identifier of the catalog.
|
|
8
|
+
# @param [String] name The name of the entity.
|
|
9
|
+
# @param [Hash] entity A reference to a VAppTemplate or Media object.
|
|
10
|
+
# * href<~String> - Contains the URI to the entity.
|
|
11
|
+
# @param [Hash] options
|
|
12
|
+
# @option options [String] :operationKey Optional unique identifier to
|
|
13
|
+
# support idempotent semantics for create and delete operations.
|
|
14
|
+
# @option options [String] :Description Optional description.
|
|
15
|
+
# @return [Excon::Response]
|
|
16
|
+
# * body<~Hash>:
|
|
17
|
+
#
|
|
18
|
+
# @raise Fog::Compute::VcloudDirector::DuplicateName
|
|
19
|
+
#
|
|
20
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateCatalogItem.html
|
|
21
|
+
# @since vCloud API version 0.9
|
|
22
|
+
def post_create_catalog_item(id, name, entity, options={})
|
|
23
|
+
body = Nokogiri::XML::Builder.new do
|
|
24
|
+
attrs = {
|
|
25
|
+
:xmlns => 'http://www.vmware.com/vcloud/v1.5',
|
|
26
|
+
:name => name,
|
|
27
|
+
}
|
|
28
|
+
attrs[:operationKey] = options[:operationKey] if options.key?(:operationKey)
|
|
29
|
+
CatalogItem(attrs) {
|
|
30
|
+
if options.key?(:Description)
|
|
31
|
+
Description options[:Description]
|
|
32
|
+
end
|
|
33
|
+
Entity(entity)
|
|
34
|
+
}
|
|
35
|
+
end.to_xml
|
|
36
|
+
|
|
37
|
+
begin
|
|
38
|
+
request(
|
|
39
|
+
:body => body,
|
|
40
|
+
:expects => 201,
|
|
41
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.catalogItem+xml'},
|
|
42
|
+
:method => 'POST',
|
|
43
|
+
:parser => Fog::ToHashDocument.new,
|
|
44
|
+
:path => "catalog/#{id}/catalogItems"
|
|
45
|
+
)
|
|
46
|
+
rescue Fog::Compute::VcloudDirector::BadRequest => e
|
|
47
|
+
if e.minor_error_code == 'DUPLICATE_NAME'
|
|
48
|
+
raise Fog::Compute::VcloudDirector::DuplicateName.new(e.message)
|
|
49
|
+
end
|
|
50
|
+
raise
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Compute
|
|
3
|
+
class VcloudDirector
|
|
4
|
+
class Real
|
|
5
|
+
require 'fog/vcloud_director/generators/compute/org_vdc_network'
|
|
6
|
+
|
|
7
|
+
# Create an Org vDC network.
|
|
8
|
+
#
|
|
9
|
+
# This operation is asynchronous and returns a task that you can
|
|
10
|
+
# monitor to track the progress of the request.
|
|
11
|
+
#
|
|
12
|
+
# Produce media type(s):
|
|
13
|
+
# application/vnd.vmware.vcloud.orgVdcNetwork+xml
|
|
14
|
+
# Output type:
|
|
15
|
+
# OrgVdcNetworkType
|
|
16
|
+
#
|
|
17
|
+
# @param [String] vdc_id Object identifier of the vDC
|
|
18
|
+
# @param [String] name The name of the entity.
|
|
19
|
+
# @param [Hash] options
|
|
20
|
+
# @option options [String] :Description Optional description.
|
|
21
|
+
# @option options [Hash] :Configuration Network configuration.
|
|
22
|
+
# @option options [Hash] :EdgeGateway EdgeGateway that connects this
|
|
23
|
+
# Org vDC network. Applicable only for routed networks.
|
|
24
|
+
# @option options [Hash] :ServiceConfig Specifies the service
|
|
25
|
+
# configuration for an isolated Org vDC networks.
|
|
26
|
+
# @option options [Boolean] :IsShared True if this network is shared
|
|
27
|
+
# to multiple Org vDCs.
|
|
28
|
+
# * :Configuration<~Hash>: NetworkConfigurationType
|
|
29
|
+
# * :IpScopes<~Hash>:
|
|
30
|
+
# * :IpScope<~Hash>:
|
|
31
|
+
# * :IsInherited<~Boolean>: ?
|
|
32
|
+
# * :Gateway<~String>: IP address of gw
|
|
33
|
+
# * :Netmask<~String>: Subnet mask of network
|
|
34
|
+
# * :Dns1<~String>: Primary DNS server.
|
|
35
|
+
# * :Dns2<~String>: Secondary DNS server.
|
|
36
|
+
# * :DnsSuffix<~String>: DNS suffix.
|
|
37
|
+
# * :IsEnabled<~String>: Indicates if subnet is enabled or not.
|
|
38
|
+
# Default value is True.
|
|
39
|
+
# * :IpRanges<~Array>: IP ranges used for static pool allocation
|
|
40
|
+
# in the network. Array of Hashes of:
|
|
41
|
+
# * :StartAddress - start IP in range
|
|
42
|
+
# * :EndAddress - end IP in range
|
|
43
|
+
# * :EdgeGateway<~Hash>: EdgeGateway that connects this Org vDC
|
|
44
|
+
# network. Applicable only for routed networks.
|
|
45
|
+
# * :ServiceConfig<~Hash>: Specifies the service configuration for an
|
|
46
|
+
# isolated network
|
|
47
|
+
#
|
|
48
|
+
# @return [Excon::Response]
|
|
49
|
+
# * body<~Hash>:
|
|
50
|
+
#
|
|
51
|
+
# @see http://pubs.vmware.com/vcd-51/topic/com.vmware.vcloud.api.reference.doc_51/doc/operations/POST-CreateOrgVdcNetwork.html
|
|
52
|
+
# @since vCloud API version 5.1
|
|
53
|
+
def post_create_org_vdc_network(vdc_id, name, options={})
|
|
54
|
+
body = Fog::Generators::Compute::VcloudDirector::OrgVdcNetwork.new(options.merge(:name => name)).generate_xml
|
|
55
|
+
|
|
56
|
+
request(
|
|
57
|
+
:body => body,
|
|
58
|
+
:expects => 201,
|
|
59
|
+
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.orgVdcNetwork+xml'},
|
|
60
|
+
:method => 'POST',
|
|
61
|
+
:parser => Fog::ToHashDocument.new,
|
|
62
|
+
:path => "admin/vdc/#{vdc_id}/networks"
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
class Mock
|
|
68
|
+
def post_create_org_vdc_network(vdc_id, name, options={})
|
|
69
|
+
unless data[:vdcs][vdc_id]
|
|
70
|
+
raise Fog::Compute::VcloudDirector::Forbidden.new(
|
|
71
|
+
"No access to entity \"(com.vmware.vcloud.entity.vdc:#{vdc_id})\"."
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
type = 'network'
|
|
76
|
+
id = uuid
|
|
77
|
+
|
|
78
|
+
# Description
|
|
79
|
+
# Configuration
|
|
80
|
+
# IpScopes
|
|
81
|
+
# IpScope
|
|
82
|
+
# IsInherited
|
|
83
|
+
# Gateway
|
|
84
|
+
# Netmask
|
|
85
|
+
# Dns1
|
|
86
|
+
# Dns2
|
|
87
|
+
# DnsSuffix
|
|
88
|
+
# IsEnabled
|
|
89
|
+
# IpRanges
|
|
90
|
+
# IpRange
|
|
91
|
+
# StartAddress
|
|
92
|
+
# EndAddress
|
|
93
|
+
# FenceMode
|
|
94
|
+
# EdgeGateway
|
|
95
|
+
# IsShared
|
|
96
|
+
|
|
97
|
+
network_body = {
|
|
98
|
+
:name => name,
|
|
99
|
+
:vdc => vdc_id,
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[:Description, :IsShared].each do |key|
|
|
103
|
+
network_body[key] = options[key] if options.key?(key)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
if options.key?(:EdgeGateway)
|
|
107
|
+
network_body[:EdgeGateway] =
|
|
108
|
+
options[:EdgeGateway][:href].split('/').last
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
if configuration = options[:Configuration]
|
|
112
|
+
if ip_scopes = configuration[:IpScopes]
|
|
113
|
+
if ip_scope = ip_scopes[:IpScope]
|
|
114
|
+
[:IsInherited, :Gateway, :Netmask,
|
|
115
|
+
:Dns1, :Dns2, :DnsSuffix, :IsEnabled].each do |key|
|
|
116
|
+
network_body[key] = ip_scope[key] if ip_scope.key?(key)
|
|
117
|
+
end
|
|
118
|
+
if ip_ranges = ip_scope[:IpRanges]
|
|
119
|
+
network_body[:IpRanges] = []
|
|
120
|
+
ip_ranges.each do |ipr|
|
|
121
|
+
network_body[:IpRanges] << {
|
|
122
|
+
:StartAddress => ipr[:IpRange][:StartAddress],
|
|
123
|
+
:EndAddress => ipr[:IpRange][:EndAddress]
|
|
124
|
+
}
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
network_body[:FenceMode] = configuration[:FenceMode] if ip_scope.key?(:FenceMode)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
owner = {
|
|
133
|
+
:href => make_href("#{type}/#{id}"),
|
|
134
|
+
:type => "application/vnd.vmware.vcloud.#{type}+xml"
|
|
135
|
+
}
|
|
136
|
+
task_id = enqueue_task(
|
|
137
|
+
"Adding #{type} #{name} (#{id})", 'CreateOrgVdcNetwork', owner,
|
|
138
|
+
:on_success => lambda do
|
|
139
|
+
data[:networks][id] = network_body
|
|
140
|
+
end
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
body = {
|
|
144
|
+
:xmlns => xmlns,
|
|
145
|
+
:xmlns_xsi => xmlns_xsi,
|
|
146
|
+
:xsi_schemaLocation => xsi_schema_location,
|
|
147
|
+
:href => make_href("admin/network/#{id}"),
|
|
148
|
+
:name => name,
|
|
149
|
+
:id => "urn:vcloud:network:#{id}",
|
|
150
|
+
:type => "application/vnd.vmware.vcloud.orgVdcNetwork+xml",
|
|
151
|
+
:Link => [
|
|
152
|
+
{:rel=>"up", :type=>"application/vnd.vmware.vcloud.vdc+xml", :href=>make_href("vdc/#{vdc_id}")},
|
|
153
|
+
{:rel=>"down", :type=>"application/vnd.vmware.vcloud.metadata+xml", :href=>make_href("admin/network/#{id}/metadata")},
|
|
154
|
+
{:rel=>"down", :type=>"application/vnd.vmware.vcloud.allocatedNetworkAddress+xml", :href=>make_href("admin/network/#{id}/allocatedAddresses/")},
|
|
155
|
+
],
|
|
156
|
+
}.merge(options)
|
|
157
|
+
|
|
158
|
+
body[:Tasks] = {
|
|
159
|
+
:Task => task_body(task_id)
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
Excon::Response.new(
|
|
163
|
+
:status => 201,
|
|
164
|
+
:headers => {'Content-Type' => "#{body[:type]};version=#{api_version}"},
|
|
165
|
+
:body => body
|
|
166
|
+
)
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|
|
170
|
+
end
|
|
171
|
+
end
|