fog 1.18.0 → 1.19.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/.travis.yml +6 -0
- data/CONTRIBUTING.md +22 -0
- data/LICENSE.md +20 -0
- data/README.md +41 -60
- data/Rakefile +2 -0
- data/changelog.txt +262 -0
- data/fog.gemspec +3 -3
- data/lib/fog/aws.rb +9 -7
- data/lib/fog/aws/cloud_watch.rb +0 -1
- data/lib/fog/aws/compute.rb +2 -0
- data/lib/fog/aws/dns.rb +2 -1
- data/lib/fog/aws/elb.rb +2 -0
- data/lib/fog/aws/models/auto_scaling/configuration.rb +4 -0
- data/lib/fog/aws/models/compute/address.rb +6 -5
- data/lib/fog/aws/models/compute/flavors.rb +10 -0
- data/lib/fog/aws/models/compute/spot_request.rb +1 -1
- data/lib/fog/aws/models/compute/subnet.rb +4 -0
- data/lib/fog/aws/models/compute/vpc.rb +5 -0
- data/lib/fog/aws/models/dns/records.rb +1 -3
- data/lib/fog/aws/models/elb/load_balancer.rb +10 -0
- data/lib/fog/aws/models/glacier/vault.rb +1 -1
- data/lib/fog/aws/models/rds/server.rb +5 -2
- data/lib/fog/aws/models/rds/subnet_group.rb +15 -1
- data/lib/fog/aws/models/storage/file.rb +2 -2
- data/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb +6 -0
- data/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb +25 -0
- data/lib/fog/aws/parsers/compute/describe_addresses.rb +1 -1
- data/lib/fog/aws/parsers/elb/describe_load_balancer_attributes.rb +40 -0
- data/lib/fog/aws/parsers/rds/delete_db_subnet_group.rb +35 -0
- data/lib/fog/aws/rds.rb +3 -3
- data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +2 -0
- data/lib/fog/aws/requests/auto_scaling/describe_notification_configurations.rb +1 -1
- data/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb +60 -0
- data/lib/fog/aws/requests/compute/create_route.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_images.rb +1 -1
- data/lib/fog/aws/requests/compute/describe_subnets.rb +8 -0
- data/lib/fog/aws/requests/compute/describe_vpcs.rb +8 -0
- data/lib/fog/aws/requests/compute/modify_vpc_attribute.rb +59 -0
- data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +26 -9
- data/lib/fog/aws/requests/dns/create_hosted_zone.rb +12 -3
- data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +33 -0
- data/lib/fog/aws/requests/dns/get_change.rb +26 -0
- data/lib/fog/aws/requests/dns/get_hosted_zone.rb +1 -1
- data/lib/fog/aws/requests/dns/list_hosted_zones.rb +3 -8
- data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +68 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -0
- data/lib/fog/aws/requests/elb/describe_load_balancer_attributes.rb +54 -0
- data/lib/fog/aws/requests/elb/modify_load_balancer_attributes.rb +59 -0
- data/lib/fog/aws/requests/rds/create_db_instance.rb +7 -1
- data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +7 -1
- data/lib/fog/aws/requests/rds/delete_db_subnet_group.rb +42 -0
- data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +6 -4
- data/lib/fog/aws/requests/storage/put_bucket.rb +4 -1
- data/lib/fog/aws/sqs.rb +2 -4
- data/lib/fog/aws/storage.rb +14 -1
- data/lib/fog/bluebox/compute.rb +1 -1
- data/lib/fog/brightbox/compute.rb +7 -9
- data/lib/fog/brightbox/compute/image_selector.rb +1 -1
- data/lib/fog/brightbox/compute/shared.rb +8 -10
- data/lib/fog/brightbox/models/compute/api_client.rb +1 -1
- data/lib/fog/brightbox/models/compute/application.rb +1 -4
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +8 -5
- data/lib/fog/brightbox/models/compute/collaboration.rb +0 -2
- data/lib/fog/brightbox/models/compute/collaborations.rb +1 -1
- data/lib/fog/brightbox/models/compute/firewall_policy.rb +2 -4
- data/lib/fog/brightbox/models/compute/firewall_rule.rb +1 -1
- data/lib/fog/brightbox/models/compute/image.rb +1 -3
- data/lib/fog/brightbox/models/compute/load_balancer.rb +11 -8
- data/lib/fog/brightbox/models/compute/server.rb +28 -20
- data/lib/fog/brightbox/models/compute/server_group.rb +9 -11
- data/lib/fog/brightbox/models/compute/zone.rb +1 -1
- data/lib/fog/brightbox/oauth2.rb +3 -3
- data/lib/fog/brightbox/requests/compute/update_server.rb +1 -1
- data/lib/fog/cloudstack.rb +1 -1
- data/lib/fog/compute.rb +2 -2
- data/lib/fog/core.rb +1 -1
- data/lib/fog/core/connection.rb +1 -2
- data/lib/fog/core/errors.rb +3 -3
- data/lib/fog/core/hmac.rb +3 -3
- data/lib/fog/core/mock.rb +9 -2
- data/lib/fog/core/scp.rb +1 -1
- data/lib/fog/core/wait_for.rb +1 -1
- data/lib/fog/core/{timeout.rb → wait_for_defaults.rb} +10 -0
- data/lib/fog/digitalocean/models/compute/server.rb +4 -0
- data/lib/fog/digitalocean/requests/compute/create_server.rb +2 -0
- data/lib/fog/dnsimple/dns.rb +1 -1
- data/lib/fog/dreamhost/dns.rb +2 -4
- data/lib/fog/ecloud/compute.rb +1 -1
- data/lib/fog/ecloud/models/compute/environments.rb +5 -3
- data/lib/fog/google/compute.rb +105 -68
- data/lib/fog/google/examples/create.rb +1 -0
- data/lib/fog/google/models/compute/disk.rb +7 -1
- data/lib/fog/google/models/compute/operation.rb +42 -0
- data/lib/fog/google/models/compute/operations.rb +26 -0
- data/lib/fog/google/models/compute/server.rb +18 -2
- data/lib/fog/google/models/compute/servers.rb +2 -1
- data/lib/fog/google/models/compute/zones.rb +1 -1
- data/lib/fog/google/models/storage/file.rb +1 -1
- data/lib/fog/google/models/storage/files.rb +1 -1
- data/lib/fog/google/requests/compute/delete_disk.rb +22 -2
- data/lib/fog/google/requests/compute/delete_global_operation.rb +29 -0
- data/lib/fog/google/requests/compute/delete_server.rb +13 -9
- data/lib/fog/google/requests/compute/delete_zone_operation.rb +33 -0
- data/lib/fog/google/requests/compute/get_disk.rb +26 -2
- data/lib/fog/google/requests/compute/{delete_operation.rb → get_global_operation.rb} +5 -6
- data/lib/fog/google/requests/compute/get_image.rb +3 -3
- data/lib/fog/google/requests/compute/get_server.rb +1 -0
- data/lib/fog/google/requests/compute/get_zone_operation.rb +58 -0
- data/lib/fog/google/requests/compute/insert_disk.rb +43 -3
- data/lib/fog/google/requests/compute/insert_firewall.rb +2 -1
- data/lib/fog/google/requests/compute/insert_image.rb +2 -2
- data/lib/fog/google/requests/compute/insert_server.rb +64 -35
- data/lib/fog/google/requests/compute/list_disks.rb +8 -2
- data/lib/fog/google/requests/compute/list_images.rb +2 -2
- data/lib/fog/google/requests/compute/list_machine_types.rb +2 -2
- data/lib/fog/google/requests/compute/list_servers.rb +2 -2
- data/lib/fog/google/requests/compute/list_zone_operations.rb +2 -1
- data/lib/fog/google/requests/compute/list_zones.rb +1 -1
- data/lib/fog/google/requests/storage/copy_object.rb +1 -1
- data/lib/fog/hp.rb +1 -1
- data/lib/fog/hp/README.md +57 -0
- data/lib/fog/hp/articles/auth_caching.md +23 -0
- data/lib/fog/hp/docs/connect.md +152 -0
- data/lib/fog/hp/docs/install.md +133 -0
- data/lib/fog/hp/examples/block_storage.md +296 -0
- data/lib/fog/hp/examples/block_storage_v2.md +446 -0
- data/lib/fog/hp/examples/cdn.md +54 -0
- data/lib/fog/hp/examples/compute.md +794 -0
- data/lib/fog/hp/examples/compute_v2.md +848 -0
- data/lib/fog/hp/examples/getting_started_examples.md +30 -0
- data/lib/fog/hp/examples/networking.md +472 -0
- data/lib/fog/hp/examples/object_storage.md +387 -0
- data/lib/fog/json.rb +6 -3
- data/lib/fog/local/models/storage/directories.rb +8 -4
- data/lib/fog/openstack/compute.rb +3 -0
- data/lib/fog/openstack/examples/compute/basics.rb +74 -0
- data/lib/fog/openstack/identity.rb +2 -3
- data/lib/fog/openstack/image.rb +1 -4
- data/lib/fog/openstack/metering.rb +1 -4
- data/lib/fog/openstack/models/compute/host.rb +5 -1
- data/lib/fog/openstack/models/compute/security_group.rb +18 -4
- data/lib/fog/openstack/models/compute/security_group_rule.rb +32 -0
- data/lib/fog/openstack/models/compute/security_group_rules.rb +22 -0
- data/lib/fog/openstack/models/volume/volume_type.rb +20 -0
- data/lib/fog/openstack/models/volume/volume_types.rb +26 -0
- data/lib/fog/openstack/network.rb +34 -6
- data/lib/fog/openstack/requests/compute/add_flavor_access.rb +1 -1
- data/lib/fog/openstack/requests/compute/allocate_address.rb +1 -1
- data/lib/fog/openstack/requests/compute/attach_volume.rb +1 -1
- data/lib/fog/openstack/requests/compute/boot_from_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_flavor.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_key_pair.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_security_group.rb +4 -4
- data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +2 -2
- data/lib/fog/openstack/requests/compute/create_server.rb +12 -5
- data/lib/fog/openstack/requests/compute/create_volume.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_security_group_rule.rb +2 -0
- data/lib/fog/openstack/requests/compute/get_security_group.rb +14 -24
- data/lib/fog/openstack/requests/compute/get_security_group_rule.rb +38 -0
- data/lib/fog/openstack/requests/compute/list_hosts.rb +3 -3
- data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -1
- data/lib/fog/openstack/requests/compute/remove_flavor_access.rb +1 -1
- data/lib/fog/openstack/requests/compute/update_quota.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_role.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_user.rb +1 -1
- data/lib/fog/openstack/requests/identity/update_user.rb +1 -1
- data/lib/fog/openstack/requests/image/update_image_members.rb +1 -1
- data/lib/fog/openstack/requests/orchestration/create_stack.rb +2 -2
- data/lib/fog/openstack/requests/orchestration/update_stack.rb +1 -1
- data/lib/fog/openstack/requests/storage/get_object_http_url.rb +13 -0
- data/lib/fog/openstack/requests/storage/get_object_https_url.rb +0 -14
- data/lib/fog/openstack/requests/volume/create_volume.rb +1 -1
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/volume/get_volume_type_details.rb +32 -0
- data/lib/fog/openstack/requests/volume/list_volume_types.rb +41 -0
- data/lib/fog/openstack/storage.rb +2 -0
- data/lib/fog/openstack/volume.rb +9 -5
- data/lib/fog/rackspace/compute.rb +1 -4
- data/lib/fog/rackspace/compute_v2.rb +1 -0
- data/lib/fog/rackspace/docs/auto_scale.md +9 -9
- data/lib/fog/rackspace/docs/getting_started.md +1 -0
- data/lib/fog/rackspace/docs/queues.md +312 -0
- data/lib/fog/rackspace/examples/queues/claim_messages.rb +60 -0
- data/lib/fog/rackspace/examples/queues/create_queue.rb +45 -0
- data/lib/fog/rackspace/examples/queues/delete_message.rb +72 -0
- data/lib/fog/rackspace/examples/queues/delete_queue.rb +53 -0
- data/lib/fog/rackspace/examples/queues/list_messages.rb +64 -0
- data/lib/fog/rackspace/examples/queues/post_message.rb +59 -0
- data/lib/fog/rackspace/models/compute_v2/key_pairs.rb +1 -1
- data/lib/fog/rackspace/models/compute_v2/server.rb +9 -3
- data/lib/fog/rackspace/models/compute_v2/servers.rb +2 -2
- data/lib/fog/rackspace/models/identity/service_catalog.rb +44 -59
- data/lib/fog/rackspace/models/queues/claim.rb +41 -1
- data/lib/fog/rackspace/models/queues/claims.rb +25 -0
- data/lib/fog/rackspace/models/queues/message.rb +43 -5
- data/lib/fog/rackspace/models/queues/messages.rb +37 -0
- data/lib/fog/rackspace/models/queues/queue.rb +66 -3
- data/lib/fog/rackspace/models/queues/queues.rb +15 -0
- data/lib/fog/rackspace/models/storage/file.rb +8 -1
- data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +1 -1
- data/lib/fog/rackspace/requests/compute_v2/get_keypair.rb +1 -1
- data/lib/fog/rackspace/requests/queues/create_claim.rb +15 -0
- data/lib/fog/rackspace/requests/queues/create_message.rb +15 -0
- data/lib/fog/rackspace/requests/queues/create_queue.rb +11 -0
- data/lib/fog/rackspace/requests/queues/delete_claim.rb +12 -0
- data/lib/fog/rackspace/requests/queues/delete_message.rb +14 -0
- data/lib/fog/rackspace/requests/queues/delete_queue.rb +10 -0
- data/lib/fog/rackspace/requests/queues/get_claim.rb +11 -0
- data/lib/fog/rackspace/requests/queues/get_message.rb +12 -0
- data/lib/fog/rackspace/requests/queues/get_queue.rb +10 -0
- data/lib/fog/rackspace/requests/queues/get_queue_stats.rb +10 -0
- data/lib/fog/rackspace/requests/queues/list_messages.rb +26 -0
- data/lib/fog/rackspace/requests/queues/list_queues.rb +17 -2
- data/lib/fog/rackspace/requests/queues/update_claim.rb +7 -0
- data/lib/fog/rackspace/service.rb +6 -2
- data/lib/fog/rackspace/storage.rb +1 -4
- data/lib/fog/riakcs.rb +2 -2
- data/lib/fog/riakcs/provisioning.rb +1 -3
- data/lib/fog/riakcs/requests/provisioning/create_user.rb +2 -2
- data/lib/fog/riakcs/requests/provisioning/get_user.rb +1 -1
- data/lib/fog/riakcs/requests/provisioning/list_users.rb +1 -1
- data/lib/fog/riakcs/requests/usage/get_usage.rb +1 -1
- data/lib/fog/riakcs/usage.rb +0 -2
- data/lib/fog/vcloud_director/README.md +2 -0
- data/lib/fog/vcloud_director/compute.rb +79 -8
- data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +91 -0
- data/lib/fog/vcloud_director/generators/compute/vapp.rb +30 -0
- data/lib/fog/vcloud_director/generators/compute/vm.rb +33 -0
- data/lib/fog/vcloud_director/models/compute/medias.rb +1 -1
- data/lib/fog/vcloud_director/models/compute/vm_customization.rb +2 -0
- data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +2 -0
- data/lib/fog/vcloud_director/requests/compute/delete_network.rb +64 -0
- data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +433 -333
- data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +3 -1
- data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +20 -2
- data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +176 -0
- data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +1 -1
- data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +1 -0
- data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +37 -0
- data/lib/fog/vcloud_director/requests/compute/put_vm.rb +39 -0
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +3 -0
- data/lib/fog/vsphere/models/compute/datastore.rb +1 -0
- data/lib/fog/vsphere/models/compute/interface.rb +50 -2
- data/lib/fog/vsphere/models/compute/interfaces.rb +25 -10
- data/lib/fog/vsphere/models/compute/scsicontroller.rb +19 -0
- data/lib/fog/vsphere/models/compute/server.rb +27 -8
- data/lib/fog/vsphere/requests/compute/create_vm.rb +34 -8
- data/lib/fog/vsphere/requests/compute/get_vm_first_scsi_controller.rb +26 -0
- data/lib/fog/vsphere/requests/compute/list_datastores.rb +9 -8
- data/lib/fog/vsphere/requests/compute/modify_vm_interface.rb +9 -6
- data/lib/fog/vsphere/requests/compute/set_vm_customvalue.rb +19 -0
- data/lib/fog/xenserver.rb +2 -1
- data/lib/fog/xenserver/compute.rb +37 -1
- data/lib/fog/xenserver/models/compute/blob.rb +22 -0
- data/lib/fog/xenserver/models/compute/blobs.rb +25 -0
- data/lib/fog/xenserver/models/compute/bond.rb +23 -0
- data/lib/fog/xenserver/models/compute/bonds.rb +25 -0
- data/lib/fog/xenserver/models/compute/console.rb +3 -1
- data/lib/fog/xenserver/models/compute/crash_dump.rb +19 -0
- data/lib/fog/xenserver/models/compute/crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/dr_task.rb +17 -0
- data/lib/fog/xenserver/models/compute/dr_tasks.rb +25 -0
- data/lib/fog/xenserver/models/compute/gpu_group.rb +22 -0
- data/lib/fog/xenserver/models/compute/gpu_groups.rb +25 -0
- data/lib/fog/xenserver/models/compute/guest_metrics.rb +2 -1
- data/lib/fog/xenserver/models/compute/host.rb +41 -8
- data/lib/fog/xenserver/models/compute/host_cpu.rb +2 -1
- data/lib/fog/xenserver/models/compute/host_crash_dump.rb +20 -0
- data/lib/fog/xenserver/models/compute/host_crash_dumps.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_metrics.rb +1 -1
- data/lib/fog/xenserver/models/compute/host_patch.rb +25 -0
- data/lib/fog/xenserver/models/compute/host_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/network.rb +7 -6
- data/lib/fog/xenserver/models/compute/pbd.rb +3 -1
- data/lib/fog/xenserver/models/compute/pci.rb +22 -0
- data/lib/fog/xenserver/models/compute/pcis.rb +25 -0
- data/lib/fog/xenserver/models/compute/pgpu.rb +20 -0
- data/lib/fog/xenserver/models/compute/pgpus.rb +25 -0
- data/lib/fog/xenserver/models/compute/pif.rb +19 -8
- data/lib/fog/xenserver/models/compute/pif_metrics.rb +28 -0
- data/lib/fog/xenserver/models/compute/pifs_metrics.rb +25 -0
- data/lib/fog/xenserver/models/compute/pool.rb +18 -1
- data/lib/fog/xenserver/models/compute/pool_patch.rb +24 -0
- data/lib/fog/xenserver/models/compute/pool_patchs.rb +25 -0
- data/lib/fog/xenserver/models/compute/role.rb +19 -0
- data/lib/fog/xenserver/models/compute/roles.rb +25 -0
- data/lib/fog/xenserver/models/compute/server.rb +59 -26
- data/lib/fog/xenserver/models/compute/server_appliance.rb +21 -0
- data/lib/fog/xenserver/models/compute/server_appliances.rb +25 -0
- data/lib/fog/xenserver/models/compute/storage_manager.rb +28 -0
- data/lib/fog/xenserver/models/compute/storage_managers.rb +25 -0
- data/lib/fog/xenserver/models/compute/storage_repository.rb +4 -1
- data/lib/fog/xenserver/models/compute/tunnel.rb +20 -0
- data/lib/fog/xenserver/models/compute/tunnels.rb +25 -0
- data/lib/fog/xenserver/models/compute/vbd.rb +3 -2
- data/lib/fog/xenserver/models/compute/vbd_metrics.rb +1 -1
- data/lib/fog/xenserver/models/compute/vdi.rb +4 -1
- data/lib/fog/xenserver/models/compute/vif.rb +11 -2
- data/lib/fog/xenserver/models/compute/vlan.rb +2 -1
- data/lib/fog/xenserver/models/compute/vmpp.rb +35 -0
- data/lib/fog/xenserver/models/compute/vmpps.rb +25 -0
- data/lib/fog/xenserver/models/compute/vtpm.rb +18 -0
- data/lib/fog/xenserver/models/compute/vtpms.rb +25 -0
- data/lib/fog/xenserver/requests/compute/reboot_server.rb +1 -1
- data/lib/tasks/changelog_task.rb +0 -1
- data/tests/aws/models/dns/record_tests.rb +1 -2
- data/tests/aws/models/dns/records_tests.rb +2 -7
- data/tests/aws/models/dns/zone_tests.rb +1 -1
- data/tests/aws/models/dns/zones_tests.rb +1 -1
- data/tests/aws/models/elb/model_tests.rb +10 -0
- data/tests/aws/models/storage/file_tests.rb +4 -0
- data/tests/aws/requests/compute/assign_private_ip_tests.rb +52 -0
- data/tests/aws/requests/compute/vpc_tests.rb +17 -1
- data/tests/aws/requests/dns/dns_tests.rb +1 -26
- data/tests/aws/requests/elb/load_balancer_tests.rb +6 -0
- data/tests/aws/requests/rds/{subnet_groups_test.rb → subnet_groups_tests.rb} +4 -0
- data/tests/aws/requests/storage/bucket_tests.rb +17 -0
- data/tests/aws/requests/storage/delete_multiple_objects_tests.rb +12 -0
- data/tests/brightbox/compute/schema.rb +0 -13
- data/tests/brightbox/models/compute/server_tests.rb +7 -9
- data/tests/brightbox/requests/compute/interface_tests.rb +7 -19
- data/tests/digitalocean/models/compute/server_tests.rb +4 -3
- data/tests/google/models/compute/disk_tests.rb +5 -0
- data/tests/google/models/compute/disks_tests.rb +5 -0
- data/tests/google/models/compute/server_tests.rb +5 -1
- data/tests/google/models/compute/servers_tests.rb +5 -0
- data/tests/google/requests/compute/disk_tests.rb +2 -1
- data/tests/google/requests/compute/firewall_tests.rb +1 -0
- data/tests/google/requests/compute/image_tests.rb +3 -0
- data/tests/google/requests/compute/network_tests.rb +1 -0
- data/tests/google/requests/compute/operation_tests.rb +1 -0
- data/tests/google/requests/compute/server_tests.rb +2 -3
- data/tests/google/requests/compute/zone_tests.rb +1 -6
- data/tests/helpers/collection_helper.rb +10 -2
- data/tests/helpers/mock_helper.rb +4 -5
- data/tests/local/models/directories_tests.rb +17 -0
- data/tests/openstack/models/compute/security_group_tests.rb +54 -0
- data/tests/openstack/requests/compute/security_group_tests.rb +22 -20
- data/tests/openstack/requests/network/network_tests.rb +8 -8
- data/tests/rackspace/compute_tests.rb +0 -5
- data/tests/rackspace/helper.rb +9 -4
- data/tests/rackspace/models/compute_v2/server_tests.rb +29 -1
- data/tests/rackspace/models/identity/service_catalog_tests.rb +87 -39
- data/tests/rackspace/models/queues/message_tests.rb +16 -0
- data/tests/rackspace/models/storage/file_tests.rb +29 -0
- data/tests/rackspace/requests/compute_v2/address_tests.rb +3 -1
- data/tests/rackspace/requests/compute_v2/metadata_tests.rb +4 -2
- data/tests/rackspace/requests/compute_v2/server_tests.rb +3 -6
- data/tests/vcloud_director/models/compute/media_tests.rb +18 -5
- data/tests/vcloud_director/models/compute/vapp_tests.rb +3 -1
- data/tests/vcloud_director/models/compute/vms_tests.rb +2 -1
- data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +19 -10
- data/tests/vcloud_director/requests/compute/network_tests.rb +64 -3
- data/tests/vcloud_director/requests/compute/query_tests.rb +67 -2
- data/tests/vsphere/requests/compute/set_vm_customvalue_tests.rb +21 -0
- metadata +112 -11
- data/fogkeytest1.pem +0 -27
- data/lib/fog/hp/README_HP.rdoc +0 -61
@@ -121,6 +121,7 @@ module Fog
|
|
121
121
|
},
|
122
122
|
'Instances' => [],
|
123
123
|
'ListenerDescriptions' => listeners,
|
124
|
+
'LoadBalancerAttributes' => {'CrossZoneLoadBalancing' => {'Enabled' => false}},
|
124
125
|
'LoadBalancerName' => lb_name,
|
125
126
|
'Policies' => {
|
126
127
|
'AppCookieStickinessPolicies' => [],
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELB
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/elb/describe_load_balancer_attributes'
|
7
|
+
|
8
|
+
# Describe the load balancer attributes
|
9
|
+
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DescribeLoadBalancerAttributes.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * lb_name<~String> - The mnemonic name associated with the LoadBalancer.
|
12
|
+
#
|
13
|
+
# ==== Returns
|
14
|
+
# * response<~Excon::Response>:
|
15
|
+
# * body<~Hash>:
|
16
|
+
# * 'ResponseMetadata'<~Hash>:
|
17
|
+
# * 'RequestId'<~String> - Id of request
|
18
|
+
# * 'DescribeLoadBalancerAttributesResult'<~Hash>:
|
19
|
+
# * 'LoadBalancerAttributes'<~Hash>
|
20
|
+
# * 'CrossZoneLoadBalancing'<~Hash>
|
21
|
+
# * 'Enabled'<~Boolean> - whether crosszone load balancing is enabled
|
22
|
+
def describe_load_balancer_attributes(lb_name)
|
23
|
+
request({
|
24
|
+
'Action' => 'DescribeLoadBalancerAttributes',
|
25
|
+
'LoadBalancerName' => lb_name,
|
26
|
+
:parser => Fog::Parsers::AWS::ELB::DescribeLoadBalancerAttributes.new
|
27
|
+
})
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
class Mock
|
33
|
+
def describe_load_balancer_attributes(lb_name = nil, names = [])
|
34
|
+
raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
|
35
|
+
attributes = load_balancer['LoadBalancerAttributes']
|
36
|
+
|
37
|
+
response = Excon::Response.new
|
38
|
+
response.status = 200
|
39
|
+
|
40
|
+
response.body = {
|
41
|
+
'ResponseMetadata' => {
|
42
|
+
'RequestId' => Fog::AWS::Mock.request_id
|
43
|
+
},
|
44
|
+
'DescribeLoadBalancerAttributesResult' => {
|
45
|
+
'LoadBalancerAttributes' => attributes
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
response
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class ELB
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/elb/empty'
|
7
|
+
|
8
|
+
|
9
|
+
# Sets attributes of the load balancer
|
10
|
+
#
|
11
|
+
# Currently the only attribute that can be set is whether CrossZoneLoadBalancing
|
12
|
+
# is enabled
|
13
|
+
#
|
14
|
+
# http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_ModifyLoadBalancerAttributes.html
|
15
|
+
# ==== Parameters
|
16
|
+
# * lb_name<~String> - Name of the ELB
|
17
|
+
# * options<~Hash>
|
18
|
+
# * 'CrossZoneLoadBalancing'<~Hash>:
|
19
|
+
# * 'Enabled'<~Boolean> whether to enable cross zone load balancing
|
20
|
+
#
|
21
|
+
# ==== Returns
|
22
|
+
# * response<~Excon::Response>:
|
23
|
+
# * body<~Hash>:
|
24
|
+
# * 'ResponseMetadata'<~Hash>:
|
25
|
+
# * 'RequestId'<~String> - Id of request
|
26
|
+
def modify_load_balancer_attributes(lb_name, options)
|
27
|
+
attributes = Fog::AWS.serialize_keys 'LoadBalancerAttributes', options
|
28
|
+
request(attributes.merge(
|
29
|
+
'Action' => 'ModifyLoadBalancerAttributes',
|
30
|
+
'LoadBalancerName' => lb_name,
|
31
|
+
:parser => Fog::Parsers::AWS::ELB::Empty.new
|
32
|
+
))
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
class Mock
|
38
|
+
def modify_load_balancer_attributes(lb_name, attributes)
|
39
|
+
raise Fog::AWS::ELB::NotFound unless load_balancer = self.data[:load_balancers][lb_name]
|
40
|
+
|
41
|
+
if attributes['CrossZoneLoadBalancing']
|
42
|
+
load_balancer['LoadBalancerAttributes'].merge! attributes
|
43
|
+
end
|
44
|
+
|
45
|
+
response = Excon::Response.new
|
46
|
+
|
47
|
+
response.status = 200
|
48
|
+
response.body = {
|
49
|
+
"ResponseMetadata" => {
|
50
|
+
"RequestId" => Fog::AWS::Mock.request_id
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
response
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -26,6 +26,7 @@ module Fog
|
|
26
26
|
# @param PreferredMaintenanceWindow [String] The weekly time range (in UTC) during which system maintenance can occur, which may result in an outage
|
27
27
|
# @param DBSubnetGroupName [String] The name, if any, of the VPC subnet for this RDS instance
|
28
28
|
# @param PubliclyAcccesible [Boolean] Whether an RDS instance inside of the VPC subnet should have a public-facing endpoint
|
29
|
+
# @param VpcSecurityGroups [Array] A list of VPC Security Groups to authorize on this DB instance
|
29
30
|
#
|
30
31
|
# @return [Excon::Response]:
|
31
32
|
# * body [Hash]:
|
@@ -37,6 +38,10 @@ module Fog
|
|
37
38
|
options.merge!(Fog::AWS.indexed_param('DBSecurityGroups.member.%d', [*security_groups]))
|
38
39
|
end
|
39
40
|
|
41
|
+
if vpc_security_groups = options.delete('VpcSecurityGroups')
|
42
|
+
options.merge!(Fog::AWS.indexed_param('VpcSecurityGroupIds.member.%d', [*vpc_security_groups]))
|
43
|
+
end
|
44
|
+
|
40
45
|
request({
|
41
46
|
'Action' => 'CreateDBInstance',
|
42
47
|
'DBInstanceIdentifier' => db_name,
|
@@ -105,7 +110,8 @@ module Fog
|
|
105
110
|
# "LatestRestorableTime" => nil,
|
106
111
|
"AvailabilityZone" => options["AvailabilityZone"],
|
107
112
|
"DBSubnetGroupName" => options["DBSubnetGroupName"],
|
108
|
-
"PubliclyAccessible" => options["PubliclyAccessible"]
|
113
|
+
"PubliclyAccessible" => options["PubliclyAccessible"],
|
114
|
+
"VpcSecurityGroups" => options["VpcSecurityGroups"],
|
109
115
|
}
|
110
116
|
|
111
117
|
|
@@ -33,7 +33,13 @@ module Fog
|
|
33
33
|
raise Fog::AWS::RDS::IdentifierTaken.new("DBSubnetGroupAlreadyExists => The subnet group '#{name}' already exists")
|
34
34
|
end
|
35
35
|
|
36
|
-
|
36
|
+
# collection = Fog::Compute::AWS.new(:aws_access_key_id => 'mock key', :aws_secret_access_key => 'mock secret')
|
37
|
+
collection = Fog::Compute[:aws]
|
38
|
+
subnets = subnet_ids.map do |snid|
|
39
|
+
subnet = collection.subnets.get(snid)
|
40
|
+
raise Fog::AWS::RDS::NotFound.new("InvalidSubnet => The subnet '#{snid}' was not found") if subnet.nil?
|
41
|
+
subnet
|
42
|
+
end
|
37
43
|
vpc_id = subnets.first.vpc_id
|
38
44
|
|
39
45
|
data = {
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Fog
|
2
|
+
module AWS
|
3
|
+
class RDS
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/aws/parsers/rds/delete_db_subnet_group'
|
7
|
+
|
8
|
+
# Deletes a db subnet group
|
9
|
+
# http://docs.aws.amazon.com/AmazonRDS/2013-09-09/APIReference/API_DeleteDBSubnetGroup.html
|
10
|
+
# ==== Parameters
|
11
|
+
# * DBSubnetGroupName <~String> - The name for the DB Subnet Group. This value is stored as a lowercase string. Must contain no more than 255 alphanumeric characters or hyphens. Must not be "Default".
|
12
|
+
# ==== Returns
|
13
|
+
# * response<~Excon::Response>:
|
14
|
+
# * body<~Hash>:
|
15
|
+
def delete_db_subnet_group(name)
|
16
|
+
params = { 'Action' => 'DeleteDBSubnetGroup',
|
17
|
+
'DBSubnetGroupName' => name,
|
18
|
+
:parser => Fog::Parsers::AWS::RDS::DeleteDBSubnetGroup.new }
|
19
|
+
request(params)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
class Mock
|
25
|
+
|
26
|
+
def delete_db_subnet_group(name)
|
27
|
+
response = Excon::Response.new
|
28
|
+
unless self.data[:subnet_groups] && self.data[:subnet_groups][name]
|
29
|
+
raise Fog::AWS::RDS::NotFound.new("DBSubnetGroupNotFound => The subnet group '#{name}' doesn't exists")
|
30
|
+
end
|
31
|
+
|
32
|
+
response.body = {
|
33
|
+
'ResponseMetadata'=>{ 'RequestId'=> Fog::AWS::Mock.request_id },
|
34
|
+
'return' => true,
|
35
|
+
}
|
36
|
+
response
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -32,9 +32,10 @@ module Fog
|
|
32
32
|
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/multiobjectdeleteapi.html
|
33
33
|
|
34
34
|
def delete_multiple_objects(bucket_name, object_names, options = {})
|
35
|
+
headers = options.dup
|
35
36
|
data = "<Delete>"
|
36
|
-
data << "<Quiet>true</Quiet>" if
|
37
|
-
version_ids =
|
37
|
+
data << "<Quiet>true</Quiet>" if headers.delete(:quiet)
|
38
|
+
version_ids = headers.delete('versionId')
|
38
39
|
object_names.each do |object_name|
|
39
40
|
data << "<Object>"
|
40
41
|
data << "<Key>#{CGI.escapeHTML(object_name)}</Key>"
|
@@ -46,7 +47,6 @@ module Fog
|
|
46
47
|
end
|
47
48
|
data << "</Delete>"
|
48
49
|
|
49
|
-
headers = options
|
50
50
|
headers['Content-Length'] = data.length
|
51
51
|
headers['Content-MD5'] = Base64.encode64(Digest::MD5.digest(data)).
|
52
52
|
gsub("\n", '')
|
@@ -67,11 +67,13 @@ module Fog
|
|
67
67
|
class Mock # :nodoc:all
|
68
68
|
|
69
69
|
def delete_multiple_objects(bucket_name, object_names, options = {})
|
70
|
+
headers = options.dup
|
71
|
+
headers.delete(:quiet)
|
70
72
|
response = Excon::Response.new
|
71
73
|
if bucket = self.data[:buckets][bucket_name]
|
72
74
|
response.status = 200
|
73
75
|
response.body = { 'DeleteResult' => [] }
|
74
|
-
version_ids =
|
76
|
+
version_ids = headers.delete('versionId')
|
75
77
|
object_names.each do |object_name|
|
76
78
|
object_version = version_ids.nil? ? nil : version_ids[object_name]
|
77
79
|
response.body['DeleteResult'] << delete_object_helper(bucket,
|
@@ -62,8 +62,11 @@ DATA
|
|
62
62
|
else
|
63
63
|
bucket['LocationConstraint'] = nil
|
64
64
|
end
|
65
|
-
|
65
|
+
if !self.data[:buckets][bucket_name] || self.region == 'us-east-1'
|
66
66
|
self.data[:buckets][bucket_name] = bucket
|
67
|
+
else
|
68
|
+
response.status = 409
|
69
|
+
raise(Excon::Errors.status_error({:expects => 200}, response))
|
67
70
|
end
|
68
71
|
response
|
69
72
|
end
|
data/lib/fog/aws/sqs.rb
CHANGED
@@ -4,7 +4,7 @@ module Fog
|
|
4
4
|
module AWS
|
5
5
|
class SQS < Fog::Service
|
6
6
|
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
7
|
-
|
7
|
+
|
8
8
|
requires :aws_access_key_id, :aws_secret_access_key
|
9
9
|
recognizes :region, :host, :path, :port, :scheme, :persistent, :aws_session_token, :use_iam_profile, :aws_credentials_expire_at
|
10
10
|
|
@@ -30,7 +30,7 @@ module Fog
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
|
-
|
33
|
+
|
34
34
|
def self.reset
|
35
35
|
@data = nil
|
36
36
|
end
|
@@ -123,9 +123,7 @@ module Fog
|
|
123
123
|
:aws_access_key_id => @aws_access_key_id,
|
124
124
|
:aws_session_token => @aws_session_token,
|
125
125
|
:hmac => @hmac,
|
126
|
-
:host => @host,
|
127
126
|
:path => path || @path,
|
128
|
-
:port => @port,
|
129
127
|
:version => '2009-02-01'
|
130
128
|
}
|
131
129
|
)
|
data/lib/fog/aws/storage.rb
CHANGED
@@ -140,6 +140,10 @@ module Fog
|
|
140
140
|
|
141
141
|
def signed_url(params, expires)
|
142
142
|
expires = expires.to_i
|
143
|
+
if @aws_session_token
|
144
|
+
params[:headers]||= {}
|
145
|
+
params[:headers]['x-amz-security-token'] = @aws_session_token
|
146
|
+
end
|
143
147
|
signature = signature(params, expires)
|
144
148
|
params = request_params(params)
|
145
149
|
|
@@ -174,6 +178,14 @@ module Fog
|
|
174
178
|
|
175
179
|
# NOTE: differs from Fog::AWS.escape by NOT escaping `/`
|
176
180
|
def escape(string)
|
181
|
+
unless @unf_loaded_or_warned
|
182
|
+
begin
|
183
|
+
require('unf/normalizer')
|
184
|
+
rescue LoadError
|
185
|
+
Fog::Logger.warning("Unable to load the 'unf' gem. Your AWS strings may not be properly encoded.")
|
186
|
+
end
|
187
|
+
@unf_loaded_or_warned = true
|
188
|
+
end
|
177
189
|
string = defined?(::UNF::Normalizer) ? ::UNF::Normalizer.normalize(string, :nfc) : string
|
178
190
|
string.gsub(/([^a-zA-Z0-9_.\-~\/]+)/) {
|
179
191
|
"%" + $1.unpack("H2" * $1.bytesize).join("%").upcase
|
@@ -405,6 +417,8 @@ module Fog
|
|
405
417
|
@connection_options = options[:connection_options] || {}
|
406
418
|
@persistent = options.fetch(:persistent, false)
|
407
419
|
|
420
|
+
@path_style = options[:path_style] || false
|
421
|
+
|
408
422
|
if @endpoint = options[:endpoint]
|
409
423
|
endpoint = URI.parse(@endpoint)
|
410
424
|
@host = endpoint.host
|
@@ -415,7 +429,6 @@ module Fog
|
|
415
429
|
@host = options[:host] || region_to_host(@region)
|
416
430
|
@scheme = options[:scheme] || DEFAULT_SCHEME
|
417
431
|
@port = options[:port] || DEFAULT_SCHEME_PORT[@scheme]
|
418
|
-
@path_style = options[:path_style] || false
|
419
432
|
end
|
420
433
|
end
|
421
434
|
|
data/lib/fog/bluebox/compute.rb
CHANGED
@@ -166,7 +166,7 @@ module Fog
|
|
166
166
|
_request
|
167
167
|
end
|
168
168
|
|
169
|
-
|
169
|
+
private
|
170
170
|
|
171
171
|
def _request
|
172
172
|
raise Fog::Errors::MockNotImplemented
|
@@ -236,7 +236,7 @@ module Fog
|
|
236
236
|
_wrapped_request(method, path, expected_responses, parameters)
|
237
237
|
end
|
238
238
|
|
239
|
-
|
239
|
+
private
|
240
240
|
|
241
241
|
# Wrapped request is the non-standard form of request introduced by mistake
|
242
242
|
#
|
@@ -256,20 +256,18 @@ module Fog
|
|
256
256
|
|
257
257
|
# Select the account to scope for this request
|
258
258
|
account = scoped_account(parameters.fetch(:account_id, nil))
|
259
|
-
if account
|
260
|
-
request_options[:query] = { :account_id => account }
|
261
|
-
end
|
259
|
+
request_options[:query] = { :account_id => account } if account
|
262
260
|
|
263
261
|
request_options[:body] = Fog::JSON.encode(parameters) unless parameters.empty?
|
264
262
|
|
265
263
|
response = make_request(request_options)
|
266
264
|
|
267
|
-
# FIXME We should revert to returning the Excon::Request after a suitable
|
265
|
+
# FIXME: We should revert to returning the Excon::Request after a suitable
|
268
266
|
# configuration option is in place to switch back to this incorrect behaviour
|
269
|
-
|
270
|
-
Fog::JSON.decode(response.body)
|
271
|
-
else
|
267
|
+
if response.body.empty?
|
272
268
|
response
|
269
|
+
else
|
270
|
+
Fog::JSON.decode(response.body)
|
273
271
|
end
|
274
272
|
end
|
275
273
|
|
@@ -32,7 +32,7 @@ module Fog
|
|
32
32
|
img["official"] == true &&
|
33
33
|
img["arch"] == "i686" &&
|
34
34
|
img["name"] =~ /ubuntu/i
|
35
|
-
end.sort do |a,b|
|
35
|
+
end.sort do |a, b|
|
36
36
|
# Reverse sort so "raring" > "precise" and "13.10" > "13.04"
|
37
37
|
b["name"].downcase <=> a["name"].downcase
|
38
38
|
end.first["id"]
|
@@ -63,7 +63,7 @@ module Fog
|
|
63
63
|
# Request account can be changed at anytime and changes behaviour of future requests
|
64
64
|
@scoped_account = @configured_account
|
65
65
|
|
66
|
-
credential_options = {:username => username, :password => password}
|
66
|
+
credential_options = { :username => username, :password => password }
|
67
67
|
@credentials = CredentialSet.new(client_id, client_secret, credential_options)
|
68
68
|
|
69
69
|
# If existing tokens have been cached, allow continued use of them in the service
|
@@ -175,7 +175,7 @@ module Fog
|
|
175
175
|
@default_image_id = Fog.credentials[:brightbox_default_image] || select_default_image
|
176
176
|
end
|
177
177
|
|
178
|
-
|
178
|
+
private
|
179
179
|
|
180
180
|
# This makes a request of the API based on the configured setting for
|
181
181
|
# token management.
|
@@ -200,13 +200,11 @@ module Fog
|
|
200
200
|
#
|
201
201
|
# @return [Excon::Response]
|
202
202
|
def managed_token_request(options)
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
response = authenticated_request(options)
|
209
|
-
end
|
203
|
+
get_access_token unless access_token_available?
|
204
|
+
authenticated_request(options)
|
205
|
+
rescue Excon::Errors::Unauthorized
|
206
|
+
get_access_token
|
207
|
+
authenticated_request(options)
|
210
208
|
end
|
211
209
|
|
212
210
|
# This request makes an authenticated request of the API using currently
|
@@ -221,7 +219,7 @@ module Fog
|
|
221
219
|
headers = options[:headers] || {}
|
222
220
|
headers.merge!("Authorization" => "OAuth #{@credentials.access_token}", "Content-Type" => "application/json")
|
223
221
|
options[:headers] = headers
|
224
|
-
# TODO This is just a wrapper around a call to Excon::Connection#request
|
222
|
+
# TODO: This is just a wrapper around a call to Excon::Connection#request
|
225
223
|
# so can be extracted from Compute by passing in the connection,
|
226
224
|
# credentials and options
|
227
225
|
@connection.request(options)
|