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
@@ -0,0 +1,44 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/internet_archive/parsers/storage/initiate_multipart_upload'
|
7
|
+
|
8
|
+
# Initiate a multipart upload to an S3 bucket
|
9
|
+
#
|
10
|
+
# @param bucket_name [String] Name of bucket to create object in
|
11
|
+
# @param object_name [String] Name of object to create
|
12
|
+
# @param options [Hash]:
|
13
|
+
# @option options [String] Cache-Control Caching behaviour
|
14
|
+
# @option options [String] Content-Disposition Presentational information for the object
|
15
|
+
# @option options [String] Content-Encoding Encoding of object data
|
16
|
+
# @option options [String] Content-MD5 Base64 encoded 128-bit MD5 digest of message (defaults to Base64 encoded MD5 of object.read)
|
17
|
+
# @option options [String] Content-Type Standard MIME type describing contents (defaults to MIME::Types.of.first)
|
18
|
+
# @option options [String] x-amz-acl Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
19
|
+
# @option options [String] x-amz-meta-#{name} Headers to be returned with object, note total size of request without body must be less than 8 KB.
|
20
|
+
#
|
21
|
+
# @return [Excon::Response] response:
|
22
|
+
# * body [Hash]:
|
23
|
+
# * Bucket [String] - Bucket where upload was initiated
|
24
|
+
# * Key [String] - Object key where the upload was initiated
|
25
|
+
# * UploadId [String] - Id for initiated multipart upload
|
26
|
+
#
|
27
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadInitiate.html
|
28
|
+
#
|
29
|
+
def initiate_multipart_upload(bucket_name, object_name, options = {})
|
30
|
+
request({
|
31
|
+
:expects => 200,
|
32
|
+
:headers => options,
|
33
|
+
:host => "#{bucket_name}.#{@host}",
|
34
|
+
:method => 'POST',
|
35
|
+
:parser => Fog::Parsers::Storage::InternetArchive::InitiateMultipartUpload.new,
|
36
|
+
:path => CGI.escape(object_name),
|
37
|
+
:query => {'uploads' => nil}
|
38
|
+
})
|
39
|
+
end
|
40
|
+
|
41
|
+
end # Real
|
42
|
+
end # Storage
|
43
|
+
end # InternetArchive
|
44
|
+
end # Fog
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/internet_archive/parsers/storage/list_multipart_uploads'
|
7
|
+
|
8
|
+
# List multipart uploads for a bucket
|
9
|
+
#
|
10
|
+
# @param bucket_name [String] Name of bucket to list multipart uploads for
|
11
|
+
# @param upload_id [String] upload id to list objects for
|
12
|
+
# @param options [Hash] config arguments for list. Defaults to {}.
|
13
|
+
# @option options key-marker[String] limits parts to only those that appear lexicographically after this key.
|
14
|
+
# @option options max-uploads [Integer] limits number of uploads returned
|
15
|
+
# @option options upload-id-marker [String] limits uploads to only those that appear lexicographically after this upload id.
|
16
|
+
#
|
17
|
+
# @return [Excon::Response] response:
|
18
|
+
# * body [Hash]:
|
19
|
+
# * Bucket [string] Bucket where the multipart upload was initiated
|
20
|
+
# * IsTruncated [Boolean] Whether or not the listing is truncated
|
21
|
+
# * KeyMarker [String] first key in list, only upload ids after this lexographically will appear
|
22
|
+
# * MaxUploads [Integer] Maximum results to return
|
23
|
+
# * NextKeyMarker [String] last key in list, for further pagination
|
24
|
+
# * NextUploadIdMarker [String] last key in list, for further pagination
|
25
|
+
# * Upload [Hash]:
|
26
|
+
# * Initiated [Time] Time when upload was initiated
|
27
|
+
# * Initiator [Hash]:
|
28
|
+
# * DisplayName [String] Display name of upload initiator
|
29
|
+
# * ID [String] Id of upload initiator
|
30
|
+
# * Key [String] Key where multipart upload was initiated
|
31
|
+
# * Owner [Hash]:
|
32
|
+
# * DisplayName [String] Display name of upload owner
|
33
|
+
# * ID [String] Id of upload owner
|
34
|
+
# * StorageClass [String] Storage class of object
|
35
|
+
# * UploadId [String] upload id of upload containing part
|
36
|
+
# * UploadIdMarker [String] first key in list, only upload ids after this lexographically will appear
|
37
|
+
#
|
38
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListMPUpload.html
|
39
|
+
#
|
40
|
+
def list_multipart_uploads(bucket_name, options = {})
|
41
|
+
request({
|
42
|
+
:expects => 200,
|
43
|
+
:headers => {},
|
44
|
+
:host => "#{bucket_name}.#{@host}",
|
45
|
+
:idempotent => true,
|
46
|
+
:method => 'GET',
|
47
|
+
:parser => Fog::Parsers::Storage::InternetArchive::ListMultipartUploads.new,
|
48
|
+
:query => options.merge!({'uploads' => nil})
|
49
|
+
})
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/internet_archive/parsers/storage/list_parts'
|
7
|
+
|
8
|
+
# List parts for a multipart upload
|
9
|
+
#
|
10
|
+
# @param bucket_name [String] Name of bucket to list parts for
|
11
|
+
# @param object_name [String] Name of object to list parts for
|
12
|
+
# @param upload_id [String] upload id to list objects for
|
13
|
+
# @param options [Hash] config arguments for list. Defaults to {}.
|
14
|
+
# @option options max-parts [Integer] limits number of parts returned
|
15
|
+
# @option options part-number-marker [String] limits parts to only those that appear lexicographically after this part number.
|
16
|
+
#
|
17
|
+
# @return [Excon::Response] response:
|
18
|
+
# * body [Hash]:
|
19
|
+
# * Bucket [string] Bucket where the multipart upload was initiated
|
20
|
+
# * Initiator [Hash]:
|
21
|
+
# * DisplayName [String] Display name of upload initiator
|
22
|
+
# * ID [String] Id of upload initiator
|
23
|
+
# * IsTruncated [Boolean] Whether or not the listing is truncated
|
24
|
+
# * Key [String] Key where multipart upload was initiated
|
25
|
+
# * MaxParts [String] maximum number of replies alllowed in response
|
26
|
+
# * NextPartNumberMarker [String] last item in list, for further pagination
|
27
|
+
# * Part [Array]:
|
28
|
+
# * ETag [String] ETag of part
|
29
|
+
# * LastModified [Timestamp] Last modified for part
|
30
|
+
# * PartNumber [String] Part number for part
|
31
|
+
# * Size [Integer] Size of part
|
32
|
+
# * PartNumberMarker [String] Part number after which listing begins
|
33
|
+
# * StorageClass [String] Storage class of object
|
34
|
+
# * UploadId [String] upload id of upload containing part
|
35
|
+
#
|
36
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/mpUploadListParts.html
|
37
|
+
#
|
38
|
+
def list_parts(bucket_name, object_name, upload_id, options = {})
|
39
|
+
options['uploadId'] = upload_id
|
40
|
+
request({
|
41
|
+
:expects => 200,
|
42
|
+
:headers => {},
|
43
|
+
:host => "#{bucket_name}.#{@host}",
|
44
|
+
:idempotent => true,
|
45
|
+
:method => 'GET',
|
46
|
+
:parser => Fog::Parsers::Storage::InternetArchive::ListParts.new,
|
47
|
+
:path => CGI.escape(object_name),
|
48
|
+
:query => options.merge!({'uploadId' => upload_id})
|
49
|
+
})
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Get a hash of hidden fields for form uploading to S3, in the form {:field_name => :field_value}
|
7
|
+
# Form should look like: <form action="http://#{bucket_name}.s3.#{Fog::InternetArchive::DOMAIN_NAME}/" method="post" enctype="multipart/form-data">
|
8
|
+
# These hidden fields should then appear, followed by a field named 'file' which is either a textarea or file input.
|
9
|
+
#
|
10
|
+
# @param options Hash:
|
11
|
+
# @option options acl [String] access control list, in ['private', 'public-read', 'public-read-write', 'authenticated-read', 'bucket-owner-read', 'bucket-owner-full-control']
|
12
|
+
# @option options Cache-Control [String] same as REST header
|
13
|
+
# @option options Content-Type [String] same as REST header
|
14
|
+
# @option options Content-Disposition [String] same as REST header
|
15
|
+
# @option options Content-Encoding [String] same as REST header
|
16
|
+
# @option options Expires same as REST header
|
17
|
+
# @option options key key for object, set to '${filename}' to use filename provided by user
|
18
|
+
# @option options policy security policy for upload
|
19
|
+
# @option options success_action_redirect url to redirct to upon success
|
20
|
+
# @option options success_action_status status code to return on success, in [200, 201, 204]
|
21
|
+
# @option options x-amz-security token devpay security token
|
22
|
+
# @option options x-amz-meta... meta data tags
|
23
|
+
#
|
24
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/dev/HTTPPOSTForms.html
|
25
|
+
#
|
26
|
+
def post_object_hidden_fields(options = {})
|
27
|
+
if options['policy']
|
28
|
+
options['policy'] = Base64.encode64(Fog::JSON.encode(options['policy'])).gsub("\n", "")
|
29
|
+
options['AWSAccessKeyId'] = @ia_access_key_id
|
30
|
+
options['Signature'] = Base64.encode64(@hmac.sign(options['policy'])).gsub("\n", "")
|
31
|
+
end
|
32
|
+
options
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Create an S3 bucket
|
7
|
+
#
|
8
|
+
# @param bucket_name [String] name of bucket to create
|
9
|
+
# @option options [Hash] config arguments for bucket. Defaults to {}.
|
10
|
+
# @option options LocationConstraint [Symbol] sets the location for the bucket
|
11
|
+
# @option options x-amz-acl [String] Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
12
|
+
#
|
13
|
+
# @return [Excon::Response] response:
|
14
|
+
# * status [Integer] 200
|
15
|
+
#
|
16
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUT.html
|
17
|
+
#
|
18
|
+
def put_bucket(bucket_name, options = {})
|
19
|
+
if location_constraint = options.delete('LocationConstraint')
|
20
|
+
data =
|
21
|
+
<<-DATA
|
22
|
+
<CreateBucketConfiguration>
|
23
|
+
<LocationConstraint>#{location_constraint}</LocationConstraint>
|
24
|
+
</CreateBucketConfiguration>
|
25
|
+
DATA
|
26
|
+
else
|
27
|
+
data = nil
|
28
|
+
end
|
29
|
+
request({
|
30
|
+
:expects => 200,
|
31
|
+
:body => data,
|
32
|
+
:headers => options,
|
33
|
+
:idempotent => true,
|
34
|
+
:host => "#{bucket_name}.#{@host}",
|
35
|
+
:method => 'PUT'
|
36
|
+
})
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
class Mock # :nodoc:all
|
42
|
+
|
43
|
+
def put_bucket(bucket_name, options = {})
|
44
|
+
acl = options['x-amz-acl'] || 'private'
|
45
|
+
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
|
46
|
+
raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
|
47
|
+
else
|
48
|
+
self.data[:acls][:bucket][bucket_name] = self.class.acls(acl)
|
49
|
+
end
|
50
|
+
|
51
|
+
response = Excon::Response.new
|
52
|
+
response.status = 200
|
53
|
+
bucket = {
|
54
|
+
:objects => {},
|
55
|
+
'Name' => bucket_name,
|
56
|
+
'CreationDate' => Time.now,
|
57
|
+
'Owner' => { 'DisplayName' => 'owner', 'ID' => 'some_id'},
|
58
|
+
'Payer' => 'BucketOwner'
|
59
|
+
}
|
60
|
+
if options['LocationConstraint']
|
61
|
+
bucket['LocationConstraint'] = options['LocationConstraint']
|
62
|
+
else
|
63
|
+
bucket['LocationConstraint'] = nil
|
64
|
+
end
|
65
|
+
unless self.data[:buckets][bucket_name]
|
66
|
+
self.data[:buckets][bucket_name] = bucket
|
67
|
+
end
|
68
|
+
response
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/internet_archive/requests/storage/acl_utils'
|
7
|
+
|
8
|
+
# Change access control list for an S3 bucket
|
9
|
+
#
|
10
|
+
# @param bucket_name [String] name of bucket to modify
|
11
|
+
# @param acl [Hash]
|
12
|
+
# * Owner [Hash]:
|
13
|
+
# * ID [String]: id of owner
|
14
|
+
# * DisplayName [String]: display name of owner
|
15
|
+
# * AccessControlList [Array]:
|
16
|
+
# * Grantee [Hash]:
|
17
|
+
# * DisplayName [String] Display name of grantee
|
18
|
+
# * ID [String] Id of grantee
|
19
|
+
# or
|
20
|
+
# * EmailAddress [String] Email address of grantee
|
21
|
+
# or
|
22
|
+
# * URI [String] URI of group to grant access for
|
23
|
+
# * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
|
24
|
+
# * acl [String] Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
25
|
+
#
|
26
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTacl.html
|
27
|
+
|
28
|
+
def put_bucket_acl(bucket_name, acl)
|
29
|
+
data = ""
|
30
|
+
headers = {}
|
31
|
+
|
32
|
+
if acl.is_a?(Hash)
|
33
|
+
data = Fog::Storage::InternetArchive.hash_to_acl(acl)
|
34
|
+
else
|
35
|
+
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
|
36
|
+
raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
|
37
|
+
end
|
38
|
+
headers['x-amz-acl'] = acl
|
39
|
+
end
|
40
|
+
|
41
|
+
headers['Content-MD5'] = Base64.encode64(Digest::MD5.digest(data)).strip
|
42
|
+
headers['Content-Type'] = 'application/json'
|
43
|
+
headers['Date'] = Fog::Time.now.to_date_header
|
44
|
+
|
45
|
+
request({
|
46
|
+
:body => data,
|
47
|
+
:expects => 200,
|
48
|
+
:headers => headers,
|
49
|
+
:host => "#{bucket_name}.#{@host}",
|
50
|
+
:method => 'PUT',
|
51
|
+
:query => {'acl' => nil}
|
52
|
+
})
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class Mock
|
57
|
+
def put_bucket_acl(bucket_name, acl)
|
58
|
+
if acl.is_a?(Hash)
|
59
|
+
self.data[:acls][:bucket][bucket_name] = Fog::Storage::InternetArchive.hash_to_acl(acl)
|
60
|
+
else
|
61
|
+
if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
|
62
|
+
raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
|
63
|
+
end
|
64
|
+
self.data[:acls][:bucket][bucket_name] = acl
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
require 'fog/internet_archive/requests/storage/cors_utils'
|
7
|
+
|
8
|
+
# Sets the cors configuration for your bucket. If the configuration exists, Amazon S3 replaces it.
|
9
|
+
#
|
10
|
+
# @param bucket_name [String] name of bucket to modify
|
11
|
+
# @param cors [Hash]
|
12
|
+
# * CORSConfiguration [Array]:
|
13
|
+
# * ID [String]: A unique identifier for the rule.
|
14
|
+
# * AllowedMethod [String]: An HTTP method that you want to allow the origin to execute.
|
15
|
+
# * AllowedOrigin [String]: An origin that you want to allow cross-domain requests from.
|
16
|
+
# * AllowedHeader [String]: Specifies which headers are allowed in a pre-flight OPTIONS request via the Access-Control-Request-Headers header.
|
17
|
+
# * MaxAgeSeconds [String]: The time in seconds that your browser is to cache the preflight response for the specified resource.
|
18
|
+
# * ExposeHeader [String]: One or more headers in the response that you want customers to be able to access from their applications.
|
19
|
+
#
|
20
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTcors.html
|
21
|
+
|
22
|
+
def put_bucket_cors(bucket_name, cors)
|
23
|
+
data = Fog::Storage::InternetArchive.hash_to_cors(cors)
|
24
|
+
|
25
|
+
headers = {}
|
26
|
+
headers['Content-MD5'] = Base64.encode64(Digest::MD5.digest(data)).strip
|
27
|
+
headers['Content-Type'] = 'application/json'
|
28
|
+
headers['Date'] = Fog::Time.now.to_date_header
|
29
|
+
|
30
|
+
request({
|
31
|
+
:body => data,
|
32
|
+
:expects => 200,
|
33
|
+
:headers => headers,
|
34
|
+
:host => "#{bucket_name}.#{@host}",
|
35
|
+
:method => 'PUT',
|
36
|
+
:query => {'cors' => nil}
|
37
|
+
})
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
class Mock
|
42
|
+
def put_bucket_cors(bucket_name, cors)
|
43
|
+
self.data[:cors][:bucket][bucket_name] = Fog::Storage::InternetArchive.hash_to_cors(cors)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module Fog
|
2
|
+
module Storage
|
3
|
+
class InternetArchive
|
4
|
+
class Real
|
5
|
+
|
6
|
+
# Change lifecycle configuration for an S3 bucket
|
7
|
+
#
|
8
|
+
# @param bucket_name [String] name of bucket to set lifecycle configuration for
|
9
|
+
# * lifecycle [Hash]:
|
10
|
+
# * Rules [Array] object expire rules
|
11
|
+
# * ID [String] Unique identifier for the rule
|
12
|
+
# * Prefix [String] Prefix identifying one or more objects to which the rule applies
|
13
|
+
# * Enabled [Boolean] if rule is currently being applied
|
14
|
+
# * Expiration [Hash] Container for the object expiration rule.
|
15
|
+
# * Days [Integer] lifetime, in days, of the objects that are subject to the rule
|
16
|
+
# * Date [Date] Indicates when the specific rule take effect.
|
17
|
+
# The date value must conform to the ISO 8601 format. The time is always midnight UTC.
|
18
|
+
# * Transition [Hash] Container for the transition rule that describes when objects transition
|
19
|
+
# to the Glacier storage class
|
20
|
+
# * Days [Integer] lifetime, in days, of the objects that are subject to the rule
|
21
|
+
# * Date [Date] Indicates when the specific rule take effect.
|
22
|
+
# The date value must conform to the ISO 8601 format. The time is always midnight UTC.
|
23
|
+
# * StorageClass [String] Indicates the Amazon S3 storage class to which you want the object
|
24
|
+
# to transition to.
|
25
|
+
#
|
26
|
+
#
|
27
|
+
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html
|
28
|
+
#
|
29
|
+
def put_bucket_lifecycle(bucket_name, lifecycle)
|
30
|
+
builder = Nokogiri::XML::Builder.new do
|
31
|
+
LifecycleConfiguration {
|
32
|
+
lifecycle['Rules'].each do |rule|
|
33
|
+
Rule {
|
34
|
+
ID rule['ID']
|
35
|
+
Prefix rule['Prefix']
|
36
|
+
Status rule['Enabled'] ? 'Enabled' : 'Disabled'
|
37
|
+
unless (rule['Expiration'] or rule['Transition'])
|
38
|
+
Expiration { Days rule['Days'] }
|
39
|
+
else
|
40
|
+
if rule['Expiration']
|
41
|
+
if rule['Expiration']['Days']
|
42
|
+
Expiration { Days rule['Expiration']['Days'] }
|
43
|
+
elsif rule['Expiration']['Date']
|
44
|
+
Expiration { Date rule['Expiration']['Date'].is_a?(Time) ? rule['Expiration']['Date'].utc.iso8601 : Time.parse(rule['Expiration']['Date']).utc.iso8601 }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
if rule['Transition']
|
48
|
+
Transition {
|
49
|
+
if rule['Transition']['Days']
|
50
|
+
Days rule['Transition']['Days']
|
51
|
+
elsif rule['Transition']['Date']
|
52
|
+
Date rule['Transition']['Date'].is_a?(Time) ? time.utc.iso8601 : Time.parse(time).utc.iso8601
|
53
|
+
end
|
54
|
+
StorageClass rule['Transition']['StorageClass'].nil? ? 'GLACIER' : rule['Transition']['StorageClass']
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
}
|
59
|
+
end
|
60
|
+
}
|
61
|
+
end
|
62
|
+
body = builder.to_xml
|
63
|
+
body.gsub! /<([^<>]+)\/>/, '<\1></\1>'
|
64
|
+
request({
|
65
|
+
:body => body,
|
66
|
+
:expects => 200,
|
67
|
+
:headers => {'Content-MD5' => Base64.encode64(Digest::MD5.digest(body)).chomp!,
|
68
|
+
'Content-Type' => 'application/xml'},
|
69
|
+
:host => "#{bucket_name}.#{@host}",
|
70
|
+
:method => 'PUT',
|
71
|
+
:query => {'lifecycle' => nil}
|
72
|
+
})
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|