fog 1.9.0 → 1.10.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/Gemfile +1 -1
- data/README.md +1 -1
- data/changelog.txt +743 -0
- data/fog.gemspec +3 -5
- data/lib/fog/aws.rb +1 -0
- data/lib/fog/aws/credential_fetcher.rb +1 -1
- data/lib/fog/aws/data_pipeline.rb +114 -0
- data/lib/fog/aws/dynamodb.rb +1 -1
- data/lib/fog/aws/models/compute/flavors.rb +1 -1
- data/lib/fog/aws/models/compute/spot_request.rb +2 -0
- data/lib/fog/aws/models/data_pipeline/pipeline.rb +67 -0
- data/lib/fog/aws/models/data_pipeline/pipelines.rb +36 -0
- data/lib/fog/aws/parsers/cloud_watch/list_metrics.rb +1 -1
- data/lib/fog/aws/parsers/compute/describe_instances.rb +1 -1
- data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -0
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +1 -0
- data/lib/fog/aws/requests/data_pipeline/activate_pipeline.rb +35 -0
- data/lib/fog/aws/requests/data_pipeline/create_pipeline.rb +41 -0
- data/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb +35 -0
- data/lib/fog/aws/requests/data_pipeline/describe_pipelines.rb +36 -0
- data/lib/fog/aws/requests/data_pipeline/list_pipelines.rb +36 -0
- data/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb +72 -0
- data/lib/fog/aws/requests/rds/describe_db_instances.rb +8 -9
- data/lib/fog/aws/requests/storage/get_service.rb +1 -2
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +3 -3
- data/lib/fog/aws/requests/storage/put_bucket_policy.rb +2 -2
- data/lib/fog/aws/storage.rb +1 -1
- data/lib/fog/bin.rb +2 -1
- data/lib/fog/bin/aws.rb +4 -0
- data/lib/fog/bin/bluebox.rb +2 -0
- data/lib/fog/bin/dreamhost.rb +31 -0
- data/lib/fog/bin/hp.rb +7 -0
- data/lib/fog/bin/internet_archive.rb +34 -0
- data/lib/fog/bin/openstack.rb +17 -2
- data/lib/fog/bluebox.rb +1 -0
- data/lib/fog/bluebox/blb.rb +85 -0
- data/lib/fog/bluebox/models/blb/lb_application.rb +32 -0
- data/lib/fog/bluebox/models/blb/lb_applications.rb +26 -0
- data/lib/fog/bluebox/models/blb/lb_backend.rb +22 -0
- data/lib/fog/bluebox/models/blb/lb_backends.rb +30 -0
- data/lib/fog/bluebox/models/blb/lb_service.rb +35 -0
- data/lib/fog/bluebox/models/blb/lb_services.rb +29 -0
- data/lib/fog/bluebox/requests/blb/add_machine_to_lb_application.rb +33 -0
- data/lib/fog/bluebox/requests/blb/add_machine_to_lb_backend.rb +31 -0
- data/lib/fog/bluebox/requests/blb/get_lb_application.rb +33 -0
- data/lib/fog/bluebox/requests/blb/get_lb_applications.rb +31 -0
- data/lib/fog/bluebox/requests/blb/get_lb_backend.rb +36 -0
- data/lib/fog/bluebox/requests/blb/get_lb_backends.rb +36 -0
- data/lib/fog/bluebox/requests/blb/get_lb_machine.rb +35 -0
- data/lib/fog/bluebox/requests/blb/get_lb_machines.rb +35 -0
- data/lib/fog/bluebox/requests/blb/get_lb_service.rb +36 -0
- data/lib/fog/bluebox/requests/blb/get_lb_services.rb +36 -0
- data/lib/fog/bluebox/requests/blb/remove_machine_from_lb_backend.rb +28 -0
- data/lib/fog/bluebox/requests/blb/update_lb_backend_machine.rb +29 -0
- data/lib/fog/brightbox/compute.rb +1 -0
- data/lib/fog/brightbox/requests/compute/create_firewall_policy.rb +1 -0
- data/lib/fog/brightbox/requests/compute/update_firewall_policy.rb +25 -0
- data/lib/fog/brightbox/requests/compute/update_server.rb +1 -0
- data/lib/fog/cdn.rb +5 -12
- data/lib/fog/compute.rb +7 -68
- data/lib/fog/core/errors.rb +5 -1
- data/lib/fog/core/scp.rb +1 -0
- data/lib/fog/core/ssh.rb +1 -0
- data/lib/fog/dns.rb +7 -27
- data/lib/fog/dreamhost.rb +11 -0
- data/lib/fog/dreamhost/dns.rb +86 -0
- data/lib/fog/dreamhost/examples/dns/getting_started.md +105 -0
- data/lib/fog/dreamhost/models/dns/record.rb +35 -0
- data/lib/fog/dreamhost/models/dns/records.rb +38 -0
- data/lib/fog/dreamhost/models/dns/zone.rb +59 -0
- data/lib/fog/dreamhost/models/dns/zones.rb +41 -0
- data/lib/fog/dreamhost/requests/dns/create_record.rb +32 -0
- data/lib/fog/dreamhost/requests/dns/delete_record.rb +31 -0
- data/lib/fog/dreamhost/requests/dns/list_records.rb +25 -0
- data/lib/fog/ecloud/models/compute/detached_disks.rb +1 -5
- data/lib/fog/ecloud/models/compute/internet_services.rb +1 -5
- data/lib/fog/ecloud/models/compute/nodes.rb +1 -5
- data/lib/fog/ecloud/models/compute/public_ips.rb +1 -5
- data/lib/fog/ecloud/models/compute/servers.rb +2 -6
- data/lib/fog/ecloud/requests/compute/get_detached_disk.rb +1 -1
- data/lib/fog/ecloud/requests/compute/get_internet_service.rb +1 -1
- data/lib/fog/ecloud/requests/compute/get_node.rb +1 -1
- data/lib/fog/ecloud/requests/compute/get_public_ip.rb +1 -1
- data/lib/fog/ecloud/requests/compute/get_server.rb +1 -1
- data/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb +1 -1
- data/lib/fog/glesys/compute.rb +5 -1
- data/lib/fog/glesys/models/compute/ip.rb +47 -46
- data/lib/fog/glesys/models/compute/ips.rb +95 -12
- data/lib/fog/glesys/models/compute/server.rb +66 -5
- data/lib/fog/glesys/models/compute/servers.rb +7 -1
- data/lib/fog/glesys/models/compute/template.rb +8 -16
- data/lib/fog/glesys/models/compute/templates.rb +23 -5
- data/lib/fog/glesys/requests/compute/ip_details.rb +2 -2
- data/lib/fog/glesys/requests/compute/server_details.rb +2 -2
- data/lib/fog/glesys/requests/compute/template_list.rb +2 -2
- data/lib/fog/hp.rb +56 -26
- data/lib/fog/hp/CHANGELOG.hp +113 -0
- data/lib/fog/hp/README_HP.rdoc +7 -6
- data/lib/fog/hp/block_storage.rb +169 -0
- data/lib/fog/hp/cdn.rb +29 -7
- data/lib/fog/hp/compute.rb +88 -17
- data/lib/fog/hp/models/block_storage/bootable_volumes.rb +28 -0
- data/lib/fog/hp/models/block_storage/snapshot.rb +56 -0
- data/lib/fog/hp/models/block_storage/snapshots.rb +29 -0
- data/lib/fog/hp/models/block_storage/volume.rb +102 -0
- data/lib/fog/hp/models/block_storage/volumes.rb +28 -0
- data/lib/fog/hp/models/compute/address.rb +0 -1
- data/lib/fog/hp/models/compute/image.rb +43 -4
- data/lib/fog/hp/models/compute/images.rb +0 -5
- data/lib/fog/hp/models/compute/key_pair.rb +0 -5
- data/lib/fog/hp/models/compute/meta.rb +29 -0
- data/lib/fog/hp/models/compute/metadata.rb +79 -0
- data/lib/fog/hp/models/compute/server.rb +84 -20
- data/lib/fog/hp/models/meta_parent.rb +33 -0
- data/lib/fog/hp/models/storage/directories.rb +34 -9
- data/lib/fog/hp/models/storage/directory.rb +111 -26
- data/lib/fog/hp/models/storage/file.rb +10 -0
- data/lib/fog/hp/models/storage/files.rb +8 -0
- data/lib/fog/hp/models/storage/shared_directories.rb +55 -0
- data/lib/fog/hp/models/storage/shared_directory.rb +39 -0
- data/lib/fog/hp/models/storage/shared_file.rb +67 -0
- data/lib/fog/hp/models/storage/shared_files.rb +64 -0
- data/lib/fog/hp/requests/block_storage/create_snapshot.rb +76 -0
- data/lib/fog/hp/requests/block_storage/create_volume.rb +87 -0
- data/lib/fog/hp/requests/block_storage/delete_snapshot.rb +38 -0
- data/lib/fog/hp/requests/block_storage/delete_volume.rb +38 -0
- data/lib/fog/hp/requests/block_storage/get_bootable_volume_details.rb +59 -0
- data/lib/fog/hp/requests/block_storage/get_snapshot_details.rb +54 -0
- data/lib/fog/hp/requests/block_storage/get_volume_details.rb +58 -0
- data/lib/fog/hp/requests/block_storage/list_bootable_volumes.rb +53 -0
- data/lib/fog/hp/requests/block_storage/list_snapshots.rb +48 -0
- data/lib/fog/hp/requests/block_storage/list_volumes.rb +52 -0
- data/lib/fog/hp/requests/compute/attach_volume.rb +78 -0
- data/lib/fog/hp/requests/compute/create_image.rb +5 -8
- data/lib/fog/hp/requests/compute/create_persistent_server.rb +168 -0
- data/lib/fog/hp/requests/compute/create_server.rb +36 -20
- data/lib/fog/hp/requests/compute/delete_meta.rb +55 -0
- data/lib/fog/hp/requests/compute/delete_security_group_rule.rb +4 -4
- data/lib/fog/hp/requests/compute/detach_volume.rb +47 -0
- data/lib/fog/hp/requests/compute/get_console_output.rb +43 -0
- data/lib/fog/hp/requests/compute/get_meta.rb +57 -0
- data/lib/fog/hp/requests/compute/get_windows_password.rb +43 -0
- data/lib/fog/hp/requests/compute/list_metadata.rb +56 -0
- data/lib/fog/hp/requests/compute/list_server_volumes.rb +49 -0
- data/lib/fog/hp/requests/compute/set_metadata.rb +60 -0
- data/lib/fog/hp/requests/compute/update_meta.rb +61 -0
- data/lib/fog/hp/requests/compute/update_metadata.rb +60 -0
- data/lib/fog/hp/requests/storage/delete_shared_object.rb +38 -0
- data/lib/fog/hp/requests/storage/get_object.rb +12 -10
- data/lib/fog/hp/requests/storage/get_object_temp_url.rb +31 -0
- data/lib/fog/hp/requests/storage/get_shared_container.rb +75 -0
- data/lib/fog/hp/requests/storage/get_shared_object.rb +66 -0
- data/lib/fog/hp/requests/storage/head_container.rb +1 -0
- data/lib/fog/hp/requests/storage/head_object.rb +1 -0
- data/lib/fog/hp/requests/storage/head_shared_container.rb +45 -0
- data/lib/fog/hp/requests/storage/head_shared_object.rb +39 -0
- data/lib/fog/hp/requests/storage/put_container.rb +6 -6
- data/lib/fog/hp/requests/storage/put_object.rb +12 -1
- data/lib/fog/hp/requests/storage/put_shared_object.rb +85 -0
- data/lib/fog/hp/storage.rb +175 -33
- data/lib/fog/identity.rb +5 -4
- data/lib/fog/image.rb +5 -6
- data/lib/fog/internet_archive.rb +290 -0
- data/lib/fog/internet_archive/models/storage/directories.rb +43 -0
- data/lib/fog/internet_archive/models/storage/directory.rb +126 -0
- data/lib/fog/internet_archive/models/storage/file.rb +286 -0
- data/lib/fog/internet_archive/models/storage/files.rb +122 -0
- data/lib/fog/internet_archive/models/storage/version.rb +36 -0
- data/lib/fog/internet_archive/models/storage/versions.rb +38 -0
- data/lib/fog/internet_archive/parsers/storage/access_control_list.rb +46 -0
- data/lib/fog/internet_archive/parsers/storage/complete_multipart_upload.rb +24 -0
- data/lib/fog/internet_archive/parsers/storage/copy_object.rb +22 -0
- data/lib/fog/internet_archive/parsers/storage/cors_configuration.rb +41 -0
- data/lib/fog/internet_archive/parsers/storage/delete_multiple_objects.rb +50 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket.rb +62 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_lifecycle.rb +66 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_location.rb +20 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_logging.rb +40 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_object_versions.rb +88 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_versioning.rb +24 -0
- data/lib/fog/internet_archive/parsers/storage/get_bucket_website.rb +26 -0
- data/lib/fog/internet_archive/parsers/storage/get_request_payment.rb +20 -0
- data/lib/fog/internet_archive/parsers/storage/get_service.rb +32 -0
- data/lib/fog/internet_archive/parsers/storage/initiate_multipart_upload.rb +24 -0
- data/lib/fog/internet_archive/parsers/storage/list_multipart_uploads.rb +56 -0
- data/lib/fog/internet_archive/parsers/storage/list_parts.rb +40 -0
- data/lib/fog/internet_archive/requests/storage/abort_multipart_upload.rb +28 -0
- data/lib/fog/internet_archive/requests/storage/acl_utils.rb +62 -0
- data/lib/fog/internet_archive/requests/storage/complete_multipart_upload.rb +48 -0
- data/lib/fog/internet_archive/requests/storage/copy_object.rb +81 -0
- data/lib/fog/internet_archive/requests/storage/cors_utils.rb +41 -0
- data/lib/fog/internet_archive/requests/storage/delete_bucket.rb +47 -0
- data/lib/fog/internet_archive/requests/storage/delete_bucket_cors.rb +29 -0
- data/lib/fog/internet_archive/requests/storage/delete_bucket_lifecycle.rb +27 -0
- data/lib/fog/internet_archive/requests/storage/delete_bucket_policy.rb +29 -0
- data/lib/fog/internet_archive/requests/storage/delete_bucket_website.rb +29 -0
- data/lib/fog/internet_archive/requests/storage/delete_multiple_objects.rb +167 -0
- data/lib/fog/internet_archive/requests/storage/delete_object.rb +118 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket.rb +112 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_acl.rb +69 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_cors.rb +65 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_lifecycle.rb +38 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_location.rb +58 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_logging.rb +47 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_object_versions.rb +162 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_policy.rb +34 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_versioning.rb +69 -0
- data/lib/fog/internet_archive/requests/storage/get_bucket_website.rb +40 -0
- data/lib/fog/internet_archive/requests/storage/get_object.rb +188 -0
- data/lib/fog/internet_archive/requests/storage/get_object_acl.rb +80 -0
- data/lib/fog/internet_archive/requests/storage/get_object_http_url.rb +55 -0
- data/lib/fog/internet_archive/requests/storage/get_object_https_url.rb +37 -0
- data/lib/fog/internet_archive/requests/storage/get_object_torrent.rb +47 -0
- data/lib/fog/internet_archive/requests/storage/get_object_url.rb +55 -0
- data/lib/fog/internet_archive/requests/storage/get_request_payment.rb +49 -0
- data/lib/fog/internet_archive/requests/storage/get_service.rb +55 -0
- data/lib/fog/internet_archive/requests/storage/head_object.rb +66 -0
- data/lib/fog/internet_archive/requests/storage/initiate_multipart_upload.rb +44 -0
- data/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb +55 -0
- data/lib/fog/internet_archive/requests/storage/list_parts.rb +55 -0
- data/lib/fog/internet_archive/requests/storage/post_object_hidden_fields.rb +38 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket.rb +74 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_acl.rb +71 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_cors.rb +49 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_lifecycle.rb +77 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_logging.rb +81 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_policy.rb +28 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_versioning.rb +75 -0
- data/lib/fog/internet_archive/requests/storage/put_bucket_website.rb +64 -0
- data/lib/fog/internet_archive/requests/storage/put_object.rb +113 -0
- data/lib/fog/internet_archive/requests/storage/put_object_acl.rb +80 -0
- data/lib/fog/internet_archive/requests/storage/put_object_url.rb +48 -0
- data/lib/fog/internet_archive/requests/storage/put_request_payment.rb +49 -0
- data/lib/fog/internet_archive/requests/storage/sync_clock.rb +28 -0
- data/lib/fog/internet_archive/requests/storage/upload_part.rb +41 -0
- data/lib/fog/internet_archive/signaturev4.rb +73 -0
- data/lib/fog/internet_archive/storage.rb +402 -0
- data/lib/fog/joyent/models/compute/server.rb +1 -1
- data/lib/fog/joyent/requests/compute/resize_machine.rb +2 -0
- data/lib/fog/libvirt/models/compute/volume.rb +1 -1
- data/lib/fog/network.rb +5 -6
- data/lib/fog/openstack.rb +10 -0
- data/lib/fog/openstack/compute.rb +11 -4
- data/lib/fog/openstack/identity.rb +5 -2
- data/lib/fog/openstack/models/compute/images.rb +2 -1
- data/lib/fog/openstack/models/compute/metadata.rb +4 -5
- data/lib/fog/openstack/models/compute/server.rb +36 -21
- data/lib/fog/openstack/models/identity/role.rb +1 -1
- data/lib/fog/openstack/models/network/floating_ip.rb +1 -1
- data/lib/fog/openstack/models/network/floating_ips.rb +2 -2
- data/lib/fog/openstack/models/network/network.rb +8 -0
- data/lib/fog/openstack/models/storage/directories.rb +39 -0
- data/lib/fog/openstack/models/storage/directory.rb +50 -0
- data/lib/fog/openstack/models/storage/file.rb +150 -0
- data/lib/fog/openstack/models/storage/files.rb +94 -0
- data/lib/fog/openstack/requests/compute/allocate_address.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_meta.rb +43 -0
- data/lib/fog/openstack/requests/compute/get_limits.rb +1 -1
- data/lib/fog/openstack/requests/compute/get_snapshot_details.rb +1 -1
- data/lib/fog/openstack/requests/compute/get_volume_details.rb +1 -1
- data/lib/fog/openstack/requests/compute/list_servers.rb +1 -1
- data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -0
- data/lib/fog/openstack/requests/compute/remove_fixed_ip.rb +1 -1
- data/lib/fog/openstack/requests/compute/update_meta.rb +46 -0
- data/lib/fog/openstack/requests/compute/update_server.rb +1 -1
- data/lib/fog/openstack/requests/identity/delete_user_role.rb +2 -2
- data/lib/fog/openstack/requests/identity/get_user_by_name.rb +2 -2
- data/lib/fog/openstack/requests/image/create_image.rb +1 -1
- data/lib/fog/openstack/requests/network/associate_floating_ip.rb +3 -3
- data/lib/fog/openstack/requests/network/create_floating_ip.rb +3 -3
- data/lib/fog/openstack/requests/network/delete_floating_ip.rb +1 -1
- data/lib/fog/openstack/requests/network/disassociate_floating_ip.rb +3 -3
- data/lib/fog/openstack/requests/network/get_floating_ip.rb +1 -1
- data/lib/fog/openstack/requests/network/list_floating_ips.rb +1 -1
- data/lib/fog/openstack/requests/storage/copy_object.rb +27 -0
- data/lib/fog/openstack/requests/storage/delete_container.rb +22 -0
- data/lib/fog/openstack/requests/storage/delete_object.rb +23 -0
- data/lib/fog/openstack/requests/storage/get_container.rb +44 -0
- data/lib/fog/openstack/requests/storage/get_containers.rb +33 -0
- data/lib/fog/openstack/requests/storage/get_object.rb +29 -0
- data/lib/fog/openstack/requests/storage/get_object_https_url.rb +51 -0
- data/lib/fog/openstack/requests/storage/head_container.rb +28 -0
- data/lib/fog/openstack/requests/storage/head_containers.rb +25 -0
- data/lib/fog/openstack/requests/storage/head_object.rb +23 -0
- data/lib/fog/openstack/requests/storage/post_set_meta_temp_url_key.rb +37 -0
- data/lib/fog/openstack/requests/storage/put_container.rb +22 -0
- data/lib/fog/openstack/requests/storage/put_object.rb +30 -0
- data/lib/fog/openstack/requests/storage/put_object_manifest.rb +25 -0
- data/lib/fog/openstack/storage.rb +159 -0
- data/lib/fog/openstack/volume.rb +4 -2
- data/lib/fog/ovirt/compute.rb +1 -0
- data/lib/fog/ovirt/models/compute/server.rb +2 -2
- data/lib/fog/ovirt/models/compute/volume.rb +1 -0
- data/lib/fog/ovirt/requests/compute/get_api_version.rb +16 -0
- data/lib/fog/providers.rb +2 -1
- data/lib/fog/rackspace/block_storage.rb +1 -0
- data/lib/fog/rackspace/cdn.rb +61 -7
- data/lib/fog/rackspace/compute_v2.rb +16 -3
- data/lib/fog/rackspace/databases.rb +4 -3
- data/lib/fog/rackspace/docs/compute_v2.md +663 -0
- data/lib/fog/rackspace/docs/getting_started.md +9 -9
- data/lib/fog/rackspace/examples/README.md +47 -0
- data/lib/fog/rackspace/examples/compute_v2/README.md +47 -0
- data/lib/fog/rackspace/examples/compute_v2/create_image.rb +61 -0
- data/lib/fog/rackspace/examples/compute_v2/create_server.rb +89 -0
- data/lib/fog/rackspace/examples/compute_v2/delete_image.rb +61 -0
- data/lib/fog/rackspace/examples/compute_v2/delete_server.rb +56 -0
- data/lib/fog/rackspace/examples/compute_v2/detach_volume.rb +93 -0
- data/lib/fog/rackspace/examples/compute_v2/resize_server.rb +106 -0
- data/lib/fog/rackspace/examples/compute_v2/server_attachments.rb +69 -0
- data/lib/fog/rackspace/examples/compute_v2/server_metadata.rb +85 -0
- data/lib/fog/rackspace/identity.rb +1 -1
- data/lib/fog/rackspace/load_balancers.rb +2 -2
- data/lib/fog/rackspace/mock_data.rb +114 -96
- data/lib/fog/rackspace/models/compute_v2/attachment.rb +16 -0
- data/lib/fog/rackspace/models/compute_v2/attachments.rb +6 -0
- data/lib/fog/rackspace/models/compute_v2/flavor.rb +18 -0
- data/lib/fog/rackspace/models/compute_v2/flavors.rb +9 -1
- data/lib/fog/rackspace/models/compute_v2/image.rb +52 -7
- data/lib/fog/rackspace/models/compute_v2/images.rb +9 -0
- data/lib/fog/rackspace/models/compute_v2/meta_parent.rb +9 -0
- data/lib/fog/rackspace/models/compute_v2/metadata.rb +30 -7
- data/lib/fog/rackspace/models/compute_v2/metadatum.rb +4 -0
- data/lib/fog/rackspace/models/compute_v2/network.rb +27 -0
- data/lib/fog/rackspace/models/compute_v2/networks.rb +23 -0
- data/lib/fog/rackspace/models/compute_v2/server.rb +235 -24
- data/lib/fog/rackspace/models/compute_v2/servers.rb +19 -1
- data/lib/fog/rackspace/models/dns/zones.rb +35 -2
- data/lib/fog/rackspace/models/identity/credentials.rb +3 -2
- data/lib/fog/rackspace/models/storage/account.rb +24 -0
- data/lib/fog/rackspace/models/storage/directories.rb +3 -0
- data/lib/fog/rackspace/models/storage/directory.rb +68 -39
- data/lib/fog/rackspace/models/storage/file.rb +38 -67
- data/lib/fog/rackspace/models/storage/files.rb +11 -4
- data/lib/fog/rackspace/models/storage/metadata.rb +129 -0
- data/lib/fog/rackspace/requests/cdn/delete_object.rb +37 -0
- data/lib/fog/rackspace/requests/cdn/get_containers.rb +34 -0
- data/lib/fog/rackspace/requests/cdn/head_container.rb +24 -0
- data/lib/fog/rackspace/requests/cdn/post_container.rb +21 -0
- data/lib/fog/rackspace/requests/cdn/put_container.rb +21 -0
- data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +13 -0
- data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +7 -0
- data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +9 -0
- data/lib/fog/rackspace/requests/compute_v2/create_image.rb +9 -5
- data/lib/fog/rackspace/requests/compute_v2/create_network.rb +36 -0
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +38 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +2 -4
- data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +6 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_network.rb +21 -0
- data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +4 -0
- data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +12 -0
- data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +14 -0
- data/lib/fog/rackspace/requests/compute_v2/get_image.rb +18 -0
- data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +9 -0
- data/lib/fog/rackspace/requests/compute_v2/get_network.rb +21 -0
- data/lib/fog/rackspace/requests/compute_v2/get_server.rb +32 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +12 -0
- data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +12 -0
- data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +10 -0
- data/lib/fog/rackspace/requests/compute_v2/list_images.rb +10 -0
- data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +8 -0
- data/lib/fog/rackspace/requests/compute_v2/list_networks.rb +18 -0
- data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +31 -0
- data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +5 -0
- data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +37 -0
- data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +10 -0
- data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +10 -0
- data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +9 -0
- data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +10 -0
- data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +9 -0
- data/lib/fog/rackspace/requests/compute_v2/update_server.rb +9 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +0 -1
- data/lib/fog/rackspace/requests/storage/put_container.rb +2 -1
- data/lib/fog/rackspace/storage.rb +14 -2
- data/lib/fog/schema/data_validator.rb +154 -0
- data/lib/fog/storage.rb +8 -24
- data/lib/fog/terremark/models/shared/server.rb +5 -3
- data/lib/fog/terremark/parser.rb +14 -13
- data/lib/fog/terremark/parsers/shared/get_catalog.rb +5 -19
- data/lib/fog/terremark/parsers/shared/get_catalog_item.rb +4 -14
- data/lib/fog/terremark/parsers/shared/get_internet_services.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_keys_list.rb +4 -18
- data/lib/fog/terremark/parsers/shared/get_network_ips.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_node_services.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_organization.rb +4 -3
- data/lib/fog/terremark/parsers/shared/get_organizations.rb +3 -2
- data/lib/fog/terremark/parsers/shared/get_public_ips.rb +1 -1
- data/lib/fog/terremark/parsers/shared/get_tasks_list.rb +4 -17
- data/lib/fog/terremark/parsers/shared/get_vapp_template.rb +3 -14
- data/lib/fog/terremark/parsers/shared/get_vdc.rb +6 -38
- data/lib/fog/terremark/parsers/shared/instantiate_vapp_template.rb +3 -14
- data/lib/fog/terremark/parsers/shared/internet_service.rb +2 -5
- data/lib/fog/terremark/parsers/shared/network.rb +3 -11
- data/lib/fog/terremark/parsers/shared/node_service.rb +1 -1
- data/lib/fog/terremark/parsers/shared/public_ip.rb +1 -1
- data/lib/fog/terremark/parsers/shared/task.rb +3 -14
- data/lib/fog/terremark/parsers/shared/vapp.rb +3 -14
- data/lib/fog/vcloud/compute.rb +1 -0
- data/lib/fog/vcloud/models/compute/server.rb +15 -2
- data/lib/fog/vcloud/models/compute/vapp.rb +11 -0
- data/lib/fog/vcloud/requests/compute/configure_vm_network.rb +37 -0
- data/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +8 -4
- data/lib/fog/version.rb +1 -1
- data/lib/fog/volume.rb +6 -6
- data/lib/fog/vsphere/requests/compute/create_vm.rb +18 -3
- data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +1 -1
- data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +1 -1
- data/tests/aws/models/data_pipeline/pipeline_tests.rb +8 -0
- data/tests/aws/models/data_pipeline/pipelines_tests.rb +8 -0
- data/tests/aws/models/rds/server_tests.rb +10 -9
- data/tests/aws/requests/compute/image_tests.rb +2 -2
- data/tests/aws/requests/compute/security_group_tests.rb +1 -1
- data/tests/aws/requests/compute/spot_instance_tests.rb +3 -2
- data/tests/aws/requests/data_pipeline/helper.rb +44 -0
- data/tests/aws/requests/data_pipeline/pipeline_tests.rb +54 -0
- data/tests/aws/requests/rds/instance_tests.rb +8 -5
- data/tests/bluebox/requests/blb/helper.rb +64 -0
- data/tests/bluebox/requests/blb/lb_tests.rb +75 -0
- data/tests/brightbox/requests/compute/firewall_policy_tests.rb +7 -0
- data/tests/brightbox/requests/compute/helper.rb +4 -2
- data/tests/compute/helper.rb +8 -0
- data/tests/core/user_agent_tests.rb +6 -0
- data/tests/dreamhost/README.md +56 -0
- data/tests/dreamhost/dns_tests.rb +20 -0
- data/tests/dreamhost/helper.rb +19 -0
- data/tests/dreamhost/models/dns/record_tests.rb +73 -0
- data/tests/dreamhost/models/dns/records_tests.rb +29 -0
- data/tests/dreamhost/models/dns/zone_tests.rb +62 -0
- data/tests/dreamhost/models/dns/zones_tests.rb +29 -0
- data/tests/dreamhost/requests/dns/create_record_tests.rb +39 -0
- data/tests/dreamhost/requests/dns/delete_record_tests.rb +26 -0
- data/tests/dreamhost/requests/dns/list_records_tests.rb +31 -0
- data/tests/glesys/requests/compute/helper.rb +5 -5
- data/tests/helper.rb +1 -1
- data/tests/helpers/formats_helper.rb +63 -50
- data/tests/helpers/formats_helper_tests.rb +87 -36
- data/tests/helpers/mock_helper.rb +4 -1
- data/tests/helpers/schema_validator_tests.rb +107 -0
- data/tests/hp/models/block_storage/bootable_volume_tests.rb +23 -0
- data/tests/hp/models/block_storage/snapshot_tests.rb +23 -0
- data/tests/hp/models/block_storage/volume_tests.rb +21 -0
- data/tests/hp/models/compute/address_tests.rb +1 -1
- data/tests/hp/models/compute/addresses_tests.rb +1 -1
- data/tests/hp/models/compute/key_pair_tests.rb +1 -1
- data/tests/hp/models/compute/key_pairs_tests.rb +1 -1
- data/tests/hp/models/compute/metadata_image_tests.rb +60 -0
- data/tests/hp/models/compute/metadata_server_tests.rb +54 -0
- data/tests/hp/models/compute/security_group_tests.rb +3 -1
- data/tests/hp/models/compute/security_groups_tests.rb +1 -1
- data/tests/hp/models/storage/directories_tests.rb +23 -0
- data/tests/hp/models/storage/directory_tests.rb +62 -0
- data/tests/hp/models/storage/file_tests.rb +44 -0
- data/tests/hp/models/storage/files_tests.rb +38 -0
- data/tests/hp/requests/block_storage/bootable_volume_tests.rb +78 -0
- data/tests/hp/requests/block_storage/snapshot_tests.rb +56 -0
- data/tests/hp/requests/block_storage/volume_tests.rb +94 -0
- data/tests/hp/requests/cdn/container_tests.rb +1 -1
- data/tests/hp/requests/compute/address_tests.rb +5 -6
- data/tests/hp/requests/compute/flavor_tests.rb +1 -1
- data/tests/hp/requests/compute/image_tests.rb +1 -1
- data/tests/hp/requests/compute/key_pair_tests.rb +1 -1
- data/tests/hp/requests/compute/metadata_tests.rb +70 -0
- data/tests/hp/requests/compute/persistent_server_tests.rb +66 -0
- data/tests/hp/requests/compute/security_group_rule_tests.rb +1 -1
- data/tests/hp/requests/compute/security_group_tests.rb +1 -1
- data/tests/hp/requests/compute/server_address_tests.rb +1 -1
- data/tests/hp/requests/compute/server_tests.rb +5 -6
- data/tests/hp/requests/compute/server_volume_tests.rb +76 -0
- data/tests/hp/requests/storage/container_tests.rb +1 -1
- data/tests/hp/requests/storage/object_tests.rb +9 -1
- data/tests/hp/user_agent_tests.rb +13 -0
- data/tests/internet_archive/models/storage/directory_tests.rb +51 -0
- data/tests/internet_archive/models/storage/file_tests.rb +80 -0
- data/tests/internet_archive/models/storage/files_tests.rb +56 -0
- data/tests/internet_archive/models/storage/url_tests.rb +28 -0
- data/tests/internet_archive/models/storage/version_tests.rb +52 -0
- data/tests/internet_archive/models/storage/versions_tests.rb +56 -0
- data/tests/internet_archive/requests/storage/acl_utils_tests.rb +209 -0
- data/tests/internet_archive/requests/storage/bucket_tests.rb +328 -0
- data/tests/internet_archive/requests/storage/cors_utils_tests.rb +108 -0
- data/tests/internet_archive/requests/storage/multipart_upload_tests.rb +132 -0
- data/tests/internet_archive/requests/storage/object_tests.rb +166 -0
- data/tests/internet_archive/requests/storage/versioning_tests.rb +258 -0
- data/tests/internet_archive/signaturev4_tests.rb +41 -0
- data/tests/internet_archive/signed_params_tests.rb +5 -0
- data/tests/openstack/models/compute/images_tests.rb +14 -0
- data/tests/openstack/models/compute/server_tests.rb +42 -1
- data/tests/openstack/models/identity/roles_tests.rb +1 -0
- data/tests/openstack/models/identity/user_tests.rb +2 -2
- data/tests/openstack/models/network/network_tests.rb +21 -1
- data/tests/openstack/models/storage/file_tests.rb +178 -0
- data/tests/openstack/requests/compute/limit_tests.rb +1 -1
- data/tests/openstack/requests/compute/tenant_tests.rb +2 -2
- data/tests/openstack/requests/identity/ec2_credentials_tests.rb +7 -4
- data/tests/openstack/requests/identity/helper.rb +17 -0
- data/tests/openstack/requests/identity/role_tests.rb +6 -0
- data/tests/openstack/requests/identity/tenant_tests.rb +14 -12
- data/tests/openstack/requests/identity/user_tests.rb +9 -5
- data/tests/openstack/requests/storage/container_tests.rb +64 -0
- data/tests/openstack/requests/storage/large_object_tests.rb +47 -0
- data/tests/openstack/requests/storage/object_tests.rb +84 -0
- data/tests/openstack/volume_tests.rb +15 -0
- data/tests/rackspace/cdn_tests.rb +78 -0
- data/tests/rackspace/helper.rb +9 -0
- data/tests/rackspace/models/compute_v2/flavors_tests.rb +1 -1
- data/tests/rackspace/models/compute_v2/image_tests.rb +2 -4
- data/tests/rackspace/models/compute_v2/images_tests.rb +1 -1
- data/tests/rackspace/models/compute_v2/metadata_tests.rb +5 -3
- data/tests/rackspace/models/compute_v2/network_tests.rb +10 -0
- data/tests/rackspace/models/compute_v2/networks_tests.rb +10 -0
- data/tests/rackspace/models/compute_v2/server_tests.rb +8 -7
- data/tests/rackspace/models/compute_v2/servers_tests.rb +5 -7
- data/tests/rackspace/models/dns/zones_tests.rb +22 -0
- data/tests/rackspace/models/identity/credentials_tests.rb +14 -5
- data/tests/rackspace/models/storage/account_tests.rb +28 -0
- data/tests/rackspace/models/storage/directories_tests.rb +29 -0
- data/tests/rackspace/models/storage/directory_tests.rb +141 -0
- data/tests/rackspace/models/storage/file_tests.rb +86 -11
- data/tests/rackspace/models/storage/metadata_tests.rb +174 -0
- data/tests/rackspace/requests/cdn/cdn_tests.rb +76 -0
- data/tests/rackspace/requests/compute/image_tests.rb +2 -2
- data/tests/rackspace/requests/compute_v2/image_tests.rb +6 -6
- data/tests/rackspace/requests/compute_v2/network_tests.rb +49 -0
- data/tests/rackspace/requests/identity/user_tests.rb +0 -4
- data/tests/rackspace/requests/storage/container_tests.rb +8 -1
- data/tests/rackspace/storage_tests.rb +8 -0
- data/tests/storage/helper.rb +3 -0
- metadata +341 -40
- data/docs/storage/aws.markdown +0 -21
- data/lib/fog/bin/virtual_box.rb +0 -57
- data/lib/fog/rackspace/docs/cloud_servers.md +0 -65
- data/lib/fog/rackspace/requests/identity/get_credentials.rb +0 -15
- data/lib/fog/virtual_box.rb +0 -11
- data/lib/fog/virtual_box/compute.rb +0 -59
- data/lib/fog/virtual_box/models/compute/medium.rb +0 -87
- data/lib/fog/virtual_box/models/compute/medium_format.rb +0 -34
- data/lib/fog/virtual_box/models/compute/mediums.rb +0 -32
- data/lib/fog/virtual_box/models/compute/nat_engine.rb +0 -65
- data/lib/fog/virtual_box/models/compute/nat_redirect.rb +0 -91
- data/lib/fog/virtual_box/models/compute/nat_redirects.rb +0 -41
- data/lib/fog/virtual_box/models/compute/network_adapter.rb +0 -82
- data/lib/fog/virtual_box/models/compute/network_adapters.rb +0 -42
- data/lib/fog/virtual_box/models/compute/server.rb +0 -199
- data/lib/fog/virtual_box/models/compute/servers.rb +0 -41
- data/lib/fog/virtual_box/models/compute/storage_controller.rb +0 -83
- data/lib/fog/virtual_box/models/compute/storage_controllers.rb +0 -38
@@ -4,16 +4,34 @@ require 'fog/glesys/models/compute/template'
|
|
4
4
|
module Fog
|
5
5
|
module Compute
|
6
6
|
class Glesys
|
7
|
-
|
8
7
|
class Templates < Fog::Collection
|
9
8
|
|
10
|
-
model Fog::Glesys::
|
9
|
+
model Fog::Compute::Glesys::Template
|
11
10
|
|
12
11
|
def all
|
13
|
-
|
14
|
-
|
12
|
+
# Only select OpenVZ and Xen platforms
|
13
|
+
# Glesys only offers Xen and OpenVZ but they have other platforms in the list
|
14
|
+
images = platform :openvz, :xen
|
15
|
+
load(images)
|
16
|
+
end
|
17
|
+
|
18
|
+
def openvz
|
19
|
+
images = platform :openvz
|
20
|
+
load(images)
|
21
|
+
end
|
22
|
+
|
23
|
+
def xen
|
24
|
+
images = platform :xen
|
25
|
+
load(images)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
15
29
|
|
16
|
-
|
30
|
+
def platform(*platforms)
|
31
|
+
images = service.template_list.body['response']['templates']
|
32
|
+
images.select do |platform, images|
|
33
|
+
platforms.include?(platform.downcase.to_sym)
|
34
|
+
end.collect{|platform, images| images}.flatten
|
17
35
|
end
|
18
36
|
|
19
37
|
end
|
data/lib/fog/hp.rb
CHANGED
@@ -2,6 +2,12 @@ require 'fog/core'
|
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module HP
|
5
|
+
|
6
|
+
# define a specific version for the HP Provider
|
7
|
+
unless const_defined?(:VERSION)
|
8
|
+
VERSION = '0.0.19'
|
9
|
+
end
|
10
|
+
|
5
11
|
extend Fog::Provider
|
6
12
|
|
7
13
|
module Errors
|
@@ -13,10 +19,14 @@ module Fog
|
|
13
19
|
data = nil
|
14
20
|
message = nil
|
15
21
|
else
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
message
|
22
|
+
begin
|
23
|
+
data = Fog::JSON.decode(error.response.body)
|
24
|
+
message = data['message']
|
25
|
+
if message.nil? and !data.values.first.nil?
|
26
|
+
message = data.values.first['message']
|
27
|
+
end
|
28
|
+
rescue MultiJson::DecodeError
|
29
|
+
message = error.response.body #### body is not in JSON format, so just return as is
|
20
30
|
end
|
21
31
|
end
|
22
32
|
|
@@ -29,6 +39,7 @@ module Fog
|
|
29
39
|
class InternalServerError < ServiceError; end
|
30
40
|
class Conflict < ServiceError; end
|
31
41
|
class NotFound < ServiceError; end
|
42
|
+
class Forbidden < ServiceError; end
|
32
43
|
class ServiceUnavailable < ServiceError; end
|
33
44
|
|
34
45
|
class BadRequest < ServiceError
|
@@ -47,6 +58,7 @@ module Fog
|
|
47
58
|
service(:cdn, 'hp/cdn', 'CDN')
|
48
59
|
service(:compute, 'hp/compute', 'Compute')
|
49
60
|
service(:storage, 'hp/storage', 'Storage')
|
61
|
+
service(:block_storage, 'hp/block_storage', 'BlockStorage')
|
50
62
|
|
51
63
|
# legacy swauth 1.0/1.1 style authentication
|
52
64
|
def self.authenticate_v1(options, connection_options = {})
|
@@ -61,14 +73,17 @@ module Fog
|
|
61
73
|
@auth_path = "auth/v1.0"
|
62
74
|
end
|
63
75
|
service_url = "#{@scheme}://#{@host}:#{@port}"
|
76
|
+
# Set the User-Agent
|
77
|
+
@user_agent = options[:user_agent]
|
78
|
+
set_user_agent_header(connection_options, "fog/#{Fog::VERSION}", @user_agent)
|
64
79
|
connection = Fog::Connection.new(service_url, false, connection_options)
|
65
|
-
@
|
80
|
+
@hp_access_key = options[:hp_access_key]
|
66
81
|
@hp_secret_key = options[:hp_secret_key]
|
67
82
|
response = connection.request({
|
68
83
|
:expects => [200, 204],
|
69
84
|
:headers => {
|
70
85
|
'X-Auth-Key' => @hp_secret_key,
|
71
|
-
'X-Auth-User' => @
|
86
|
+
'X-Auth-User' => @hp_access_key
|
72
87
|
},
|
73
88
|
:host => @host,
|
74
89
|
:port => @port,
|
@@ -101,16 +116,19 @@ module Fog
|
|
101
116
|
@auth_path = "v2.0/tokens"
|
102
117
|
end
|
103
118
|
service_url = "#{@scheme}://#{@host}:#{@port}"
|
119
|
+
# Set the User-Agent. If the caller sets a user_agent, use it.
|
120
|
+
@user_agent = options[:user_agent]
|
121
|
+
set_user_agent_header(connection_options, "fog/#{Fog::VERSION}", @user_agent)
|
104
122
|
connection = Fog::Connection.new(service_url, false, connection_options)
|
105
123
|
|
106
124
|
### Implement HP Control Services Authentication services ###
|
107
125
|
# Get the style of auth credentials passed, defaults to access/secret key style
|
108
126
|
@hp_use_upass_auth_style = options[:hp_use_upass_auth_style] || false
|
109
|
-
@
|
127
|
+
@hp_access_key = options[:hp_access_key]
|
110
128
|
@hp_secret_key = options[:hp_secret_key]
|
111
129
|
@hp_tenant_id = options[:hp_tenant_id]
|
112
130
|
@hp_service_type = options[:hp_service_type]
|
113
|
-
@hp_avl_zone = options[:hp_avl_zone]
|
131
|
+
@hp_avl_zone = options[:hp_avl_zone]
|
114
132
|
|
115
133
|
### Decide which auth style to use
|
116
134
|
unless (@hp_use_upass_auth_style)
|
@@ -118,7 +136,7 @@ module Fog
|
|
118
136
|
request_body = {
|
119
137
|
'auth' => {
|
120
138
|
'apiAccessKeyCredentials' => {
|
121
|
-
'accessKey' => "#{@
|
139
|
+
'accessKey' => "#{@hp_access_key}",
|
122
140
|
'secretKey' => "#{@hp_secret_key}"
|
123
141
|
}
|
124
142
|
}
|
@@ -128,17 +146,17 @@ module Fog
|
|
128
146
|
request_body = {
|
129
147
|
'auth' => {
|
130
148
|
'passwordCredentials' => {
|
131
|
-
'username' => "#{@
|
149
|
+
'username' => "#{@hp_access_key}",
|
132
150
|
'password' => "#{@hp_secret_key}"
|
133
151
|
}
|
134
152
|
}
|
135
153
|
}
|
136
154
|
end
|
137
155
|
# add tenant_id if specified
|
138
|
-
request_body['auth']['tenantId'] =
|
156
|
+
request_body['auth']['tenantId'] = @hp_tenant_id if @hp_tenant_id
|
139
157
|
|
140
158
|
### Make the call to CS to get auth token and service catalog
|
141
|
-
response =
|
159
|
+
response = connection.request(
|
142
160
|
{
|
143
161
|
:expects => 200,
|
144
162
|
:headers => {
|
@@ -157,9 +175,9 @@ module Fog
|
|
157
175
|
### fish out auth_token and endpoint for the service
|
158
176
|
auth_token = body['access']['token']['id']
|
159
177
|
endpoint_url = get_endpoint_from_catalog(body['access']['serviceCatalog'], @hp_service_type, @hp_avl_zone)
|
160
|
-
# If service is Storage, then get the CDN endpoint as well
|
161
|
-
if @hp_service_type == "
|
162
|
-
cdn_endpoint_url = get_endpoint_from_catalog(body['access']['serviceCatalog'], "
|
178
|
+
# If service is Storage, then get the CDN endpoint as well. 'Name' is unique instead of 'Type'
|
179
|
+
if @hp_service_type == "Object Storage"
|
180
|
+
cdn_endpoint_url = get_endpoint_from_catalog(body['access']['serviceCatalog'], "CDN", @hp_avl_zone)
|
163
181
|
end
|
164
182
|
|
165
183
|
return {
|
@@ -180,19 +198,31 @@ module Fog
|
|
180
198
|
private
|
181
199
|
|
182
200
|
def self.get_endpoint_from_catalog(service_catalog, service_type, avl_zone)
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
raise "Unable to retrieve endpoint service url from service catalog." if endpoint_url.nil?
|
192
|
-
return endpoint_url
|
201
|
+
raise "Unable to parse service catalog." unless service_catalog
|
202
|
+
service_item = service_catalog.detect do |s|
|
203
|
+
# 'Name' is unique instead of 'Type'
|
204
|
+
s["name"] == service_type
|
205
|
+
end
|
206
|
+
if service_item and service_item['endpoints']
|
207
|
+
endpoint = service_item['endpoints'].detect do |ep|
|
208
|
+
ep['region'] == avl_zone
|
193
209
|
end
|
210
|
+
endpoint_url = endpoint['publicURL'] if endpoint
|
211
|
+
raise "Unable to retrieve endpoint service url for availability zone '#{avl_zone}' from service catalog. " if endpoint_url.nil?
|
212
|
+
return endpoint_url
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
def self.set_user_agent_header(conn_opts, base_str, client_str)
|
217
|
+
if client_str
|
218
|
+
user_agent = {'User-Agent' => base_str + " (#{client_str})"}
|
219
|
+
else
|
220
|
+
user_agent = {'User-Agent' => base_str}
|
221
|
+
end
|
222
|
+
if conn_opts[:headers]
|
223
|
+
conn_opts[:headers] = user_agent.merge!(conn_opts[:headers])
|
194
224
|
else
|
195
|
-
|
225
|
+
conn_opts[:headers] = user_agent
|
196
226
|
end
|
197
227
|
end
|
198
228
|
|
@@ -0,0 +1,113 @@
|
|
1
|
+
0.0.19 18/01/2013
|
2
|
+
=================
|
3
|
+
- update Block Storage namespace to be Fog::HP::BlockStorage
|
4
|
+
- merge with upstream fog v1.8.0
|
5
|
+
- deprecate hp_account_id to use hp_access_key instead
|
6
|
+
|
7
|
+
0.0.18 12/04/2012
|
8
|
+
=================
|
9
|
+
- add support for controlled access via cross-tenant ACLs
|
10
|
+
- add support for creating bootable volumes
|
11
|
+
- add support for creating persistent server instances using bootable volumes
|
12
|
+
|
13
|
+
0.0.17 10/16/2012
|
14
|
+
=================
|
15
|
+
- add support for generating temporary urls
|
16
|
+
- add support for retrieving encrypted password for Windows instances
|
17
|
+
- add support for creating Windows instances
|
18
|
+
|
19
|
+
0.0.16 08/15/2012
|
20
|
+
=================
|
21
|
+
- add support for User-Agent string in header
|
22
|
+
- add support for Snapshots API to BlockStorage provider
|
23
|
+
- add support for Volumes API to BlockStorage provider
|
24
|
+
- add BlockStorage service to HP provider
|
25
|
+
- upgrade to excon 0.14.0 to take advantage of instrumentation
|
26
|
+
- add a head method for the directories collection
|
27
|
+
- update image model
|
28
|
+
- update put_object and get_object to accept blocks
|
29
|
+
|
30
|
+
0.0.15 06/08/2012
|
31
|
+
=================
|
32
|
+
- add metadata attribute in server and image models to manage metadata
|
33
|
+
- add metadata model and request layer functionality with mocking support
|
34
|
+
- add tests for metadata
|
35
|
+
- upgrade to excon 0.13.0 to take advantage of ssl passthru functionality
|
36
|
+
- add security_groups attribute to the server model
|
37
|
+
- add support for future availability zones for all HP services
|
38
|
+
- change hp_avl_zone to be a required parameter for all HP services
|
39
|
+
- add support for console output in compute service
|
40
|
+
- add helper method for cdn public ssl url
|
41
|
+
- add tests for storage, compute and cdn services
|
42
|
+
- improve quality of mocks to match real implementation
|
43
|
+
|
44
|
+
0.0.14 02/23/2012
|
45
|
+
=================
|
46
|
+
- minor fix for public ip address
|
47
|
+
- minor fix for exceptions raised by CDN service
|
48
|
+
- add keypair get/set methods to server model
|
49
|
+
|
50
|
+
0.0.13 02/09/2012
|
51
|
+
=================
|
52
|
+
- provide access to availability zones for compute
|
53
|
+
- minor fix for CS authentication uri
|
54
|
+
- update inline documentation
|
55
|
+
- update README_HP with copyright message
|
56
|
+
|
57
|
+
0.0.12 02/02/2012
|
58
|
+
=================
|
59
|
+
- integrate CS authentication
|
60
|
+
- refactor HP provider to work with legacy v1 authentication as well
|
61
|
+
- integrate CDN to work with Storage provider
|
62
|
+
- add additional attributes for CDN provider
|
63
|
+
- remove bits and add cores as alias to vcpus in flavor model
|
64
|
+
- update inline documentation
|
65
|
+
- update README_HP with copyright message
|
66
|
+
|
67
|
+
0.0.11 01/09/2012
|
68
|
+
=================
|
69
|
+
- add ability to customize various connection timeouts options
|
70
|
+
- add CDN service capabilities
|
71
|
+
- integrate the CDN service with the Storage service
|
72
|
+
- add a new CDN Uri option to Storage service
|
73
|
+
- incorporate Diablo 4 API changes
|
74
|
+
- update image, server and flavor models
|
75
|
+
- update create_image and create_server calls
|
76
|
+
- add rebuild_server and change_password_server calls
|
77
|
+
- new extensions APIs
|
78
|
+
- add keypair model and request layer with mocking support
|
79
|
+
- add security group model and request layer with mocking support
|
80
|
+
- add security group rule model and request layer with mocking support
|
81
|
+
- add address model and request layer with mocking support
|
82
|
+
- update server model with address management methods
|
83
|
+
- update server creation to use keypairs, security groups and other options
|
84
|
+
- update inline documentation
|
85
|
+
|
86
|
+
0.0.10 10/18/2011
|
87
|
+
=================
|
88
|
+
- merge with upstream fog v1.0.0
|
89
|
+
|
90
|
+
0.0.9 09/21/2011
|
91
|
+
================
|
92
|
+
- minor bug fixes
|
93
|
+
- add support for special char. including '?' in container and object names
|
94
|
+
- fix public_url for special char. in container and object names
|
95
|
+
|
96
|
+
0.0.8 08/29/2011
|
97
|
+
================
|
98
|
+
- add README_HP.rdoc
|
99
|
+
- add CHANGELOG.hp
|
100
|
+
- remove resize_server, confirm_resized_server and revert_resized_server from HP Cloud Compute
|
101
|
+
|
102
|
+
0.0.7 08/10/2011
|
103
|
+
================
|
104
|
+
- minor fixes
|
105
|
+
- added acl support to directory
|
106
|
+
- added public? method to directory model
|
107
|
+
- added mock support for HP Cloud Object Storage
|
108
|
+
|
109
|
+
0.0.6 07/26/2011
|
110
|
+
================
|
111
|
+
- initial release with name change to 'hpfog'
|
112
|
+
- HP provider for HP Cloud Object Storage
|
113
|
+
- HP provider for HP Cloud Compute
|
data/lib/fog/hp/README_HP.rdoc
CHANGED
@@ -29,11 +29,14 @@ If you should ever need to remove the library:
|
|
29
29
|
The Ruby Fog library is well documented on the community web site at {fog.io}[http://fog.io], but for specific examples
|
30
30
|
using HP's extensions, see:
|
31
31
|
|
32
|
-
* {HP Cloud Fog library - Object Storage Examples}[https://
|
33
|
-
* {HP Cloud Fog library - Compute Examples}[https://
|
34
|
-
* {HP Cloud Fog library - CDN Examples}[https://
|
32
|
+
* {HP Cloud Fog library - Object Storage Examples}[https://docs.hpcloud.com/bindings/fog/object-storage]
|
33
|
+
* {HP Cloud Fog library - Compute Examples}[https://docs.hpcloud.com/bindings/fog/compute]
|
34
|
+
* {HP Cloud Fog library - CDN Examples}[https://docs.hpcloud.com/bindings/fog/cdn]
|
35
|
+
* {HP Cloud Fog library - Block Storage Examples}[https://docs.hpcloud.com/bindings/fog/block-storage]
|
36
|
+
|
37
|
+
Having trouble? Get help over at the {Forums}[https://community.hpcloud.com/forum] or
|
38
|
+
at the {Knowledge Base}[https://community.hpcloud.com/knowledge-base] areas.
|
35
39
|
|
36
|
-
Having trouble? {Get help over at the Forums}[https://connect.hpcloud.com]
|
37
40
|
|
38
41
|
== Notice
|
39
42
|
|
@@ -56,5 +59,3 @@ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
56
59
|
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
57
60
|
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
58
61
|
DEALINGS IN THE SOFTWARE.
|
59
|
-
|
60
|
-
|
@@ -0,0 +1,169 @@
|
|
1
|
+
require 'fog/hp'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module HP
|
5
|
+
class BlockStorage < Fog::Service
|
6
|
+
|
7
|
+
requires :hp_secret_key, :hp_tenant_id, :hp_avl_zone
|
8
|
+
recognizes :hp_auth_uri
|
9
|
+
recognizes :persistent, :connection_options
|
10
|
+
recognizes :hp_use_upass_auth_style, :hp_auth_version, :user_agent
|
11
|
+
recognizes :hp_access_key, :hp_account_id # :hp_account_id is deprecated use hp_access_key instead
|
12
|
+
|
13
|
+
secrets :hp_secret_key
|
14
|
+
|
15
|
+
model_path 'fog/hp/models/block_storage'
|
16
|
+
model :volume
|
17
|
+
collection :volumes
|
18
|
+
collection :bootable_volumes
|
19
|
+
|
20
|
+
model :snapshot
|
21
|
+
collection :snapshots
|
22
|
+
|
23
|
+
request_path 'fog/hp/requests/block_storage'
|
24
|
+
request :create_volume
|
25
|
+
request :delete_volume
|
26
|
+
request :get_bootable_volume_details
|
27
|
+
request :get_volume_details
|
28
|
+
request :list_bootable_volumes
|
29
|
+
request :list_volumes
|
30
|
+
|
31
|
+
request :create_snapshot
|
32
|
+
request :delete_snapshot
|
33
|
+
request :get_snapshot_details
|
34
|
+
request :list_snapshots
|
35
|
+
|
36
|
+
module Utils
|
37
|
+
|
38
|
+
def compute
|
39
|
+
@compute ||= Fog::Compute.new(
|
40
|
+
:provider => 'HP',
|
41
|
+
:hp_access_key => @hp_access_key,
|
42
|
+
:hp_secret_key => @hp_secret_key,
|
43
|
+
:hp_auth_uri => @hp_auth_uri,
|
44
|
+
:hp_tenant_id => @hp_tenant_id,
|
45
|
+
:hp_avl_zone => @hp_avl_zone,
|
46
|
+
:connection_options => @connection_options
|
47
|
+
)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
class Mock
|
53
|
+
include Utils
|
54
|
+
|
55
|
+
def self.data
|
56
|
+
@data ||= Hash.new do |hash, key|
|
57
|
+
hash[key] = {
|
58
|
+
:volumes => {},
|
59
|
+
:snapshots => {}
|
60
|
+
}
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.reset
|
65
|
+
@data = nil
|
66
|
+
end
|
67
|
+
|
68
|
+
def initialize(options={})
|
69
|
+
# deprecate hp_account_id
|
70
|
+
if options[:hp_account_id]
|
71
|
+
Fog::Logger.deprecation(":hp_account_id is deprecated, please use :hp_access_key instead.")
|
72
|
+
@hp_access_key = options.delete(:hp_account_id)
|
73
|
+
end
|
74
|
+
@hp_access_key = options[:hp_access_key]
|
75
|
+
unless @hp_access_key
|
76
|
+
raise ArgumentError.new("Missing required arguments: hp_access_key. :hp_account_id is deprecated, please use :hp_access_key instead.")
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def data
|
81
|
+
self.class.data[@hp_access_key]
|
82
|
+
end
|
83
|
+
|
84
|
+
def reset_data
|
85
|
+
self.class.data.delete(@hp_access_key)
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
class Real
|
91
|
+
include Utils
|
92
|
+
|
93
|
+
def initialize(options={})
|
94
|
+
# deprecate hp_account_id
|
95
|
+
if options[:hp_account_id]
|
96
|
+
Fog::Logger.deprecation(":hp_account_id is deprecated, please use :hp_access_key instead.")
|
97
|
+
options[:hp_access_key] = options.delete(:hp_account_id)
|
98
|
+
end
|
99
|
+
@hp_access_key = options[:hp_access_key]
|
100
|
+
unless @hp_access_key
|
101
|
+
raise ArgumentError.new("Missing required arguments: hp_access_key. :hp_account_id is deprecated, please use :hp_access_key instead.")
|
102
|
+
end
|
103
|
+
@hp_secret_key = options[:hp_secret_key]
|
104
|
+
@hp_auth_uri = options[:hp_auth_uri]
|
105
|
+
@connection_options = options[:connection_options] || {}
|
106
|
+
### Set an option to use the style of authentication desired; :v1 or :v2 (default)
|
107
|
+
auth_version = options[:hp_auth_version] || :v2
|
108
|
+
### Pass the service name for object storage to the authentication call
|
109
|
+
options[:hp_service_type] = "Block Storage"
|
110
|
+
@hp_tenant_id = options[:hp_tenant_id]
|
111
|
+
@hp_avl_zone = options[:hp_avl_zone]
|
112
|
+
|
113
|
+
### Make the authentication call
|
114
|
+
if (auth_version == :v2)
|
115
|
+
# Call the control services authentication
|
116
|
+
credentials = Fog::HP.authenticate_v2(options, @connection_options)
|
117
|
+
# the CS service catalog returns the block storage endpoint
|
118
|
+
@hp_block_uri = credentials[:endpoint_url]
|
119
|
+
else
|
120
|
+
# Call the legacy v1.0/v1.1 authentication
|
121
|
+
credentials = Fog::HP.authenticate_v1(options, @connection_options)
|
122
|
+
# the user sends in the block storage endpoint
|
123
|
+
@hp_block_uri = options[:hp_auth_uri]
|
124
|
+
end
|
125
|
+
|
126
|
+
@auth_token = credentials[:auth_token]
|
127
|
+
@persistent = options[:persistent] || false
|
128
|
+
|
129
|
+
uri = URI.parse(@hp_block_uri)
|
130
|
+
@host = uri.host
|
131
|
+
@path = uri.path
|
132
|
+
@port = uri.port
|
133
|
+
@scheme = uri.scheme
|
134
|
+
|
135
|
+
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
136
|
+
end
|
137
|
+
|
138
|
+
def reload
|
139
|
+
@connection.reset
|
140
|
+
end
|
141
|
+
|
142
|
+
def request(params, parse_json = true, &block)
|
143
|
+
begin
|
144
|
+
response = @connection.request(params.merge!({
|
145
|
+
:headers => {
|
146
|
+
'Content-Type' => 'application/json',
|
147
|
+
'X-Auth-Token' => @auth_token
|
148
|
+
}.merge!(params[:headers] || {}),
|
149
|
+
:host => @host,
|
150
|
+
:path => "#{@path}/#{params[:path]}",
|
151
|
+
}), &block)
|
152
|
+
rescue Excon::Errors::HTTPStatusError => error
|
153
|
+
raise case error
|
154
|
+
when Excon::Errors::NotFound
|
155
|
+
Fog::HP::BlockStorage::NotFound.slurp(error)
|
156
|
+
else
|
157
|
+
error
|
158
|
+
end
|
159
|
+
end
|
160
|
+
if !response.body.empty? && parse_json && response.headers['Content-Type'] =~ %r{application/json}
|
161
|
+
response.body = Fog::JSON.decode(response.body)
|
162
|
+
end
|
163
|
+
response
|
164
|
+
end
|
165
|
+
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|