fog 0.5.3 → 0.6.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.
- data/.gitignore +1 -0
- data/Gemfile.lock +3 -3
- data/bin/fog +0 -5
- data/changelog.txt +88 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -2
- data/lib/fog/aws/elb.rb +2 -0
- data/lib/fog/aws/iam.rb +7 -0
- data/lib/fog/aws/parsers/iam/get_group.rb +55 -0
- data/lib/fog/aws/parsers/iam/get_user_policy.rb +27 -0
- data/lib/fog/aws/parsers/iam/update_group.rb +26 -0
- data/lib/fog/aws/parsers/iam/update_user.rb +27 -0
- data/lib/fog/aws/requests/iam/create_access_key.rb +1 -1
- data/lib/fog/aws/requests/iam/get_group.rb +44 -0
- data/lib/fog/aws/requests/iam/get_user_policy.rb +36 -0
- data/lib/fog/aws/requests/iam/update_group.rb +39 -0
- data/lib/fog/aws/requests/iam/update_signing_certificate.rb +32 -0
- data/lib/fog/aws/requests/iam/update_user.rb +39 -0
- data/lib/fog/aws/ses.rb +2 -0
- data/lib/fog/aws/simpledb.rb +2 -0
- data/lib/fog/bin.rb +3 -8
- data/lib/fog/bin/aws.rb +2 -14
- data/lib/fog/bin/bluebox.rb +6 -8
- data/lib/fog/bin/dnsimple.rb +30 -0
- data/lib/fog/bin/ecloud.rb +30 -0
- data/lib/fog/bin/go_grid.rb +1 -7
- data/lib/fog/bin/linode.rb +0 -6
- data/lib/fog/bin/local.rb +1 -7
- data/lib/fog/bin/new_servers.rb +1 -7
- data/lib/fog/bin/rackspace.rb +2 -14
- data/lib/fog/bin/slicehost.rb +2 -8
- data/lib/fog/bin/terremark.rb +0 -5
- data/lib/fog/bin/voxel.rb +30 -0
- data/lib/fog/cdn/aws.rb +2 -0
- data/lib/fog/compute.rb +6 -3
- data/lib/fog/compute/aws.rb +4 -18
- data/lib/fog/compute/ecloud.rb +1306 -0
- data/lib/fog/compute/models/aws/key_pair.rb +0 -2
- data/lib/fog/compute/models/aws/security_group.rb +4 -4
- data/lib/fog/compute/models/aws/server.rb +13 -3
- data/lib/fog/compute/models/aws/snapshot.rb +0 -2
- data/lib/fog/compute/models/aws/volume.rb +0 -2
- data/lib/fog/compute/models/bluebox/server.rb +23 -11
- data/lib/fog/compute/models/brightbox/server.rb +8 -0
- data/lib/fog/compute/models/ecloud/backup_internet_service.rb +56 -0
- data/lib/fog/compute/models/ecloud/backup_internet_services.rb +33 -0
- data/lib/fog/compute/models/ecloud/catalog.rb +28 -0
- data/lib/fog/compute/models/ecloud/catalog_item.rb +29 -0
- data/lib/fog/compute/models/ecloud/firewall_acl.rb +24 -0
- data/lib/fog/compute/models/ecloud/firewall_acls.rb +31 -0
- data/lib/fog/compute/models/ecloud/internet_service.rb +117 -0
- data/lib/fog/compute/models/ecloud/internet_services.rb +33 -0
- data/lib/fog/compute/models/ecloud/ip.rb +49 -0
- data/lib/fog/compute/models/ecloud/ips.rb +32 -0
- data/lib/fog/compute/models/ecloud/network.rb +72 -0
- data/lib/fog/compute/models/ecloud/networks.rb +33 -0
- data/lib/fog/compute/models/ecloud/node.rb +43 -0
- data/lib/fog/compute/models/ecloud/nodes.rb +31 -0
- data/lib/fog/compute/models/ecloud/public_ip.rb +22 -0
- data/lib/fog/compute/models/ecloud/public_ips.rb +36 -0
- data/lib/fog/compute/models/ecloud/server.rb +209 -0
- data/lib/fog/compute/models/ecloud/servers.rb +55 -0
- data/lib/fog/compute/models/ecloud/task.rb +21 -0
- data/lib/fog/compute/models/ecloud/tasks.rb +31 -0
- data/lib/fog/compute/models/ecloud/vdc.rb +81 -0
- data/lib/fog/compute/models/ecloud/vdcs.rb +40 -0
- data/lib/fog/compute/models/go_grid/server.rb +15 -1
- data/lib/fog/compute/models/rackspace/server.rb +16 -0
- data/lib/fog/compute/models/slicehost/server.rb +16 -0
- data/lib/fog/compute/models/voxel/image.rb +12 -0
- data/lib/fog/compute/models/voxel/images.rb +30 -0
- data/lib/fog/compute/models/voxel/server.rb +77 -0
- data/lib/fog/compute/models/voxel/servers.rb +31 -0
- data/lib/fog/compute/new_servers.rb +2 -2
- data/lib/fog/compute/parsers/voxel/basic.rb +31 -0
- data/lib/fog/compute/parsers/voxel/devices_list.rb +111 -0
- data/lib/fog/compute/parsers/voxel/images_list.rb +59 -0
- data/lib/fog/compute/parsers/voxel/voxcloud_create.rb +40 -0
- data/lib/fog/compute/parsers/voxel/voxcloud_delete.rb +31 -0
- data/lib/fog/compute/parsers/voxel/voxcloud_status.rb +42 -0
- data/lib/fog/compute/rackspace.rb +0 -16
- data/lib/fog/compute/requests/aws/associate_address.rb +2 -0
- data/lib/fog/compute/requests/aws/authorize_security_group_ingress.rb +28 -8
- data/lib/fog/compute/requests/aws/create_security_group.rb +2 -0
- data/lib/fog/compute/requests/aws/create_tags.rb +2 -0
- data/lib/fog/compute/requests/aws/delete_key_pair.rb +2 -0
- data/lib/fog/compute/requests/aws/delete_security_group.rb +2 -0
- data/lib/fog/compute/requests/aws/delete_snapshot.rb +2 -0
- data/lib/fog/compute/requests/aws/delete_tags.rb +2 -0
- data/lib/fog/compute/requests/aws/delete_volume.rb +2 -0
- data/lib/fog/compute/requests/aws/disassociate_address.rb +2 -0
- data/lib/fog/compute/requests/aws/modify_image_attributes.rb +2 -0
- data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +2 -0
- data/lib/fog/compute/requests/aws/reboot_instances.rb +2 -0
- data/lib/fog/compute/requests/aws/release_address.rb +2 -0
- data/lib/fog/compute/requests/aws/revoke_security_group_ingress.rb +2 -0
- data/lib/fog/compute/requests/ecloud/add_backup_internet_service.rb +109 -0
- data/lib/fog/compute/requests/ecloud/add_internet_service.rb +149 -0
- data/lib/fog/compute/requests/ecloud/add_node.rb +62 -0
- data/lib/fog/compute/requests/ecloud/clone_vapp.rb +40 -0
- data/lib/fog/compute/requests/ecloud/configure_internet_service.rb +112 -0
- data/lib/fog/compute/requests/ecloud/configure_network.rb +44 -0
- data/lib/fog/compute/requests/ecloud/configure_network_ip.rb +66 -0
- data/lib/fog/compute/requests/ecloud/configure_node.rb +56 -0
- data/lib/fog/compute/requests/ecloud/configure_vapp.rb +144 -0
- data/lib/fog/compute/requests/ecloud/delete_internet_service.rb +22 -0
- data/lib/fog/compute/requests/ecloud/delete_node.rb +22 -0
- data/lib/fog/compute/requests/ecloud/delete_vapp.rb +29 -0
- data/lib/fog/compute/requests/ecloud/get_catalog.rb +44 -0
- data/lib/fog/compute/requests/ecloud/get_catalog_item.rb +47 -0
- data/lib/fog/compute/requests/ecloud/get_customization_options.rb +22 -0
- data/lib/fog/compute/requests/ecloud/get_firewall_acl.rb +11 -0
- data/lib/fog/compute/requests/ecloud/get_firewall_acls.rb +11 -0
- data/lib/fog/compute/requests/ecloud/get_internet_services.rb +82 -0
- data/lib/fog/compute/requests/ecloud/get_network.rb +44 -0
- data/lib/fog/compute/requests/ecloud/get_network_extensions.rb +33 -0
- data/lib/fog/compute/requests/ecloud/get_network_ip.rb +43 -0
- data/lib/fog/compute/requests/ecloud/get_network_ips.rb +35 -0
- data/lib/fog/compute/requests/ecloud/get_node.rb +40 -0
- data/lib/fog/compute/requests/ecloud/get_nodes.rb +41 -0
- data/lib/fog/compute/requests/ecloud/get_organization.rb +49 -0
- data/lib/fog/compute/requests/ecloud/get_public_ip.rb +34 -0
- data/lib/fog/compute/requests/ecloud/get_public_ips.rb +38 -0
- data/lib/fog/compute/requests/ecloud/get_task.rb +11 -0
- data/lib/fog/compute/requests/ecloud/get_task_list.rb +11 -0
- data/lib/fog/compute/requests/ecloud/get_vapp.rb +99 -0
- data/lib/fog/compute/requests/ecloud/get_vapp_template.rb +11 -0
- data/lib/fog/compute/requests/ecloud/get_vdc.rb +84 -0
- data/lib/fog/compute/requests/ecloud/get_versions.rb +37 -0
- data/lib/fog/compute/requests/ecloud/instantiate_vapp_template.rb +142 -0
- data/lib/fog/compute/requests/ecloud/login.rb +48 -0
- data/lib/fog/compute/requests/ecloud/power_off.rb +23 -0
- data/lib/fog/compute/requests/ecloud/power_on.rb +23 -0
- data/lib/fog/compute/requests/ecloud/power_reset.rb +11 -0
- data/lib/fog/compute/requests/ecloud/power_shutdown.rb +11 -0
- data/lib/fog/compute/requests/voxel/devices_list.rb +24 -0
- data/lib/fog/compute/requests/voxel/devices_power.rb +22 -0
- data/lib/fog/compute/requests/voxel/images_list.rb +31 -0
- data/lib/fog/compute/requests/voxel/voxcloud_create.rb +22 -0
- data/lib/fog/compute/requests/voxel/voxcloud_delete.rb +20 -0
- data/lib/fog/compute/requests/voxel/voxcloud_status.rb +29 -0
- data/lib/fog/compute/slicehost.rb +2 -0
- data/lib/fog/compute/voxel.rb +112 -0
- data/lib/fog/core.rb +1 -0
- data/lib/fog/core/credentials.rb +6 -2
- data/lib/fog/core/parser.rb +2 -0
- data/lib/fog/core/scp.rb +67 -0
- data/lib/fog/dns.rb +6 -0
- data/lib/fog/dns/aws.rb +2 -0
- data/lib/fog/dns/bluebox.rb +110 -0
- data/lib/fog/dns/dnsimple.rb +95 -0
- data/lib/fog/dns/models/bluebox/record.rb +52 -0
- data/lib/fog/dns/models/bluebox/records.rb +36 -0
- data/lib/fog/dns/models/bluebox/zone.rb +63 -0
- data/lib/fog/dns/models/bluebox/zones.rb +28 -0
- data/lib/fog/dns/models/dnsimple/record.rb +54 -0
- data/lib/fog/dns/models/dnsimple/records.rb +38 -0
- data/lib/fog/dns/models/dnsimple/zone.rb +50 -0
- data/lib/fog/dns/models/dnsimple/zones.rb +28 -0
- data/lib/fog/dns/parsers/bluebox/create_record.rb +26 -0
- data/lib/fog/dns/parsers/bluebox/create_zone.rb +26 -0
- data/lib/fog/dns/parsers/bluebox/get_record.rb +21 -0
- data/lib/fog/dns/parsers/bluebox/get_records.rb +27 -0
- data/lib/fog/{compute/parsers/terremark_ecloud/get_ip_address.rb → dns/parsers/bluebox/get_zone.rb} +6 -6
- data/lib/fog/dns/parsers/bluebox/get_zones.rb +30 -0
- data/lib/fog/dns/requests/bluebox/create_record.rb +48 -0
- data/lib/fog/dns/requests/bluebox/create_zone.rb +52 -0
- data/lib/fog/dns/requests/bluebox/delete_record.rb +31 -0
- data/lib/fog/dns/requests/bluebox/delete_zone.rb +31 -0
- data/lib/fog/dns/requests/bluebox/get_record.rb +40 -0
- data/lib/fog/dns/requests/bluebox/get_records.rb +41 -0
- data/lib/fog/dns/requests/bluebox/get_zone.rb +44 -0
- data/lib/fog/dns/requests/bluebox/get_zones.rb +43 -0
- data/lib/fog/dns/requests/bluebox/update_record.rb +34 -0
- data/lib/fog/dns/requests/bluebox/update_zone.rb +30 -0
- data/lib/fog/dns/requests/dnsimple/create_domain.rb +27 -0
- data/lib/fog/dns/requests/dnsimple/create_record.rb +48 -0
- data/lib/fog/dns/requests/dnsimple/delete_domain.rb +26 -0
- data/lib/fog/dns/requests/dnsimple/delete_record.rb +21 -0
- data/lib/fog/dns/requests/dnsimple/get_domain.rb +37 -0
- data/lib/fog/dns/requests/dnsimple/list_domains.rb +35 -0
- data/lib/fog/dns/requests/dnsimple/list_records.rb +32 -0
- data/lib/fog/dns/requests/dnsimple/update_record.rb +42 -0
- data/lib/fog/dns/slicehost.rb +2 -0
- data/lib/fog/dns/zerigo.rb +2 -0
- data/lib/fog/providers.rb +3 -1
- data/lib/fog/providers/aws.rb +0 -4
- data/lib/fog/providers/bluebox.rb +1 -8
- data/lib/fog/providers/dnsimple.rb +11 -0
- data/lib/fog/providers/ecloud.rb +11 -0
- data/lib/fog/providers/go_grid.rb +0 -8
- data/lib/fog/providers/google.rb +0 -3
- data/lib/fog/providers/linode.rb +0 -8
- data/lib/fog/providers/local.rb +0 -8
- data/lib/fog/providers/new_servers.rb +0 -11
- data/lib/fog/providers/rackspace.rb +0 -2
- data/lib/fog/providers/slicehost.rb +0 -11
- data/lib/fog/providers/voxel.rb +16 -0
- data/lib/fog/providers/zerigo.rb +0 -3
- data/lib/fog/storage/aws.rb +7 -19
- data/lib/fog/storage/google.rb +2 -2
- data/lib/fog/storage/models/aws/directory.rb +0 -3
- data/lib/fog/storage/models/aws/file.rb +0 -3
- data/lib/fog/storage/models/google/directory.rb +0 -3
- data/lib/fog/storage/models/google/file.rb +0 -3
- data/lib/fog/storage/models/local/directory.rb +0 -3
- data/lib/fog/storage/models/local/file.rb +29 -1
- data/lib/fog/storage/models/local/files.rb +8 -5
- data/lib/fog/storage/models/rackspace/directory.rb +1 -3
- data/lib/fog/storage/parsers/aws/get_bucket_website.rb +26 -0
- data/lib/fog/storage/rackspace.rb +0 -16
- data/lib/fog/storage/requests/aws/delete_bucket_website.rb +32 -0
- data/lib/fog/storage/requests/aws/get_bucket_website.rb +42 -0
- data/lib/fog/storage/requests/aws/put_bucket_website.rb +49 -0
- data/lib/fog/terremark.rb +0 -5
- data/spec/ecloud/bin_spec.rb +22 -0
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/backup_internet_service_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/backup_internet_services_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/internet_service_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/internet_services_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/ip_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/ips_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/network_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/networks_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/node_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/nodes_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/public_ip_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/public_ips_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/server_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/vdc_spec.rb +5 -5
- data/spec/{vcloud/terremark/ecloud → ecloud}/models/vdcs_spec.rb +4 -4
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_backup_internet_service_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_internet_service_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/add_node_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_internet_service_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_network_ip_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_node_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/configure_vapp_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_internet_service_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_node_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/delete_vapp_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_catalog_item_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_catalog_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_customization_options_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_internet_services_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_ip_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_ips_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_network_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_node_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_nodes_spec.rb +2 -2
- data/spec/{vcloud → ecloud}/requests/get_organization_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_public_ip_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_public_ips_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_vapp_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/get_vdc_spec.rb +2 -2
- data/spec/ecloud/requests/get_versions_spec.rb +57 -0
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/instantiate_vapp_template_spec.rb +3 -3
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/login_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/power_off_spec.rb +2 -2
- data/spec/{vcloud/terremark/ecloud → ecloud}/requests/power_on_spec.rb +2 -2
- data/spec/{vcloud → ecloud}/spec_helper.rb +14 -29
- data/spec/{vcloud → ecloud}/vcloud_spec.rb +4 -4
- data/spec/spec_helper.rb +0 -1
- data/tests/compute/helper.rb +12 -1
- data/tests/compute/models/flavors_tests.rb +2 -0
- data/tests/compute/models/server_tests.rb +28 -1
- data/tests/compute/requests/voxel/image_tests.rb +46 -0
- data/tests/compute/requests/voxel/server_tests.rb +123 -0
- data/tests/dns/helper.rb +10 -1
- data/tests/dns/models/record_tests.rb +0 -1
- data/tests/dns/requests/bluebox/dns_tests.rb +271 -0
- data/tests/dns/requests/dnsimple/dns_tests.rb +130 -0
- data/tests/helper.rb +1 -1
- data/tests/helpers/mock_helper.rb +2 -0
- data/tests/storage/models/directory_test.rb +2 -1
- metadata +244 -224
- data/lib/fog/bin/terremark_ecloud.rb +0 -28
- data/lib/fog/bin/vcloud.rb +0 -59
- data/lib/fog/compute/parsers/terremark_ecloud/get_catalog.rb +0 -36
- data/lib/fog/compute/parsers/terremark_ecloud/get_catalog_item.rb +0 -43
- data/lib/fog/compute/parsers/terremark_ecloud/get_ip_addresses.rb +0 -27
- data/lib/fog/compute/parsers/terremark_ecloud/get_network.rb +0 -59
- data/lib/fog/compute/parsers/terremark_ecloud/get_organization.rb +0 -35
- data/lib/fog/compute/parsers/terremark_ecloud/get_task.rb +0 -42
- data/lib/fog/compute/parsers/terremark_ecloud/get_task_list.rb +0 -51
- data/lib/fog/compute/parsers/terremark_ecloud/get_vdc.rb +0 -110
- data/lib/fog/compute/parsers/terremark_ecloud/get_versions.rb +0 -28
- data/lib/fog/compute/parsers/terremark_ecloud/login.rb +0 -27
- data/lib/fog/compute/requests/terremark_ecloud/get_catalog.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_catalog_item.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_ip_address.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_ip_addresses.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_network.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_organization.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_task.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_task_list.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_vdc.rb +0 -19
- data/lib/fog/compute/requests/terremark_ecloud/get_versions.rb +0 -26
- data/lib/fog/compute/requests/terremark_ecloud/login.rb +0 -29
- data/lib/fog/compute/terremark_ecloud.rb +0 -93
- data/lib/fog/providers/terremark_ecloud.rb +0 -17
- data/lib/fog/terremark/ecloud.rb +0 -73
- data/lib/fog/vcloud.rb +0 -337
- data/lib/fog/vcloud/collection.rb +0 -30
- data/lib/fog/vcloud/generators.rb +0 -33
- data/lib/fog/vcloud/mock_data_classes.rb +0 -767
- data/lib/fog/vcloud/model.rb +0 -22
- data/lib/fog/vcloud/models/vdc.rb +0 -26
- data/lib/fog/vcloud/models/vdcs.rb +0 -35
- data/lib/fog/vcloud/requests/get_network.rb +0 -47
- data/lib/fog/vcloud/requests/get_organization.rb +0 -47
- data/lib/fog/vcloud/requests/get_vdc.rb +0 -82
- data/lib/fog/vcloud/requests/get_versions.rb +0 -34
- data/lib/fog/vcloud/requests/login.rb +0 -46
- data/lib/fog/vcloud/terremark/ecloud.rb +0 -187
- data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_service.rb +0 -60
- data/lib/fog/vcloud/terremark/ecloud/models/backup_internet_services.rb +0 -36
- data/lib/fog/vcloud/terremark/ecloud/models/catalog.rb +0 -31
- data/lib/fog/vcloud/terremark/ecloud/models/catalog_item.rb +0 -31
- data/lib/fog/vcloud/terremark/ecloud/models/firewall_acl.rb +0 -28
- data/lib/fog/vcloud/terremark/ecloud/models/firewall_acls.rb +0 -34
- data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +0 -121
- data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +0 -36
- data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +0 -51
- data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +0 -35
- data/lib/fog/vcloud/terremark/ecloud/models/network.rb +0 -77
- data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +0 -36
- data/lib/fog/vcloud/terremark/ecloud/models/node.rb +0 -47
- data/lib/fog/vcloud/terremark/ecloud/models/nodes.rb +0 -33
- data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +0 -25
- data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +0 -39
- data/lib/fog/vcloud/terremark/ecloud/models/server.rb +0 -211
- data/lib/fog/vcloud/terremark/ecloud/models/servers.rb +0 -57
- data/lib/fog/vcloud/terremark/ecloud/models/task.rb +0 -23
- data/lib/fog/vcloud/terremark/ecloud/models/tasks.rb +0 -33
- data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +0 -83
- data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +0 -42
- data/lib/fog/vcloud/terremark/ecloud/requests/add_backup_internet_service.rb +0 -111
- data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +0 -152
- data/lib/fog/vcloud/terremark/ecloud/requests/add_node.rb +0 -64
- data/lib/fog/vcloud/terremark/ecloud/requests/clone_vapp.rb +0 -42
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +0 -115
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +0 -46
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_network_ip.rb +0 -68
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_node.rb +0 -58
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_vapp.rb +0 -147
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb +0 -25
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_node.rb +0 -24
- data/lib/fog/vcloud/terremark/ecloud/requests/delete_vapp.rb +0 -32
- data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog.rb +0 -46
- data/lib/fog/vcloud/terremark/ecloud/requests/get_catalog_item.rb +0 -49
- data/lib/fog/vcloud/terremark/ecloud/requests/get_customization_options.rb +0 -24
- data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acl.rb +0 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acls.rb +0 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb +0 -84
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +0 -47
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_extensions.rb +0 -35
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ip.rb +0 -45
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +0 -37
- data/lib/fog/vcloud/terremark/ecloud/requests/get_node.rb +0 -42
- data/lib/fog/vcloud/terremark/ecloud/requests/get_nodes.rb +0 -43
- data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb +0 -36
- data/lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb +0 -41
- data/lib/fog/vcloud/terremark/ecloud/requests/get_task.rb +0 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/get_task_list.rb +0 -14
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp.rb +0 -101
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp_template.rb +0 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb +0 -87
- data/lib/fog/vcloud/terremark/ecloud/requests/instantiate_vapp_template.rb +0 -144
- data/lib/fog/vcloud/terremark/ecloud/requests/power_off.rb +0 -25
- data/lib/fog/vcloud/terremark/ecloud/requests/power_on.rb +0 -25
- data/lib/fog/vcloud/terremark/ecloud/requests/power_reset.rb +0 -13
- data/lib/fog/vcloud/terremark/ecloud/requests/power_shutdown.rb +0 -13
- data/lib/fog/vcloud/terremark/vcloud.rb +0 -39
- data/lib/fog/vcloud/terremark/vcloud/requests/get_vdc.rb +0 -57
- data/spec/vcloud/bin_spec.rb +0 -28
- data/spec/vcloud/models/vdc_spec.rb +0 -51
- data/spec/vcloud/models/vdcs_spec.rb +0 -1
- data/spec/vcloud/requests/get_network_spec.rb +0 -44
- data/spec/vcloud/requests/get_vdc_spec.rb +0 -62
- data/spec/vcloud/requests/get_versions_spec.rb +0 -54
- data/spec/vcloud/requests/login_spec.rb +0 -24
- data/tests/compute/requests/terremark_ecloud/catalog_tests.rb +0 -47
- data/tests/compute/requests/terremark_ecloud/helper.rb +0 -45
- data/tests/compute/requests/terremark_ecloud/network_tests.rb +0 -30
- data/tests/compute/requests/terremark_ecloud/organization_tests.rb +0 -28
- data/tests/compute/requests/terremark_ecloud/task_tests.rb +0 -39
- data/tests/compute/requests/terremark_ecloud/vdc_tests.rb +0 -60
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# AFAICT - This is basically undocumented - 6/18/2010 - freeformz
|
|
3
|
-
#
|
|
4
|
-
|
|
5
|
-
module Fog
|
|
6
|
-
class Vcloud
|
|
7
|
-
module Terremark
|
|
8
|
-
class Ecloud
|
|
9
|
-
|
|
10
|
-
class Real
|
|
11
|
-
basic_request :get_network_ips
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
class Mock
|
|
15
|
-
|
|
16
|
-
def get_network_ips(network_ips_uri)
|
|
17
|
-
network_ips_uri = ensure_unparsed(network_ips_uri)
|
|
18
|
-
|
|
19
|
-
if network_ip_collection = mock_data.network_ip_collection_from_href(network_ips_uri)
|
|
20
|
-
builder = Builder::XmlMarkup.new
|
|
21
|
-
xml = builder.IpAddresses do
|
|
22
|
-
network_ip_collection.ordered_ips.each do |network_ip|
|
|
23
|
-
network_ip_response(builder, network_ip)
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
mock_it 200, xml, { 'Content-Type' => 'application/vnd.tmrk.ecloud.ipAddressesList+xml' }
|
|
28
|
-
else
|
|
29
|
-
mock_error 200, "401 Unauthorized"
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
basic_request :get_node
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
#
|
|
12
|
-
# Based on http://support.theenterprisecloud.com/kb/default.asp?id=641&Lang=1&SID=
|
|
13
|
-
#
|
|
14
|
-
|
|
15
|
-
def mock_node_service_response(node)
|
|
16
|
-
xml = Builder::XmlMarkup.new
|
|
17
|
-
xml.NodeService(ecloud_xmlns) {
|
|
18
|
-
xml.Id(node.object_id)
|
|
19
|
-
xml.Href(node.href)
|
|
20
|
-
xml.Name(node.name)
|
|
21
|
-
xml.IpAddress(node.ip_address)
|
|
22
|
-
xml.Port(node.port)
|
|
23
|
-
xml.Enabled(node.enabled)
|
|
24
|
-
xml.Description(node.description)
|
|
25
|
-
}
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def get_node(node_uri)
|
|
29
|
-
node_uri = ensure_unparsed(node_uri)
|
|
30
|
-
|
|
31
|
-
if public_ip_internet_service_node = mock_data.public_ip_internet_service_node_from_href(node_uri)
|
|
32
|
-
xml = Builder::XmlMarkup.new
|
|
33
|
-
mock_it 200, mock_node_service_response(public_ip_internet_service_node), { 'Content-Type' => 'application/vnd.tmrk.ecloud.nodeService+xml' }
|
|
34
|
-
else
|
|
35
|
-
mock_error 200, "401 Unauthorized"
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
basic_request :get_nodes
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
#
|
|
12
|
-
# Based off of:
|
|
13
|
-
# http://support.theenterprisecloud.com/kb/default.asp?id=637&Lang=1&SID=
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
def get_nodes(nodes_uri)
|
|
17
|
-
nodes_uri = ensure_unparsed(nodes_uri)
|
|
18
|
-
|
|
19
|
-
if public_ip_internet_service_node_collection = mock_data.public_ip_internet_service_node_collection_from_href(nodes_uri)
|
|
20
|
-
xml = Builder::XmlMarkup.new
|
|
21
|
-
mock_it 200,
|
|
22
|
-
xml.NodeServices(ecloud_xmlns) {
|
|
23
|
-
public_ip_internet_service_node_collection.items.each do |node|
|
|
24
|
-
xml.NodeService {
|
|
25
|
-
xml.Id node.object_id
|
|
26
|
-
xml.Href node.href
|
|
27
|
-
xml.Name node.name
|
|
28
|
-
xml.IpAddress node.ip_address
|
|
29
|
-
xml.Port node.port
|
|
30
|
-
xml.Enabled node.enabled
|
|
31
|
-
xml.Description node.description
|
|
32
|
-
}
|
|
33
|
-
end
|
|
34
|
-
}, { 'Content-Type' => 'application/vnd.tmrk.ecloud.nodeService+xml' }
|
|
35
|
-
else
|
|
36
|
-
mock_error 200, "401 Unauthorized"
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
basic_request :get_public_ip
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
#
|
|
12
|
-
#Based off of:
|
|
13
|
-
#http://support.theenterprisecloud.com/kb/default.asp?id=567&Lang=1&SID=
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
def get_public_ip(public_ip_uri)
|
|
17
|
-
public_ip_uri = ensure_unparsed(public_ip_uri)
|
|
18
|
-
|
|
19
|
-
if public_ip = mock_data.public_ip_from_href(public_ip_uri)
|
|
20
|
-
xml = Builder::XmlMarkup.new
|
|
21
|
-
mock_it 200,
|
|
22
|
-
xml.PublicIp(:xmlns => "urn:tmrk:eCloudExtensions-2.0", :"xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance") {
|
|
23
|
-
xml.Id public_ip.object_id
|
|
24
|
-
xml.Href public_ip.href
|
|
25
|
-
xml.Name public_ip.name
|
|
26
|
-
}, { 'Content-Type' => 'application/vnd.tmrk.ecloud.publicIp+xml' }
|
|
27
|
-
else
|
|
28
|
-
mock_error 200, "401 Unauthorized"
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
basic_request :get_public_ips
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
#
|
|
12
|
-
# Based off of:
|
|
13
|
-
# http://support.theenterprisecloud.com/kb/default.asp?id=577&Lang=1&SID=
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
def get_public_ips(public_ips_uri)
|
|
17
|
-
public_ips_uri = ensure_unparsed(public_ips_uri)
|
|
18
|
-
|
|
19
|
-
if public_ip_collection = mock_data.public_ip_collection_from_href(public_ips_uri)
|
|
20
|
-
xml = Builder::XmlMarkup.new
|
|
21
|
-
mock_it 200,
|
|
22
|
-
xml.PublicIPAddresses {
|
|
23
|
-
public_ip_collection.items.each do |ip|
|
|
24
|
-
xml.PublicIPAddress {
|
|
25
|
-
xml.Id ip.object_id
|
|
26
|
-
xml.Href ip.href
|
|
27
|
-
xml.Name ip.name
|
|
28
|
-
}
|
|
29
|
-
end
|
|
30
|
-
}, { 'Content-Type' => 'application/vnd.tmrk.ecloud.publicIpsList+xml'}
|
|
31
|
-
else
|
|
32
|
-
mock_error 200, "401 Unauthorized"
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
basic_request :get_vapp
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
def return_vapp_as_creating!(name)
|
|
12
|
-
vapps_to_return_as_creating[name] = true
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def vapps_to_return_as_creating
|
|
16
|
-
@vapps_to_return_as_creating ||= {}
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def get_vapp(vapp_uri)
|
|
20
|
-
xml = nil
|
|
21
|
-
|
|
22
|
-
if vapp = mock_data.virtual_machine_from_href(vapp_uri)
|
|
23
|
-
if vapps_to_return_as_creating[vapp.name]
|
|
24
|
-
xml = generate_instantiate_vapp_template_response(vapp)
|
|
25
|
-
else
|
|
26
|
-
xml = generate_get_vapp_response(vapp)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
if xml
|
|
31
|
-
mock_it 200, xml, "Content-Type" => "application/vnd.vmware.vcloud.vApp+xml"
|
|
32
|
-
else
|
|
33
|
-
mock_error 200, "401 Unauthorized"
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
private
|
|
38
|
-
|
|
39
|
-
def generate_get_vapp_response(vapp)
|
|
40
|
-
builder = Builder::XmlMarkup.new
|
|
41
|
-
builder.VApp(xmlns.merge(
|
|
42
|
-
:href => vapp.href,
|
|
43
|
-
:type => "application/vnd.vmware.vcloud.vApp+xml",
|
|
44
|
-
:name => vapp.name,
|
|
45
|
-
:status => vapp.status,
|
|
46
|
-
:size => vapp.size
|
|
47
|
-
)) do
|
|
48
|
-
builder.Link(:rel => "up", :href => vapp._parent.href, :type => "application/vnd.vmware.vcloud.vdc+xml")
|
|
49
|
-
|
|
50
|
-
builder.NetworkConnectionSection(:xmlns => "http://schemas.dmtf.org/ovf/envelope/1") do
|
|
51
|
-
builder.NetworkConnection(:Network => "Internal", :xmlns => "http://www.vmware.com/vcloud/v0.8") do
|
|
52
|
-
builder.IpAddress vapp.ip
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
builder.OperatingSystemSection(
|
|
57
|
-
"d2p1:id" => 4,
|
|
58
|
-
:xmlns => "http://schemas.dmtf.org/ovf/envelope/1",
|
|
59
|
-
"xmlns:d2p1" => "http://schemas.dmtf.org/ovf/envelope/1") do
|
|
60
|
-
builder.Info "The kind of installed guest operating system"
|
|
61
|
-
builder.Description "Red Hat Enterprise Linux 5 (64-bit)"
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
builder.VirtualHardwareSection(:xmlns => "http://schemas.dmtf.org/ovf/envelope/1") do
|
|
65
|
-
builder.Info
|
|
66
|
-
builder.System
|
|
67
|
-
builder.Item do
|
|
68
|
-
# CPUs
|
|
69
|
-
builder.VirtualQuantity vapp.cpus
|
|
70
|
-
builder.ResourceType 3
|
|
71
|
-
end
|
|
72
|
-
builder.Item do
|
|
73
|
-
# memory
|
|
74
|
-
builder.VirtualQuantity vapp.memory
|
|
75
|
-
builder.ResourceType 4
|
|
76
|
-
end
|
|
77
|
-
builder.Item do
|
|
78
|
-
# SCSI controller
|
|
79
|
-
builder.Address 0
|
|
80
|
-
builder.ResourceType 6
|
|
81
|
-
builder.InstanceId 3
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# Hard Disks
|
|
85
|
-
vapp.disks.each do |disk|
|
|
86
|
-
builder.Item do
|
|
87
|
-
builder.Parent 3
|
|
88
|
-
builder.VirtualQuantity disk.vcloud_size
|
|
89
|
-
builder.HostResource disk.vcloud_size
|
|
90
|
-
builder.ResourceType 17
|
|
91
|
-
builder.AddressOnParent disk.address
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
|
|
6
|
-
class Real
|
|
7
|
-
# Handled by the main Vcloud get_vdc
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
class Mock
|
|
11
|
-
#
|
|
12
|
-
#Based off of:
|
|
13
|
-
#http://support.theenterprisecloud.com/kb/default.asp?id=545&Lang=1&SID=
|
|
14
|
-
|
|
15
|
-
def get_vdc(vdc_uri)
|
|
16
|
-
vdc_uri = ensure_unparsed(vdc_uri)
|
|
17
|
-
|
|
18
|
-
if vdc = mock_data.vdc_from_href(vdc_uri)
|
|
19
|
-
xml = Builder::XmlMarkup.new
|
|
20
|
-
mock_it 200,
|
|
21
|
-
xml.Vdc(xmlns.merge(:href => vdc.href, :name => vdc.name)) {
|
|
22
|
-
xml.Link(:rel => "down",
|
|
23
|
-
:href => vdc.catalog.href,
|
|
24
|
-
:type => "application/vnd.vmware.vcloud.catalog+xml",
|
|
25
|
-
:name => vdc.catalog.name)
|
|
26
|
-
xml.Link(:rel => "down",
|
|
27
|
-
:href => vdc.public_ip_collection.href,
|
|
28
|
-
:type => "application/vnd.tmrk.ecloud.publicIpsList+xml",
|
|
29
|
-
:name => vdc.public_ip_collection.name)
|
|
30
|
-
xml.Link(:rel => "down",
|
|
31
|
-
:href => vdc.internet_service_collection.href,
|
|
32
|
-
:type => "application/vnd.tmrk.ecloud.internetServicesList+xml",
|
|
33
|
-
:name => vdc.internet_service_collection.name)
|
|
34
|
-
xml.Link(:rel => "down",
|
|
35
|
-
:href => vdc.firewall_acls.href,
|
|
36
|
-
:type => "application/vnd.tmrk.ecloud.firewallAclsList+xml",
|
|
37
|
-
:name => vdc.firewall_acls.name)
|
|
38
|
-
xml.Description("")
|
|
39
|
-
xml.StorageCapacity {
|
|
40
|
-
xml.Units("bytes * 10^9")
|
|
41
|
-
xml.Allocated(vdc.storage_allocated)
|
|
42
|
-
xml.Used(vdc.storage_used)
|
|
43
|
-
}
|
|
44
|
-
xml.ComputeCapacity {
|
|
45
|
-
xml.Cpu {
|
|
46
|
-
xml.Units("hz * 10^6")
|
|
47
|
-
xml.Allocated(vdc.cpu_allocated)
|
|
48
|
-
}
|
|
49
|
-
xml.Memory {
|
|
50
|
-
xml.Units("bytes * 2^20")
|
|
51
|
-
xml.Allocated(vdc.memory_allocated)
|
|
52
|
-
}
|
|
53
|
-
xml.DeployedVmsQuota {
|
|
54
|
-
xml.Limit("-1")
|
|
55
|
-
xml.Used("-1")
|
|
56
|
-
}
|
|
57
|
-
xml.InstantiatedVmsQuota {
|
|
58
|
-
xml.Limit("-1")
|
|
59
|
-
xml.Used("-1")
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
xml.ResourceEntities {
|
|
63
|
-
vdc.virtual_machines.each do |virtual_machine|
|
|
64
|
-
xml.ResourceEntity(:href => virtual_machine.href,
|
|
65
|
-
:type => "application/vnd.vmware.vcloud.vApp+xml",
|
|
66
|
-
:name => virtual_machine.name)
|
|
67
|
-
end
|
|
68
|
-
}
|
|
69
|
-
xml.AvailableNetworks {
|
|
70
|
-
vdc.networks.each do |network|
|
|
71
|
-
xml.Network(:href => network.href,
|
|
72
|
-
:type => "application/vnd.vmware.vcloud.network+xml",
|
|
73
|
-
:name => network.name)
|
|
74
|
-
end
|
|
75
|
-
}
|
|
76
|
-
}, { 'Content-Type' => 'application/vnd.vmware.vcloud.vdc+xml'}
|
|
77
|
-
else
|
|
78
|
-
mock_error 200, "401 Unauthorized"
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
end
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
module Fog
|
|
2
|
-
class Vcloud
|
|
3
|
-
module Terremark
|
|
4
|
-
class Ecloud
|
|
5
|
-
module Shared
|
|
6
|
-
private
|
|
7
|
-
|
|
8
|
-
def validate_instantiate_vapp_template_options(catalog_item_uri, options)
|
|
9
|
-
valid_opts = [:name, :vdc_uri, :network_uri, :cpus, :memory, :row, :group]
|
|
10
|
-
unless valid_opts.all? { |opt| options.keys.include?(opt) }
|
|
11
|
-
raise ArgumentError.new("Required data missing: #{(valid_opts - options.keys).map(&:inspect).join(", ")}")
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
# Figure out the template_uri
|
|
15
|
-
catalog_item = get_catalog_item( catalog_item_uri ).body
|
|
16
|
-
catalog_item[:Entity] = [ catalog_item[:Entity] ] if catalog_item[:Entity].is_a?(Hash)
|
|
17
|
-
catalog_item[:Link] = [ catalog_item[:Link] ] if catalog_item[:Link].is_a?(Hash)
|
|
18
|
-
|
|
19
|
-
options[:template_uri] = begin
|
|
20
|
-
catalog_item[:Entity].detect { |entity| entity[:type] == "application/vnd.vmware.vcloud.vAppTemplate+xml" }[:href]
|
|
21
|
-
rescue
|
|
22
|
-
raise RuntimeError.new("Unable to locate template uri for #{catalog_item_uri}")
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
customization_options = begin
|
|
26
|
-
customization_href = catalog_item[:Link].detect { |link| link[:type] == "application/vnd.tmrk.ecloud.catalogItemCustomizationParameters+xml" }[:href]
|
|
27
|
-
get_customization_options( customization_href ).body
|
|
28
|
-
rescue
|
|
29
|
-
raise RuntimeError.new("Unable to get customization options for #{catalog_item_uri}")
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Check to see if we can set the password
|
|
33
|
-
if options[:password] and customization_options[:CustomizePassword] == "false"
|
|
34
|
-
raise ArgumentError.new("This catalog item (#{catalog_item_uri}) does not allow setting a password.")
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# According to the docs if CustomizePassword is "true" then we NEED to set a password
|
|
38
|
-
if customization_options[:CustomizePassword] == "true" and ( options[:password].nil? or options[:password].empty? )
|
|
39
|
-
raise ArgumentError.new("This catalog item (#{catalog_item_uri}) requires a :password to instantiate.")
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def generate_instantiate_vapp_template_request(options)
|
|
44
|
-
xml = Builder::XmlMarkup.new
|
|
45
|
-
xml.InstantiateVAppTemplateParams(xmlns.merge!(:name => options[:name], :"xml:lang" => "en")) {
|
|
46
|
-
xml.VAppTemplate(:href => options[:template_uri])
|
|
47
|
-
xml.InstantiationParams {
|
|
48
|
-
xml.ProductSection( :"xmlns:q1" => "http://www.vmware.com/vcloud/v0.8", :"xmlns:ovf" => "http://schemas.dmtf.org/ovf/envelope/1") {
|
|
49
|
-
if options[:password]
|
|
50
|
-
xml.Property( :xmlns => "http://schemas.dmtf.org/ovf/envelope/1", :"ovf:key" => "password", :"ovf:value" => options[:password] )
|
|
51
|
-
end
|
|
52
|
-
xml.Property( :xmlns => "http://schemas.dmtf.org/ovf/envelope/1", :"ovf:key" => "row", :"ovf:value" => options[:row] )
|
|
53
|
-
xml.Property( :xmlns => "http://schemas.dmtf.org/ovf/envelope/1", :"ovf:key" => "group", :"ovf:value" => options[:group] )
|
|
54
|
-
}
|
|
55
|
-
xml.VirtualHardwareSection( :"xmlns:q1" => "http://www.vmware.com/vcloud/v0.8" ) {
|
|
56
|
-
# # of CPUS
|
|
57
|
-
xml.Item( :xmlns => "http://schemas.dmtf.org/ovf/envelope/1" ) {
|
|
58
|
-
xml.InstanceID(1, :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
59
|
-
xml.ResourceType(3, :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
60
|
-
xml.VirtualQuantity(options[:cpus], :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
61
|
-
}
|
|
62
|
-
# Memory
|
|
63
|
-
xml.Item( :xmlns => "http://schemas.dmtf.org/ovf/envelope/1" ) {
|
|
64
|
-
xml.InstanceID(2, :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
65
|
-
xml.ResourceType(4, :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
66
|
-
xml.VirtualQuantity(options[:memory], :xmlns => "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData")
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
xml.NetworkConfigSection {
|
|
70
|
-
xml.NetworkConfig {
|
|
71
|
-
xml.NetworkAssociation( :href => options[:network_uri] )
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
class Real
|
|
80
|
-
include Shared
|
|
81
|
-
|
|
82
|
-
def instantiate_vapp_template(catalog_item_uri, options = {})
|
|
83
|
-
validate_instantiate_vapp_template_options(catalog_item_uri, options)
|
|
84
|
-
|
|
85
|
-
request(
|
|
86
|
-
:body => generate_instantiate_vapp_template_request(options),
|
|
87
|
-
:expects => 200,
|
|
88
|
-
:headers => {'Content-Type' => 'application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml'},
|
|
89
|
-
:method => 'POST',
|
|
90
|
-
:uri => options[:vdc_uri] + '/action/instantiatevAppTemplate',
|
|
91
|
-
:parse => true
|
|
92
|
-
)
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
class Mock
|
|
97
|
-
include Shared
|
|
98
|
-
|
|
99
|
-
#
|
|
100
|
-
# Based on
|
|
101
|
-
# http://support.theenterprisecloud.com/kb/default.asp?id=554&Lang=1&SID=
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
def instantiate_vapp_template(catalog_item_uri, options = {})
|
|
105
|
-
validate_instantiate_vapp_template_options(catalog_item_uri, options)
|
|
106
|
-
catalog_item = mock_data.catalog_item_from_href(catalog_item_uri)
|
|
107
|
-
|
|
108
|
-
xml = nil
|
|
109
|
-
if vdc = mock_data.vdc_from_href(options[:vdc_uri])
|
|
110
|
-
if network = mock_data.network_from_href(options[:network_uri])
|
|
111
|
-
new_vm = MockVirtualMachine.new({ :name => options[:name], :ip => network.random_ip, :cpus => options[:cpus], :memory => options[:memory] }, vdc)
|
|
112
|
-
new_vm.disks.push(*catalog_item.disks.dup)
|
|
113
|
-
vdc.virtual_machines << new_vm
|
|
114
|
-
|
|
115
|
-
xml = generate_instantiate_vapp_template_response(new_vm)
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
if xml
|
|
120
|
-
mock_it 200, xml, {'Content-Type' => 'application/xml'}
|
|
121
|
-
else
|
|
122
|
-
mock_error 200, "401 Unauthorized"
|
|
123
|
-
end
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
private
|
|
127
|
-
|
|
128
|
-
def generate_instantiate_vapp_template_response(vapp)
|
|
129
|
-
builder = Builder::XmlMarkup.new
|
|
130
|
-
builder.VApp(xmlns.merge(
|
|
131
|
-
:href => vapp.href,
|
|
132
|
-
:type => "application/vnd.vmware.vcloud.vApp+xml",
|
|
133
|
-
:name => vapp.name,
|
|
134
|
-
:status => 0,
|
|
135
|
-
:size => 4
|
|
136
|
-
)) {
|
|
137
|
-
builder.Link(:rel => "up", :href => vapp._parent.href, :type => "application/vnd.vmware.vcloud.vdc+xml")
|
|
138
|
-
}
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|