fog 1.10.0 → 1.10.1
Sign up to get free protection for your applications and to get access to all the features.
- data/benchs/load_times.rb +31 -0
- data/changelog.txt +320 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +42 -15
- data/lib/fog/aws/auto_scaling.rb +1 -1
- data/lib/fog/aws/beanstalk.rb +1 -1
- data/lib/fog/aws/cloud_formation.rb +1 -1
- data/lib/fog/aws/compute.rb +1 -1
- data/lib/fog/aws/elasticache.rb +1 -1
- data/lib/fog/aws/elb.rb +1 -1
- data/lib/fog/aws/iam.rb +1 -1
- data/lib/fog/aws/models/beanstalk/environment.rb +6 -2
- data/lib/fog/aws/models/cdn/distributions.rb +2 -1
- data/lib/fog/aws/models/cdn/distributions_helper.rb +2 -1
- data/lib/fog/aws/models/cdn/streaming_distributions.rb +2 -1
- data/lib/fog/aws/models/compute/server.rb +1 -1
- data/lib/fog/aws/models/storage/directory.rb +1 -1
- data/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/fog/aws/parsers/beanstalk/describe_environment_resources.rb +11 -0
- data/lib/fog/aws/rds.rb +1 -1
- data/lib/fog/aws/requests/cdn/delete_distribution.rb +5 -7
- data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +5 -7
- data/lib/fog/aws/requests/cdn/get_distribution.rb +28 -31
- data/lib/fog/aws/requests/cdn/get_distribution_list.rb +29 -33
- data/lib/fog/aws/requests/cdn/get_invalidation.rb +15 -13
- data/lib/fog/aws/requests/cdn/get_invalidation_list.rb +15 -17
- data/lib/fog/aws/requests/cdn/get_streaming_distribution.rb +23 -26
- data/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb +29 -33
- data/lib/fog/aws/requests/cdn/post_distribution.rb +40 -42
- data/lib/fog/aws/requests/cdn/post_invalidation.rb +14 -18
- data/lib/fog/aws/requests/cdn/post_streaming_distribution.rb +28 -30
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +41 -43
- data/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb +31 -33
- data/lib/fog/aws/requests/cloud_formation/create_stack.rb +16 -20
- data/lib/fog/aws/requests/cloud_formation/delete_stack.rb +5 -8
- data/lib/fog/aws/requests/cloud_formation/describe_stack_events.rb +19 -22
- data/lib/fog/aws/requests/cloud_formation/describe_stack_resources.rb +18 -21
- data/lib/fog/aws/requests/cloud_formation/describe_stacks.rb +18 -21
- data/lib/fog/aws/requests/cloud_formation/get_template.rb +7 -10
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +12 -16
- data/lib/fog/aws/requests/cloud_formation/validate_template.rb +9 -12
- data/lib/fog/aws/requests/compute/associate_address.rb +13 -7
- data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +16 -2
- data/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -2
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +10 -0
- data/lib/fog/aws/requests/iam/update_server_certificate.rb +27 -0
- data/lib/fog/aws/requests/storage/get_object.rb +6 -2
- data/lib/fog/aws/storage.rb +6 -4
- data/lib/fog/aws/sts.rb +1 -1
- data/lib/fog/bin.rb +2 -0
- data/lib/fog/bin/digitalocean.rb +31 -0
- data/lib/fog/bin/riakcs.rb +27 -0
- data/lib/fog/cloudstack/compute.rb +3 -0
- data/lib/fog/cloudstack/models/compute/snapshot.rb +46 -0
- data/lib/fog/cloudstack/models/compute/snapshots.rb +25 -0
- data/lib/fog/cloudstack/requests/compute/create_snapshot.rb +24 -0
- data/lib/fog/compute.rb +3 -0
- data/lib/fog/compute/models/server.rb +6 -7
- data/lib/fog/core.rb +10 -5
- data/lib/fog/core/errors.rb +2 -0
- data/lib/fog/core/scp.rb +3 -3
- data/lib/fog/core/ssh.rb +1 -1
- data/lib/fog/digitalocean.rb +9 -0
- data/lib/fog/digitalocean/CHANGELOG.md +6 -0
- data/lib/fog/digitalocean/compute.rb +107 -0
- data/lib/fog/digitalocean/examples/getting_started.md +106 -0
- data/lib/fog/digitalocean/models/compute/flavor.rb +14 -0
- data/lib/fog/digitalocean/models/compute/flavors.rb +25 -0
- data/lib/fog/digitalocean/models/compute/image.rb +15 -0
- data/lib/fog/digitalocean/models/compute/images.rb +25 -0
- data/lib/fog/digitalocean/models/compute/region.rb +14 -0
- data/lib/fog/digitalocean/models/compute/regions.rb +25 -0
- data/lib/fog/digitalocean/models/compute/server.rb +150 -0
- data/lib/fog/digitalocean/models/compute/servers.rb +27 -0
- data/lib/fog/digitalocean/models/compute/ssh_key.rb +28 -0
- data/lib/fog/digitalocean/models/compute/ssh_keys.rb +27 -0
- data/lib/fog/digitalocean/requests/compute/create_server.rb +68 -0
- data/lib/fog/digitalocean/requests/compute/create_ssh_key.rb +38 -0
- data/lib/fog/digitalocean/requests/compute/destroy_server.rb +34 -0
- data/lib/fog/digitalocean/requests/compute/destroy_ssh_key.rb +37 -0
- data/lib/fog/digitalocean/requests/compute/get_server_details.rb +35 -0
- data/lib/fog/digitalocean/requests/compute/get_ssh_key.rb +39 -0
- data/lib/fog/digitalocean/requests/compute/list_flavors.rb +38 -0
- data/lib/fog/digitalocean/requests/compute/list_images.rb +49 -0
- data/lib/fog/digitalocean/requests/compute/list_regions.rb +34 -0
- data/lib/fog/digitalocean/requests/compute/list_servers.rb +31 -0
- data/lib/fog/digitalocean/requests/compute/list_ssh_keys.rb +31 -0
- data/lib/fog/digitalocean/requests/compute/power_cycle_server.rb +33 -0
- data/lib/fog/digitalocean/requests/compute/power_off_server.rb +33 -0
- data/lib/fog/digitalocean/requests/compute/power_on_server.rb +33 -0
- data/lib/fog/digitalocean/requests/compute/reboot_server.rb +33 -0
- data/lib/fog/digitalocean/requests/compute/shutdown_server.rb +36 -0
- data/lib/fog/dreamhost/CHANGELOG.md +8 -0
- data/lib/fog/glesys/models/compute/server.rb +3 -3
- data/lib/fog/google/storage.rb +1 -1
- data/lib/fog/hp.rb +1 -1
- data/lib/fog/hp/CHANGELOG.hp +12 -2
- data/lib/fog/hp/block_storage.rb +1 -0
- data/lib/fog/hp/cdn.rb +1 -0
- data/lib/fog/hp/compute.rb +1 -0
- data/lib/fog/hp/models/compute/server.rb +14 -8
- data/lib/fog/hp/models/storage/directories.rb +1 -1
- data/lib/fog/hp/models/storage/directory.rb +28 -3
- data/lib/fog/hp/models/storage/files.rb +1 -1
- data/lib/fog/hp/requests/compute/create_server.rb +4 -14
- data/lib/fog/hp/storage.rb +2 -0
- data/lib/fog/internet_archive.rb +3 -1
- data/lib/fog/internet_archive/models/storage/directory.rb +25 -42
- data/lib/fog/internet_archive/models/storage/file.rb +45 -64
- data/lib/fog/internet_archive/models/storage/ia_attributes.rb +39 -0
- data/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb +4 -78
- data/lib/fog/internet_archive/requests/storage/delete_object.rb +2 -70
- data/lib/fog/internet_archive/requests/storage/get_object.rb +1 -22
- data/lib/fog/internet_archive/requests/storage/get_object_acl.rb +0 -4
- data/lib/fog/internet_archive/requests/storage/get_service.rb +1 -2
- data/lib/fog/internet_archive/requests/storage/head_object.rb +0 -4
- data/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb +1 -1
- data/lib/fog/internet_archive/requests/storage/put_object.rb +2 -17
- data/lib/fog/internet_archive/requests/storage/put_object_acl.rb +0 -5
- data/lib/fog/internet_archive/storage.rb +6 -18
- data/lib/fog/joyent.rb +2 -0
- data/lib/fog/libvirt/requests/compute/get_node_info.rb +1 -1
- data/lib/fog/openstack/CHANGELOG.md +47 -0
- data/lib/fog/openstack/examples/identity/basics.rb +69 -0
- data/lib/fog/openstack/examples/image/upload-test-image.rb +77 -0
- data/lib/fog/openstack/examples/network/network_subnets_routers.rb +63 -0
- data/lib/fog/openstack/examples/storage/set-account-quota.rb +66 -0
- data/lib/fog/openstack/image.rb +4 -0
- data/lib/fog/openstack/models/compute/server.rb +4 -2
- data/lib/fog/openstack/models/network/floating_ip.rb +2 -2
- data/lib/fog/openstack/models/network/floating_ips.rb +1 -1
- data/lib/fog/openstack/models/network/router.rb +56 -0
- data/lib/fog/openstack/models/network/routers.rb +34 -0
- data/lib/fog/openstack/network.rb +15 -2
- data/lib/fog/openstack/requests/compute/create_server.rb +11 -0
- data/lib/fog/openstack/requests/compute/rebuild_server.rb +9 -1
- data/lib/fog/openstack/requests/network/add_router_interface.rb +48 -0
- data/lib/fog/openstack/requests/network/create_network.rb +57 -2
- data/lib/fog/openstack/requests/network/create_router.rb +57 -0
- data/lib/fog/openstack/requests/network/delete_router.rb +30 -0
- data/lib/fog/openstack/requests/network/get_router.rb +32 -0
- data/lib/fog/openstack/requests/network/list_routers.rb +27 -0
- data/lib/fog/openstack/requests/network/remove_router_interface.rb +36 -0
- data/lib/fog/openstack/requests/network/update_router.rb +85 -0
- data/lib/fog/openstack/storage.rb +57 -0
- data/lib/fog/ovirt/compute.rb +4 -0
- data/lib/fog/ovirt/models/compute/quota.rb +21 -0
- data/lib/fog/ovirt/models/compute/quotas.rb +24 -0
- data/lib/fog/ovirt/models/compute/server.rb +2 -1
- data/lib/fog/ovirt/models/compute/volume.rb +1 -0
- data/lib/fog/ovirt/requests/compute/get_quota.rb +19 -0
- data/lib/fog/ovirt/requests/compute/list_quotas.rb +21 -0
- data/lib/fog/ovirt/requests/compute/mock_files/quotas.xml +7 -0
- data/lib/fog/rackspace.rb +11 -0
- data/lib/fog/rackspace/block_storage.rb +73 -20
- data/lib/fog/rackspace/cdn.rb +57 -19
- data/lib/fog/rackspace/compute.rb +53 -28
- data/lib/fog/rackspace/compute_v2.rb +99 -22
- data/lib/fog/rackspace/databases.rb +74 -18
- data/lib/fog/rackspace/dns.rb +55 -22
- data/lib/fog/rackspace/docs/block_storage.md +417 -0
- data/lib/fog/rackspace/docs/compute_v2.md +114 -55
- data/lib/fog/rackspace/docs/getting_started.md +20 -10
- data/lib/fog/rackspace/docs/storage.md +496 -0
- data/lib/fog/rackspace/examples/README.md +1 -1
- data/lib/fog/rackspace/examples/block_storage/create_snapshot.rb +118 -0
- data/lib/fog/rackspace/examples/block_storage/create_volume.rb +58 -0
- data/lib/fog/rackspace/examples/block_storage/delete_volume.rb +53 -0
- data/lib/fog/rackspace/examples/compute_v2/create_image.rb +2 -2
- data/lib/fog/rackspace/examples/compute_v2/create_server.rb +1 -1
- data/lib/fog/rackspace/examples/compute_v2/delete_image.rb +2 -2
- data/lib/fog/rackspace/examples/compute_v2/delete_server.rb +2 -2
- data/lib/fog/rackspace/examples/compute_v2/detach_volume.rb +4 -4
- data/lib/fog/rackspace/examples/compute_v2/resize_server.rb +2 -2
- data/lib/fog/rackspace/examples/compute_v2/server_attachments.rb +3 -3
- data/lib/fog/rackspace/examples/compute_v2/server_metadata.rb +2 -2
- data/lib/fog/rackspace/examples/storage/create_cdn_directory.rb +44 -0
- data/lib/fog/rackspace/examples/storage/create_private_directory.rb +46 -0
- data/lib/fog/rackspace/examples/storage/delete_directory.rb +62 -0
- data/lib/fog/rackspace/examples/storage/delete_file.rb +70 -0
- data/lib/fog/rackspace/examples/storage/download_file.rb +75 -0
- data/lib/fog/rackspace/examples/storage/lorem.txt +1 -0
- data/lib/fog/rackspace/examples/storage/storage_metadata.rb +82 -0
- data/lib/fog/rackspace/examples/storage/upload_file.rb +45 -0
- data/lib/fog/rackspace/identity.rb +10 -3
- data/lib/fog/rackspace/load_balancers.rb +76 -18
- data/lib/fog/rackspace/models/block_storage/snapshot.rb +42 -0
- data/lib/fog/rackspace/models/block_storage/snapshots.rb +15 -0
- data/lib/fog/rackspace/models/block_storage/volume.rb +65 -0
- data/lib/fog/rackspace/models/block_storage/volume_type.rb +6 -0
- data/lib/fog/rackspace/models/block_storage/volume_types.rb +15 -0
- data/lib/fog/rackspace/models/block_storage/volumes.rb +15 -0
- data/lib/fog/rackspace/models/compute_v2/attachment.rb +8 -0
- data/lib/fog/rackspace/models/compute_v2/attachments.rb +9 -1
- data/lib/fog/rackspace/models/compute_v2/flavors.rb +9 -1
- data/lib/fog/rackspace/models/compute_v2/image.rb +10 -2
- data/lib/fog/rackspace/models/compute_v2/images.rb +9 -1
- data/lib/fog/rackspace/models/compute_v2/meta_parent.rb +1 -1
- data/lib/fog/rackspace/models/compute_v2/metadata.rb +17 -5
- data/lib/fog/rackspace/models/compute_v2/metadatum.rb +8 -0
- data/lib/fog/rackspace/models/compute_v2/server.rb +72 -13
- data/lib/fog/rackspace/models/compute_v2/servers.rb +16 -2
- data/lib/fog/rackspace/models/dns/zones.rb +5 -9
- data/lib/fog/rackspace/models/identity/service_catalog.rb +83 -0
- data/lib/fog/rackspace/models/storage/account.rb +26 -0
- data/lib/fog/rackspace/models/storage/directories.rb +23 -3
- data/lib/fog/rackspace/models/storage/directory.rb +89 -5
- data/lib/fog/rackspace/models/storage/file.rb +112 -2
- data/lib/fog/rackspace/models/storage/files.rb +78 -0
- data/lib/fog/rackspace/models/storage/metadata.rb +28 -5
- data/lib/fog/rackspace/requests/block_storage/create_snapshot.rb +24 -0
- data/lib/fog/rackspace/requests/block_storage/create_volume.rb +29 -0
- data/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb +10 -0
- data/lib/fog/rackspace/requests/block_storage/delete_volume.rb +11 -0
- data/lib/fog/rackspace/requests/block_storage/get_snapshot.rb +20 -0
- data/lib/fog/rackspace/requests/block_storage/get_volume.rb +24 -0
- data/lib/fog/rackspace/requests/block_storage/get_volume_type.rb +14 -0
- data/lib/fog/rackspace/requests/block_storage/list_snapshots.rb +17 -0
- data/lib/fog/rackspace/requests/block_storage/list_volume_types.rb +13 -0
- data/lib/fog/rackspace/requests/block_storage/list_volumes.rb +21 -0
- data/lib/fog/rackspace/requests/cdn/delete_object.rb +5 -1
- data/lib/fog/rackspace/requests/cdn/get_containers.rb +5 -0
- data/lib/fog/rackspace/requests/cdn/head_container.rb +5 -0
- data/lib/fog/rackspace/requests/cdn/post_container.rb +6 -1
- data/lib/fog/rackspace/requests/cdn/put_container.rb +6 -1
- data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/create_image.rb +9 -4
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +9 -5
- data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/get_image.rb +5 -1
- data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/get_server.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_images.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +8 -4
- data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +6 -1
- data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +8 -3
- data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/update_server.rb +4 -0
- data/lib/fog/rackspace/requests/storage/copy_object.rb +4 -0
- data/lib/fog/rackspace/requests/storage/delete_container.rb +4 -1
- data/lib/fog/rackspace/requests/storage/delete_object.rb +4 -1
- data/lib/fog/rackspace/requests/storage/get_container.rb +4 -0
- data/lib/fog/rackspace/requests/storage/get_containers.rb +4 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +4 -1
- data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +7 -4
- data/lib/fog/rackspace/requests/storage/head_container.rb +4 -0
- data/lib/fog/rackspace/requests/storage/head_containers.rb +4 -0
- data/lib/fog/rackspace/requests/storage/head_object.rb +4 -1
- data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +4 -1
- data/lib/fog/rackspace/requests/storage/put_container.rb +4 -1
- data/lib/fog/rackspace/requests/storage/put_object.rb +4 -1
- data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +4 -1
- data/lib/fog/rackspace/service.rb +78 -0
- data/lib/fog/rackspace/storage.rb +62 -22
- data/lib/fog/riakcs.rb +122 -0
- data/lib/fog/riakcs/provisioning.rb +100 -0
- data/lib/fog/riakcs/requests/provisioning/create_user.rb +77 -0
- data/lib/fog/riakcs/requests/provisioning/disable_user.rb +23 -0
- data/lib/fog/riakcs/requests/provisioning/enable_user.rb +23 -0
- data/lib/fog/riakcs/requests/provisioning/get_user.rb +41 -0
- data/lib/fog/riakcs/requests/provisioning/list_users.rb +43 -0
- data/lib/fog/riakcs/requests/provisioning/regrant_secret.rb +23 -0
- data/lib/fog/riakcs/requests/provisioning/update_user.rb +23 -0
- data/lib/fog/riakcs/requests/usage/get_usage.rb +68 -0
- data/lib/fog/riakcs/usage.rb +66 -0
- data/lib/fog/vcloud/compute.rb +1 -1
- data/lib/fog/vcloud/models/compute/catalog_item.rb +8 -0
- data/lib/fog/vcloud/models/compute/server.rb +1 -0
- data/lib/fog/vcloud/requests/compute/configure_vm_network.rb +1 -2
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +1 -1
- data/lib/fog/vsphere/models/compute/servers.rb +9 -9
- data/lib/fog/xenserver.rb +2 -0
- data/lib/fog/xenserver/CHANGELOG.md +7 -1
- data/lib/fog/xenserver/compute.rb +6 -0
- data/lib/fog/xenserver/examples/networks-and-vlans.rb +45 -0
- data/lib/fog/xenserver/models/compute/network.rb +33 -0
- data/lib/fog/xenserver/models/compute/vlan.rb +80 -0
- data/lib/fog/xenserver/models/compute/vlans.rb +39 -0
- data/lib/fog/xenserver/requests/compute/create_network.rb +42 -0
- data/lib/fog/xenserver/requests/compute/create_vlan.rb +35 -0
- data/lib/fog/xenserver/requests/compute/destroy_network.rb +33 -0
- data/lib/fog/xenserver/requests/compute/destroy_vlan.rb +32 -0
- data/lib/fog/zerigo/models/dns/records.rb +15 -12
- data/lib/tasks/changelog_task.rb +1 -0
- data/tests/aws/requests/compute/address_tests.rb +4 -0
- data/tests/aws/requests/iam/server_certificate_tests.rb +32 -0
- data/tests/cloudstack/compute/models/snapshot_tests.rb +34 -0
- data/tests/digitalocean/helper.rb +44 -0
- data/tests/digitalocean/models/compute/flavor_tests.rb +30 -0
- data/tests/digitalocean/models/compute/image_tests.rb +31 -0
- data/tests/digitalocean/models/compute/region_tests.rb +30 -0
- data/tests/digitalocean/models/compute/server_tests.rb +84 -0
- data/tests/digitalocean/models/compute/servers_tests.rb +35 -0
- data/tests/digitalocean/models/compute/ssh_key_tests.rb +40 -0
- data/tests/digitalocean/models/compute/ssh_keys_tests.rb +28 -0
- data/tests/digitalocean/requests/compute/create_server_tests.rb +28 -0
- data/tests/digitalocean/requests/compute/create_ssh_key_tests.rb +22 -0
- data/tests/digitalocean/requests/compute/destroy_server_tests.rb +15 -0
- data/tests/digitalocean/requests/compute/destroy_ssh_key_tests.rb +23 -0
- data/tests/digitalocean/requests/compute/get_server_details_tests.rb +13 -0
- data/tests/digitalocean/requests/compute/get_ssh_key_tests.rb +22 -0
- data/tests/digitalocean/requests/compute/list_flavors_tests.rb +23 -0
- data/tests/digitalocean/requests/compute/list_images_tests.rb +24 -0
- data/tests/digitalocean/requests/compute/list_regions_tests.rb +23 -0
- data/tests/digitalocean/requests/compute/list_servers_tests.rb +26 -0
- data/tests/digitalocean/requests/compute/list_ssh_keys_tests.rb +21 -0
- data/tests/digitalocean/requests/compute/power_cycle_server_tests.rb +20 -0
- data/tests/digitalocean/requests/compute/power_state_tests.rb +25 -0
- data/tests/digitalocean/requests/compute/reboot_server_tests.rb +14 -0
- data/tests/helpers/collection_helper.rb +36 -1
- data/tests/helpers/mock_helper.rb +2 -0
- data/tests/internet_archive/models/storage/directory_tests.rb +24 -32
- data/tests/internet_archive/models/storage/file_tests.rb +16 -35
- data/tests/internet_archive/models/storage/files_tests.rb +33 -31
- data/tests/internet_archive/models/storage/url_tests.rb +1 -1
- data/tests/internet_archive/requests/storage/bucket_tests.rb +34 -38
- data/tests/internet_archive/requests/storage/multipart_upload_tests.rb +1 -1
- data/tests/openstack/models/network/network_tests.rb +17 -0
- data/tests/openstack/models/network/router_tests.rb +38 -0
- data/tests/openstack/models/network/routers_tests.rb +21 -0
- data/tests/openstack/requests/network/network_tests.rb +61 -10
- data/tests/openstack/requests/network/router_tests.rb +75 -0
- data/tests/openstack/storage_tests.rb +19 -0
- data/tests/ovirt/requests/compute/list_quotas_tests.rb +12 -0
- data/tests/rackspace/block_storage_tests.rb +101 -0
- data/tests/rackspace/cdn_tests.rb +144 -52
- data/tests/rackspace/compute_tests.rb +88 -0
- data/tests/rackspace/compute_v2_tests.rb +101 -0
- data/tests/rackspace/databases_tests.rb +98 -0
- data/tests/rackspace/dns_tests.rb +82 -0
- data/tests/rackspace/load_balancer_tests.rb +99 -0
- data/tests/rackspace/models/compute_v2/image_tests.rb +51 -0
- data/tests/rackspace/models/compute_v2/server_tests.rb +51 -0
- data/tests/rackspace/models/identity/service_catalog_tests.rb +81 -0
- data/tests/rackspace/models/storage/file_tests.rb +10 -1
- data/tests/rackspace/rackspace_tests.rb +21 -0
- data/tests/rackspace/requests/compute_v2/metadata_tests.rb +2 -2
- data/tests/rackspace/requests/storage/object_tests.rb +2 -2
- data/tests/rackspace/storage_tests.rb +99 -3
- data/tests/riakcs/requests/provisioning/provisioning_tests.rb +174 -0
- data/tests/riakcs/requests/usage/usage_tests.rb +29 -0
- data/tests/xenserver/models/compute/network_tests.rb +18 -6
- data/tests/xenserver/models/compute/vlan_tests.rb +76 -0
- data/tests/xenserver/models/compute/vlans_tests.rb +36 -0
- data/tests/xenserver/requests/compute/create_network_tests.rb +20 -0
- data/tests/xenserver/requests/compute/create_vlan_tests.rb +36 -0
- data/tests/xenserver/requests/compute/destroy_network_tests.rb +13 -0
- data/tests/xenserver/requests/compute/destroy_vlan_tests.rb +36 -0
- metadata +178 -21
- data/lib/fog/internet_archive/models/storage/version.rb +0 -36
- data/lib/fog/internet_archive/models/storage/versions.rb +0 -38
- data/lib/fog/internet_archive/parsers/storage/get_bucket_object_versions.rb +0 -88
- data/lib/fog/internet_archive/parsers/storage/get_bucket_versioning.rb +0 -24
- data/lib/fog/internet_archive/requests/storage/get_bucket_object_versions.rb +0 -162
- data/lib/fog/internet_archive/requests/storage/get_bucket_versioning.rb +0 -69
- data/lib/fog/internet_archive/requests/storage/put_bucket_versioning.rb +0 -75
- data/lib/fog/openstack/README.identity.md +0 -69
- data/lib/fog/providers.rb +0 -34
- data/lib/fog/rackspace/examples/compute_v2/README.md +0 -47
- data/tests/internet_archive/models/storage/version_tests.rb +0 -52
- data/tests/internet_archive/models/storage/versions_tests.rb +0 -56
- data/tests/internet_archive/requests/storage/versioning_tests.rb +0 -258
@@ -0,0 +1,46 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates creating a container with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
def get_user_input(prompt)
|
9
|
+
print "#{prompt}: "
|
10
|
+
gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
14
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
15
|
+
def rackspace_username
|
16
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
20
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
21
|
+
def rackspace_api_key
|
22
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
23
|
+
end
|
24
|
+
|
25
|
+
# create Cloud Files service
|
26
|
+
service = Fog::Storage.new({
|
27
|
+
:provider => 'Rackspace',
|
28
|
+
:rackspace_username => rackspace_username,
|
29
|
+
:rackspace_api_key => rackspace_api_key,
|
30
|
+
:rackspace_region => :ord #Use Chicago Region
|
31
|
+
})
|
32
|
+
|
33
|
+
|
34
|
+
# prompt for directory name
|
35
|
+
directory_name = get_user_input "\nEnter name of directory to create"
|
36
|
+
|
37
|
+
# create directory
|
38
|
+
directory = service.directories.create :key => directory_name
|
39
|
+
|
40
|
+
# reload directory to refresh information
|
41
|
+
directory.reload
|
42
|
+
|
43
|
+
puts "\n Directory #{directory.key} was created."
|
44
|
+
puts "To delete the container please execute the delete_directory.rb script\n\n"
|
45
|
+
|
46
|
+
|
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates deleting a container with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
def get_user_input(prompt)
|
9
|
+
print "#{prompt}: "
|
10
|
+
gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
def select_directory(directories)
|
14
|
+
abort "\nThere are not any directories to delete in the Chicago region. Try running create_directory.rb\n\n" if directories.empty?
|
15
|
+
|
16
|
+
puts "\nSelect Directory To Delete:\n\n"
|
17
|
+
directories.each_with_index do |dir, i|
|
18
|
+
puts "\t #{i}. #{dir.key} [#{dir.count} objects]"
|
19
|
+
end
|
20
|
+
|
21
|
+
delete_str = get_user_input "\nEnter Directory Number"
|
22
|
+
directories[delete_str.to_i]
|
23
|
+
end
|
24
|
+
|
25
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
26
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
27
|
+
def rackspace_username
|
28
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
29
|
+
end
|
30
|
+
|
31
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
32
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
33
|
+
def rackspace_api_key
|
34
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
35
|
+
end
|
36
|
+
|
37
|
+
# create Cloud Files service
|
38
|
+
service = Fog::Storage.new({
|
39
|
+
:provider => 'Rackspace',
|
40
|
+
:rackspace_username => rackspace_username,
|
41
|
+
:rackspace_api_key => rackspace_api_key,
|
42
|
+
:rackspace_region => :ord #Use Chicago Region
|
43
|
+
})
|
44
|
+
|
45
|
+
# retrieve directories
|
46
|
+
directories = service.directories
|
47
|
+
|
48
|
+
# prompt for directory
|
49
|
+
directory = select_directory(directories)
|
50
|
+
|
51
|
+
puts "\nNow deleting #{directory.key}"
|
52
|
+
|
53
|
+
# delete files if necessary
|
54
|
+
directory.files.each do |f|
|
55
|
+
puts "\tDeleting file #{f.key}"
|
56
|
+
f.destroy
|
57
|
+
end
|
58
|
+
|
59
|
+
# delete directory
|
60
|
+
directory.destroy
|
61
|
+
|
62
|
+
puts "\tDone\n\n"
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates deleting a file from a container with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
def get_user_input(prompt)
|
9
|
+
print "#{prompt}: "
|
10
|
+
gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
def select_directory(directories)
|
14
|
+
abort "\nThere are not any directories with files to delete in the Chicago region. Try running create_file.rb\n\n" if directories.empty?
|
15
|
+
|
16
|
+
puts "\nSelect Directory:\n\n"
|
17
|
+
directories.each_with_index do |dir, i|
|
18
|
+
puts "\t #{i}. #{dir.key} [#{dir.count} objects]"
|
19
|
+
end
|
20
|
+
|
21
|
+
delete_str = get_user_input "\nEnter Directory Number"
|
22
|
+
directories[delete_str.to_i]
|
23
|
+
end
|
24
|
+
|
25
|
+
def select_file(files)
|
26
|
+
puts "\nSelect File:\n\n"
|
27
|
+
files.each_with_index do |file, i|
|
28
|
+
puts "\t #{i}. #{file.key}"
|
29
|
+
end
|
30
|
+
|
31
|
+
delete_str = get_user_input "\nEnter File Number"
|
32
|
+
files[delete_str.to_i]
|
33
|
+
end
|
34
|
+
|
35
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
36
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
37
|
+
def rackspace_username
|
38
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
39
|
+
end
|
40
|
+
|
41
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
42
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
43
|
+
def rackspace_api_key
|
44
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
45
|
+
end
|
46
|
+
|
47
|
+
# create Cloud Files service
|
48
|
+
service = Fog::Storage.new({
|
49
|
+
:provider => 'Rackspace',
|
50
|
+
:rackspace_username => rackspace_username,
|
51
|
+
:rackspace_api_key => rackspace_api_key,
|
52
|
+
:rackspace_region => :ord #Use Chicago Region
|
53
|
+
})
|
54
|
+
|
55
|
+
# retrieve directories with files
|
56
|
+
directories = service.directories.select {|s| s.count > 0}
|
57
|
+
|
58
|
+
# prompt for directory
|
59
|
+
directory = select_directory(directories)
|
60
|
+
|
61
|
+
# list of files for directory
|
62
|
+
files = directory.files
|
63
|
+
|
64
|
+
# prompt for file to delete
|
65
|
+
file = select_file(files)
|
66
|
+
|
67
|
+
# delete file
|
68
|
+
file.destroy
|
69
|
+
|
70
|
+
puts "\nFile #{file.key} was successfully deleted"
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates downloading a file with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
def get_user_input(prompt)
|
9
|
+
print "#{prompt}: "
|
10
|
+
gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
def select_directory(directories)
|
14
|
+
abort "\nThere are not any directories with files in the Chicago region. Try running create_file.rb\n\n" if directories.empty?
|
15
|
+
|
16
|
+
puts "\nSelect Directory:\n\n"
|
17
|
+
directories.each_with_index do |dir, i|
|
18
|
+
puts "\t #{i}. #{dir.key} [#{dir.count} objects]"
|
19
|
+
end
|
20
|
+
|
21
|
+
delete_str = get_user_input "\nEnter Directory Number"
|
22
|
+
directories[delete_str.to_i]
|
23
|
+
end
|
24
|
+
|
25
|
+
def select_file(files)
|
26
|
+
puts "\nSelect File:\n\n"
|
27
|
+
files.each_with_index do |file, i|
|
28
|
+
puts "\t #{i}. #{file.key}"
|
29
|
+
end
|
30
|
+
|
31
|
+
delete_str = get_user_input "\nEnter File Number"
|
32
|
+
files[delete_str.to_i]
|
33
|
+
end
|
34
|
+
|
35
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
36
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
37
|
+
def rackspace_username
|
38
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
39
|
+
end
|
40
|
+
|
41
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
42
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
43
|
+
def rackspace_api_key
|
44
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
45
|
+
end
|
46
|
+
|
47
|
+
# create Cloud Files service
|
48
|
+
service = Fog::Storage.new({
|
49
|
+
:provider => 'Rackspace',
|
50
|
+
:rackspace_username => rackspace_username,
|
51
|
+
:rackspace_api_key => rackspace_api_key,
|
52
|
+
:rackspace_region => :ord #Use Chicago Region
|
53
|
+
})
|
54
|
+
|
55
|
+
# retrieve directories with files
|
56
|
+
directories = service.directories.select {|s| s.count > 0}
|
57
|
+
|
58
|
+
# prompt for directory
|
59
|
+
directory = select_directory(directories)
|
60
|
+
|
61
|
+
# list of files for directory
|
62
|
+
files = directory.files
|
63
|
+
|
64
|
+
# prompt for file to download
|
65
|
+
file = select_file(files)
|
66
|
+
|
67
|
+
# download file
|
68
|
+
filename = File.join(File.dirname(__FILE__), "downloaded-#{file.key}")
|
69
|
+
File.open(filename, 'w') do | f |
|
70
|
+
directory.files.get(file.key) do | data, remaining, content_length |
|
71
|
+
f.syswrite data
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
puts "\nFile #{file.key} was successfully downloaded to #{filename}"
|
@@ -0,0 +1 @@
|
|
1
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates creating a file on the CDN network with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
9
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
10
|
+
def rackspace_username
|
11
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
12
|
+
end
|
13
|
+
|
14
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
15
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
16
|
+
def rackspace_api_key
|
17
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
18
|
+
end
|
19
|
+
|
20
|
+
def print_metadata(object)
|
21
|
+
object.metadata.each_pair do |key, value|
|
22
|
+
puts "\t#{key}: #{value}"
|
23
|
+
end
|
24
|
+
puts "\n"
|
25
|
+
end
|
26
|
+
|
27
|
+
# create Cloud Files service
|
28
|
+
service = Fog::Storage.new({
|
29
|
+
:provider => 'Rackspace',
|
30
|
+
:rackspace_username => rackspace_username,
|
31
|
+
:rackspace_api_key => rackspace_api_key,
|
32
|
+
:rackspace_region => :ord #Use Chicago Region
|
33
|
+
})
|
34
|
+
|
35
|
+
|
36
|
+
# create directory
|
37
|
+
puts "Creating directory 'metadata-tester'"
|
38
|
+
directory = service.directories.create :key => "metadata-tester"
|
39
|
+
|
40
|
+
# initial metadata
|
41
|
+
puts "Initial Container Metadata\n"
|
42
|
+
print_metadata directory
|
43
|
+
|
44
|
+
# adding metadata
|
45
|
+
puts "Adding Container Metadata"
|
46
|
+
directory.metadata["environment"] = "demo"
|
47
|
+
directory.save
|
48
|
+
print_metadata directory
|
49
|
+
|
50
|
+
# update metadata
|
51
|
+
puts "Updating Container Metadata"
|
52
|
+
directory.metadata["environment"] = "test"
|
53
|
+
directory.save
|
54
|
+
print_metadata directory
|
55
|
+
|
56
|
+
# upload file
|
57
|
+
puts "Uploading file"
|
58
|
+
upload_file = File.join(File.dirname(__FILE__), "lorem.txt")
|
59
|
+
file = directory.files.create :key => 'sample.txt', :body => File.open(upload_file, "r")
|
60
|
+
|
61
|
+
# initial metadata
|
62
|
+
puts "Initial File Metadata\n"
|
63
|
+
print_metadata file
|
64
|
+
|
65
|
+
# adding metadata
|
66
|
+
puts "Adding File Metadata"
|
67
|
+
file.metadata["preview"] = "true"
|
68
|
+
file.save
|
69
|
+
print_metadata file
|
70
|
+
|
71
|
+
# update metadata
|
72
|
+
puts "Updating File Metadata"
|
73
|
+
file.metadata["preview"] = "false"
|
74
|
+
file.save
|
75
|
+
print_metadata file
|
76
|
+
|
77
|
+
puts "To delete the directory and file please execute the delete_directory.rb script\n\n"
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# This example demonstrates creating a file on the CDN network with the Rackpace Open Cloud
|
4
|
+
|
5
|
+
require 'rubygems' #required for Ruby 1.8.x
|
6
|
+
require 'fog'
|
7
|
+
|
8
|
+
def get_user_input(prompt)
|
9
|
+
print "#{prompt}: "
|
10
|
+
gets.chomp
|
11
|
+
end
|
12
|
+
|
13
|
+
# Use username defined in ~/.fog file, if absent prompt for username.
|
14
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
15
|
+
def rackspace_username
|
16
|
+
Fog.credentials[:rackspace_username] || get_user_input("Enter Rackspace Username")
|
17
|
+
end
|
18
|
+
|
19
|
+
# Use api key defined in ~/.fog file, if absent prompt for api key
|
20
|
+
# For more details on ~/.fog refer to http://fog.io/about/getting_started.html
|
21
|
+
def rackspace_api_key
|
22
|
+
Fog.credentials[:rackspace_api_key] || get_user_input("Enter Rackspace API key")
|
23
|
+
end
|
24
|
+
|
25
|
+
# create Cloud Files service
|
26
|
+
service = Fog::Storage.new({
|
27
|
+
:provider => 'Rackspace',
|
28
|
+
:rackspace_username => rackspace_username,
|
29
|
+
:rackspace_api_key => rackspace_api_key,
|
30
|
+
:rackspace_region => :ord #Use Chicago Region
|
31
|
+
})
|
32
|
+
|
33
|
+
# prompt for directory name
|
34
|
+
directory_name = get_user_input "\nEnter name of directory to create"
|
35
|
+
|
36
|
+
# create directory with CDN service
|
37
|
+
directory = service.directories.create :key => directory_name, :public => true
|
38
|
+
|
39
|
+
# upload file
|
40
|
+
upload_file = File.join(File.dirname(__FILE__), "lorem.txt")
|
41
|
+
file = directory.files.create :key => 'sample.txt', :body => File.open(upload_file, "r")
|
42
|
+
|
43
|
+
puts "You should not be able to view this file via CDN at #{file.public_url}"
|
44
|
+
puts "To delete the container and associated file please execute the delete_directory.rb script\n\n"
|
45
|
+
|
@@ -7,7 +7,7 @@ module Fog
|
|
7
7
|
UK_ENDPOINT = 'https://lon.identity.api.rackspacecloud.com/v2.0'
|
8
8
|
|
9
9
|
requires :rackspace_username, :rackspace_api_key
|
10
|
-
recognizes :rackspace_auth_url
|
10
|
+
recognizes :rackspace_auth_url, :rackspace_region
|
11
11
|
|
12
12
|
model_path 'fog/rackspace/models/identity'
|
13
13
|
model :user
|
@@ -18,6 +18,7 @@ module Fog
|
|
18
18
|
collection :credentials
|
19
19
|
model :tenant
|
20
20
|
collection :tenants
|
21
|
+
model :service_catalog
|
21
22
|
|
22
23
|
request_path 'fog/rackspace/requests/identity'
|
23
24
|
request :create_token
|
@@ -33,15 +34,20 @@ module Fog
|
|
33
34
|
request :delete_user
|
34
35
|
|
35
36
|
class Mock
|
37
|
+
attr_reader :service_catalog
|
38
|
+
|
36
39
|
def request
|
37
40
|
Fog::Mock.not_implemented
|
38
41
|
end
|
39
42
|
end
|
40
43
|
|
41
44
|
class Real
|
45
|
+
attr_reader :service_catalog, :auth_token
|
46
|
+
|
42
47
|
def initialize(options={})
|
43
48
|
@rackspace_username = options[:rackspace_username]
|
44
49
|
@rackspace_api_key = options[:rackspace_api_key]
|
50
|
+
@rackspace_region = options[:rackspace_region]
|
45
51
|
@rackspace_auth_url = options[:rackspace_auth_url] || US_ENDPOINT
|
46
52
|
|
47
53
|
uri = URI.parse(@rackspace_auth_url)
|
@@ -55,7 +61,7 @@ module Fog
|
|
55
61
|
|
56
62
|
authenticate
|
57
63
|
end
|
58
|
-
|
64
|
+
|
59
65
|
def request(params)
|
60
66
|
begin
|
61
67
|
parameters = params.merge!({
|
@@ -72,9 +78,10 @@ module Fog
|
|
72
78
|
response
|
73
79
|
end
|
74
80
|
end
|
75
|
-
|
81
|
+
|
76
82
|
def authenticate
|
77
83
|
data = self.create_token(@rackspace_username, @rackspace_api_key).body
|
84
|
+
@service_catalog = ServiceCatalog.from_response(self, data)
|
78
85
|
@auth_token = data['access']['token']['id']
|
79
86
|
end
|
80
87
|
end
|
@@ -9,14 +9,16 @@ module Fog
|
|
9
9
|
class InternalServerError < Fog::Rackspace::Errors::InternalServerError; end
|
10
10
|
class BadRequest < Fog::Rackspace::Errors::BadRequest; end
|
11
11
|
|
12
|
-
DFW_ENDPOINT = 'https://dfw.loadbalancers.api.rackspacecloud.com/v1.0
|
13
|
-
ORD_ENDPOINT = 'https://ord.loadbalancers.api.rackspacecloud.com/v1.0
|
14
|
-
LON_ENDPOINT = 'https://lon.loadbalancers.api.rackspacecloud.com/v1.0
|
12
|
+
DFW_ENDPOINT = 'https://dfw.loadbalancers.api.rackspacecloud.com/v1.0'
|
13
|
+
ORD_ENDPOINT = 'https://ord.loadbalancers.api.rackspacecloud.com/v1.0'
|
14
|
+
LON_ENDPOINT = 'https://lon.loadbalancers.api.rackspacecloud.com/v1.0'
|
15
15
|
|
16
16
|
requires :rackspace_api_key, :rackspace_username
|
17
17
|
recognizes :rackspace_auth_url
|
18
18
|
recognizes :rackspace_auth_token
|
19
19
|
recognizes :rackspace_lb_endpoint
|
20
|
+
recognizes :rackspace_load_balancers_url
|
21
|
+
recognizes :rackspace_region
|
20
22
|
|
21
23
|
model_path 'fog/rackspace/models/load_balancers'
|
22
24
|
collection :load_balancers
|
@@ -87,7 +89,7 @@ module Fog
|
|
87
89
|
|
88
90
|
end
|
89
91
|
|
90
|
-
class Mock
|
92
|
+
class Mock < Fog::Rackspace::Service
|
91
93
|
include Shared
|
92
94
|
|
93
95
|
def initialize(options={})
|
@@ -98,7 +100,7 @@ module Fog
|
|
98
100
|
|
99
101
|
end
|
100
102
|
|
101
|
-
class Real
|
103
|
+
class Real < Fog::Rackspace::Service
|
102
104
|
include Shared
|
103
105
|
|
104
106
|
def initialize(options={})
|
@@ -107,16 +109,13 @@ module Fog
|
|
107
109
|
@rackspace_auth_url = options[:rackspace_auth_url]
|
108
110
|
@rackspace_must_reauthenticate = false
|
109
111
|
@connection_options = options[:connection_options] || {}
|
110
|
-
|
111
|
-
|
112
|
-
@persistent = options[:persistent] || false
|
113
|
-
@path = uri.path.end_with?('/') ? uri.path.chop : uri.path
|
114
|
-
@port = uri.port
|
115
|
-
@scheme = uri.scheme
|
112
|
+
|
113
|
+
setup_custom_endpoint(options)
|
116
114
|
|
117
115
|
authenticate
|
118
116
|
|
119
|
-
@
|
117
|
+
@persistent = options[:persistent] || false
|
118
|
+
@connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
|
120
119
|
end
|
121
120
|
|
122
121
|
def request(params)
|
@@ -126,10 +125,10 @@ module Fog
|
|
126
125
|
:headers => {
|
127
126
|
'Content-Type' => 'application/json',
|
128
127
|
'Accept' => 'application/json',
|
129
|
-
'X-Auth-Token' =>
|
128
|
+
'X-Auth-Token' => auth_token
|
130
129
|
}.merge!(params[:headers] || {}),
|
131
|
-
:host =>
|
132
|
-
:path => "#{
|
130
|
+
:host => endpoint_uri.host,
|
131
|
+
:path => "#{endpoint_uri.path}/#{params[:path]}"
|
133
132
|
}))
|
134
133
|
rescue Excon::Errors::NotFound => error
|
135
134
|
raise NotFound.slurp error
|
@@ -148,15 +147,74 @@ module Fog
|
|
148
147
|
|
149
148
|
def authenticate
|
150
149
|
options = {
|
151
|
-
:rackspace_api_key
|
150
|
+
:rackspace_api_key => @rackspace_api_key,
|
152
151
|
:rackspace_username => @rackspace_username,
|
153
152
|
:rackspace_auth_url => @rackspace_auth_url
|
154
153
|
}
|
154
|
+
super(options)
|
155
|
+
end
|
156
|
+
|
157
|
+
def service_name
|
158
|
+
:cloudLoadBalancers
|
159
|
+
end
|
160
|
+
|
161
|
+
def region
|
162
|
+
@rackspace_region
|
163
|
+
end
|
164
|
+
|
165
|
+
def endpoint_uri(service_endpoint_url=nil)
|
166
|
+
@uri = super(@rackspace_endpoint || service_endpoint_url, :rackspace_load_balancers_url)
|
167
|
+
end
|
168
|
+
|
169
|
+
private
|
170
|
+
|
171
|
+
def setup_custom_endpoint(options)
|
172
|
+
@rackspace_endpoint = Fog::Rackspace.normalize_url(options[:rackspace_load_balancers_url] || options[:rackspace_lb_endpoint])
|
173
|
+
|
174
|
+
if v2_authentication?
|
175
|
+
case @rackspace_endpoint
|
176
|
+
when DFW_ENDPOINT
|
177
|
+
@rackspace_endpoint = nil
|
178
|
+
@rackspace_region = :dfw
|
179
|
+
when ORD_ENDPOINT
|
180
|
+
@rackspace_endpoint = nil
|
181
|
+
@rackspace_region = :ord
|
182
|
+
when LON_ENDPOINT
|
183
|
+
@rackspace_endpoint = nil
|
184
|
+
@rackspace_region = :lon
|
185
|
+
else
|
186
|
+
# we are actually using a custom endpoint
|
187
|
+
@rackspace_region = options[:rackspace_region] || :dfw
|
188
|
+
end
|
189
|
+
else
|
190
|
+
#if we are using auth1 and the endpoint is not set, default to DFW_ENDPOINT for historical reasons
|
191
|
+
@rackspace_endpoint ||= DFW_ENDPOINT
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
def deprecation_warnings(options)
|
196
|
+
Fog::Logger.deprecation("The :rackspace_lb_endpoint option is deprecated. Please use :rackspace_load_balancers_url for custom endpoints") if options[:rackspace_lb_endpoint]
|
197
|
+
|
198
|
+
if [DFW_ENDPOINT, ORD_ENDPOINT, LON_ENDPOINT].include?(@rackspace_endpoint) && v2_authentication?
|
199
|
+
regions = @identity_service.service_catalog.display_service_regions(service_name)
|
200
|
+
Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid regions for :rackspace_region are #{regions}.")
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
def append_tenant_v1(credentials)
|
205
|
+
account_id = credentials['X-Server-Management-Url'].match(/.*\/([\d]+)$/)[1]
|
206
|
+
|
207
|
+
endpoint = @rackspace_endpoint || credentials['X-Server-Management-Url'] || DFW_ENDPOINT
|
208
|
+
@uri = URI.parse(endpoint)
|
209
|
+
@uri.path = "#{@uri.path}/#{account_id}"
|
210
|
+
end
|
211
|
+
|
212
|
+
def authenticate_v1(options)
|
155
213
|
credentials = Fog::Rackspace.authenticate(options, @connection_options)
|
214
|
+
append_tenant_v1 credentials
|
156
215
|
@auth_token = credentials['X-Auth-Token']
|
157
|
-
account_id = credentials['X-Server-Management-Url'].match(/.*\/([\d]+)$/)[1]
|
158
|
-
@path = "#{@path}/#{account_id}"
|
159
216
|
end
|
217
|
+
|
160
218
|
end
|
161
219
|
end
|
162
220
|
end
|