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
@@ -2,6 +2,16 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class RackspaceV2
|
4
4
|
class Real
|
5
|
+
|
6
|
+
# Reverts server resize operation
|
7
|
+
# @param [String] server_id
|
8
|
+
# @note All resizes are automatically confirmed after 24 hours if you do not explicitly confirm or revert the resize.
|
9
|
+
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Revert_Resized_Server-d1e4024.html
|
10
|
+
# @see #resize
|
11
|
+
#
|
12
|
+
# * Status Transition:
|
13
|
+
# * VERIFY_RESIZE -> ACTIVE
|
14
|
+
# * VERIFY_RESIZE -> ERROR (on error)
|
5
15
|
def revert_resize_server(server_id)
|
6
16
|
data = {
|
7
17
|
'revertResize' => nil
|
@@ -2,6 +2,15 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class RackspaceV2
|
4
4
|
class Real
|
5
|
+
|
6
|
+
# Sets metadata associated with a server or an image.
|
7
|
+
# @param [String<images, servers>] collection type of metadata
|
8
|
+
# @param [String] obj_id id of the object where the metadata is attached
|
9
|
+
# @param [Hash] metadata key value pairs of metadata
|
10
|
+
# @return [Excon::Response] response:
|
11
|
+
# * body [Hash]:
|
12
|
+
# * metadata [Hash]:
|
13
|
+
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_or_Replace_Metadata-d1e5358.html
|
5
14
|
def set_metadata(collection, obj_id, metadata = {})
|
6
15
|
request(
|
7
16
|
:expects => [200, 203],
|
@@ -2,6 +2,16 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class RackspaceV2
|
4
4
|
class Real
|
5
|
+
|
6
|
+
# Sets a single metadatum item by key.
|
7
|
+
# @param [String<images, servers>] collection type of metadata
|
8
|
+
# @param [String] obj_id id of the object where the metadata is attached
|
9
|
+
# @param [String] key the key of the metadata to set
|
10
|
+
# @param [String] value the value of the metadata to set
|
11
|
+
# @return [Excon::Response] response:
|
12
|
+
# * body [Hash]:
|
13
|
+
# * meta [Hash]:
|
14
|
+
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Create_or_Update_a_Metadata_Item-d1e5633.html
|
5
15
|
def set_metadata_item(collection, obj_id, key, value)
|
6
16
|
request(
|
7
17
|
:expects => 200,
|
@@ -2,6 +2,15 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class RackspaceV2
|
4
4
|
class Real
|
5
|
+
|
6
|
+
# Updates metadata items for a specified server or image.
|
7
|
+
# @param [String<images, servers>] collection type of metadata
|
8
|
+
# @param [String] obj_id id of the object where the metadata is attached
|
9
|
+
# @param [Hash] metadata key value pairs of metadata
|
10
|
+
# @return [Excon::Response] response:
|
11
|
+
# * body [Hash]:
|
12
|
+
# * metadata [Hash]:
|
13
|
+
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/Update_Metadata-d1e5208.html
|
5
14
|
def update_metadata(collection, obj_id, metadata = {})
|
6
15
|
request(
|
7
16
|
:expects => [200, 203],
|
@@ -2,6 +2,15 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class RackspaceV2
|
4
4
|
class Real
|
5
|
+
|
6
|
+
# Update the editable attributes of a specified server.
|
7
|
+
# @param [String] server_id
|
8
|
+
# @param [Hash] options
|
9
|
+
# @option options [Hash] name name for server
|
10
|
+
# @option options [String] accessIPv4 The IP version 4 address.
|
11
|
+
# @option options [Hash] accessIPv6 The IP version 6 address.
|
12
|
+
# @note If you edit the server name, the server host name does not change. Also, server names are not guaranteed to be unique.
|
13
|
+
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ServerUpdate.html
|
5
14
|
def update_server(server_id, options={})
|
6
15
|
data = options.is_a?(Hash) ? options : { 'name' => options } #LEGACY - second parameter was previously server name
|
7
16
|
|
@@ -8,10 +8,11 @@ module Fog
|
|
8
8
|
# ==== Parameters
|
9
9
|
# * name<~String> - Name for container, should be < 256 bytes and must not contain '/'
|
10
10
|
#
|
11
|
-
def put_container(name)
|
11
|
+
def put_container(name, options={})
|
12
12
|
request(
|
13
13
|
:expects => [201, 202],
|
14
14
|
:method => 'PUT',
|
15
|
+
:headers => options,
|
15
16
|
:path => Fog::Rackspace.escape(name)
|
16
17
|
)
|
17
18
|
end
|
@@ -14,6 +14,7 @@ module Fog
|
|
14
14
|
collection :directories
|
15
15
|
model :file
|
16
16
|
collection :files
|
17
|
+
model :account
|
17
18
|
|
18
19
|
request_path 'fog/rackspace/requests/storage'
|
19
20
|
request :copy_object
|
@@ -38,7 +39,8 @@ module Fog
|
|
38
39
|
:provider => 'Rackspace',
|
39
40
|
:rackspace_api_key => @rackspace_api_key,
|
40
41
|
:rackspace_auth_url => @rackspace_auth_url,
|
41
|
-
:rackspace_username => @rackspace_username
|
42
|
+
:rackspace_username => @rackspace_username,
|
43
|
+
:rackspace_cdn_ssl => @rackspace_cdn_ssl
|
42
44
|
)
|
43
45
|
if @cdn.enabled?
|
44
46
|
@cdn
|
@@ -94,9 +96,18 @@ module Fog
|
|
94
96
|
@connection_options = options[:connection_options] || {}
|
95
97
|
authenticate
|
96
98
|
@persistent = options[:persistent] || false
|
97
|
-
Excon.ssl_verify_peer = false if options[:rackspace_servicenet] == true
|
99
|
+
Excon.defaults[:ssl_verify_peer] = false if options[:rackspace_servicenet] == true
|
98
100
|
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
|
99
101
|
end
|
102
|
+
|
103
|
+
def account
|
104
|
+
account = Fog::Storage::Rackspace::Account.new(:service => self)
|
105
|
+
account.reload
|
106
|
+
end
|
107
|
+
|
108
|
+
def ssl?
|
109
|
+
!rackspace_cdn_ssl.nil?
|
110
|
+
end
|
100
111
|
|
101
112
|
def reload
|
102
113
|
@connection.reset
|
@@ -107,6 +118,7 @@ module Fog
|
|
107
118
|
response = @connection.request(params.merge({
|
108
119
|
:headers => {
|
109
120
|
'Content-Type' => 'application/json',
|
121
|
+
'Accept' => 'application/json',
|
110
122
|
'X-Auth-Token' => @auth_token
|
111
123
|
}.merge!(params[:headers] || {}),
|
112
124
|
:host => @host,
|
@@ -0,0 +1,154 @@
|
|
1
|
+
module Fog
|
2
|
+
module Schema
|
3
|
+
# This validates a data object against a Ruby based schema to see
|
4
|
+
# if they match.
|
5
|
+
#
|
6
|
+
# * An object matches the schema if +==+ or +===+ returns +true+
|
7
|
+
# * Hashes match if all the key's values match the classes given
|
8
|
+
# in the schema as well. This can be configured in the options
|
9
|
+
# * Arrays match when every element in the data matches the case
|
10
|
+
# given in the schema.
|
11
|
+
#
|
12
|
+
# The schema and validation are very simple and probably not
|
13
|
+
# suitable for some cases.
|
14
|
+
#
|
15
|
+
# The following classes can be used to check for special behaviour
|
16
|
+
#
|
17
|
+
# * Fog::Boolean - value may be +true+ or +false+
|
18
|
+
# * Fog::Nullable::Boolean - value may be +true+, +false+ or +nil+
|
19
|
+
# * Fog::Nullable::Integer - value may be an Integer or +nil+
|
20
|
+
# * Fog::Nullable::String
|
21
|
+
# * Fog::Nullable::Time
|
22
|
+
# * Fog::Nullable::Float
|
23
|
+
# * Fog::Nullable::Hash
|
24
|
+
# * Fog::Nullable::Array
|
25
|
+
#
|
26
|
+
# All the "nullable" objects will pass if the value is of the class
|
27
|
+
# or if it is +nil+. This allows you to match APIs that may include
|
28
|
+
# keys when the value is not available in some cases but will
|
29
|
+
# always be a String. Such as an password that is only displayed
|
30
|
+
# on the reset action.
|
31
|
+
#
|
32
|
+
# The keys for "nullable" resources should always be present but
|
33
|
+
# original matcher had a bug that allowed these to also appear to
|
34
|
+
# work as optional keys/values.
|
35
|
+
#
|
36
|
+
# If you need the original behaviour, data with a missing key is
|
37
|
+
# still valid, then you may pass the +:allow_optional_rules+
|
38
|
+
# option to the #validate method.
|
39
|
+
#
|
40
|
+
# That is not recommended because you are describing a schema
|
41
|
+
# with optional keys in a format that does not support it.
|
42
|
+
#
|
43
|
+
# Setting +:allow_extra_keys+ as +true+ allows the data to
|
44
|
+
# contain keys not declared by the schema and still pass. This
|
45
|
+
# is useful if new attributes appear in the API in a backwards
|
46
|
+
# compatible manner and can be ignored.
|
47
|
+
#
|
48
|
+
# This is the behaviour you would have seen with +strict+ being
|
49
|
+
# +false+ in the original test helper.
|
50
|
+
#
|
51
|
+
# @example Schema example
|
52
|
+
# {
|
53
|
+
# "id" => String,
|
54
|
+
# "ram" => Integer,
|
55
|
+
# "disks" => [
|
56
|
+
# "size" => Float
|
57
|
+
# ],
|
58
|
+
# "dns_name" => Fog::Nullable::String,
|
59
|
+
# "active" => Fog::Boolean,
|
60
|
+
# "created" => DateTime
|
61
|
+
# }
|
62
|
+
#
|
63
|
+
class DataValidator
|
64
|
+
|
65
|
+
def initialize
|
66
|
+
@message = nil
|
67
|
+
end
|
68
|
+
|
69
|
+
# Checks if the data structure matches the schema passed in and
|
70
|
+
# returns +true+ if it fits.
|
71
|
+
#
|
72
|
+
# @param [Object] data Hash or Array to check
|
73
|
+
# @param [Object] schema Schema pattern to check against
|
74
|
+
# @param [Boolean] options
|
75
|
+
# @option options [Boolean] :allow_extra_keys
|
76
|
+
# If +true+ does not fail if extra keys are in the data
|
77
|
+
# that are not in the schema.
|
78
|
+
# @option options [Boolean] :allow_optional_rules
|
79
|
+
# If +true+ does not fail if extra keys are in the schema
|
80
|
+
# that do not match the data. Not recommended!
|
81
|
+
#
|
82
|
+
# @return [Boolean] Did the data fit the schema?
|
83
|
+
def validate(data, schema, options = {})
|
84
|
+
valid = validate_value(schema, data, options)
|
85
|
+
|
86
|
+
unless valid
|
87
|
+
@message = "#{data.inspect} does not match #{schema.inspect}"
|
88
|
+
end
|
89
|
+
valid
|
90
|
+
end
|
91
|
+
|
92
|
+
# This returns the last message set by the validator
|
93
|
+
#
|
94
|
+
# @return [String]
|
95
|
+
def message
|
96
|
+
@message
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
# This contains a slightly modified version of the Hashidator gem
|
102
|
+
# but unfortunately the gem does not cope with Array schemas.
|
103
|
+
#
|
104
|
+
# @see https://github.com/vangberg/hashidator/blob/master/lib/hashidator.rb
|
105
|
+
#
|
106
|
+
def validate_value(validator, value, options)
|
107
|
+
Fog::Logger.write :debug, "[yellow][DEBUG] #{value.inspect} against #{validator.inspect}[/]\n"
|
108
|
+
|
109
|
+
case validator
|
110
|
+
when Array
|
111
|
+
return false if value.is_a?(Hash)
|
112
|
+
value.respond_to?(:all?) && value.all? {|x| validate_value(validator[0], x, options)}
|
113
|
+
when Symbol
|
114
|
+
value.respond_to? validator
|
115
|
+
when Hash
|
116
|
+
return false if value.is_a?(Array)
|
117
|
+
|
118
|
+
# When being strict values not specified in the schema are fails
|
119
|
+
unless options[:allow_extra_keys]
|
120
|
+
if value.respond_to?(:empty?)
|
121
|
+
# Validator is empty but values are not
|
122
|
+
return false if !value.empty? && validator.empty?
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
unless options[:allow_optional_rules]
|
127
|
+
if value.respond_to?(:empty?)
|
128
|
+
# Validator has rules left but no more values
|
129
|
+
return false if value.empty? && !validator.empty?
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
validator.all? do |key, sub_validator|
|
134
|
+
Fog::Logger.write :debug, "[blue][DEBUG] #{key.inspect} against #{sub_validator.inspect}[/]\n"
|
135
|
+
validate_value(sub_validator, value[key], options)
|
136
|
+
end
|
137
|
+
else
|
138
|
+
result = validator == value
|
139
|
+
result = validator === value unless result
|
140
|
+
# Repeat unless we have a Boolean already
|
141
|
+
unless (result.is_a?(TrueClass) || result.is_a?(FalseClass))
|
142
|
+
result = validate_value(result, value, options)
|
143
|
+
end
|
144
|
+
if result
|
145
|
+
Fog::Logger.write :debug, "[green][DEBUG] Validation passed: #{value.inspect} against #{validator.inspect}[/]\n"
|
146
|
+
else
|
147
|
+
Fog::Logger.write :debug, "[red][DEBUG] Validation failed: #{value.inspect} against #{validator.inspect}[/]\n"
|
148
|
+
end
|
149
|
+
result
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
data/lib/fog/storage.rb
CHANGED
@@ -8,31 +8,15 @@ module Fog
|
|
8
8
|
def self.new(attributes)
|
9
9
|
attributes = attributes.dup # prevent delete from having side effects
|
10
10
|
case provider = attributes.delete(:provider).to_s.downcase.to_sym
|
11
|
-
when :
|
12
|
-
require 'fog/
|
13
|
-
Fog::Storage::
|
14
|
-
when :aws
|
15
|
-
require 'fog/aws/storage'
|
16
|
-
Fog::Storage::AWS.new(attributes)
|
17
|
-
when :google
|
18
|
-
require 'fog/google/storage'
|
19
|
-
Fog::Storage::Google.new(attributes)
|
20
|
-
when :hp
|
21
|
-
require 'fog/hp/storage'
|
22
|
-
Fog::Storage::HP.new(attributes)
|
23
|
-
when :ibm
|
24
|
-
require 'fog/ibm/storage'
|
25
|
-
Fog::Storage::IBM.new(attributes)
|
26
|
-
when :local
|
27
|
-
require 'fog/local/storage'
|
28
|
-
Fog::Storage::Local.new(attributes)
|
29
|
-
when :ninefold
|
30
|
-
require 'fog/ninefold/storage'
|
31
|
-
Fog::Storage::Ninefold.new(attributes)
|
32
|
-
when :rackspace
|
33
|
-
require 'fog/rackspace/storage'
|
34
|
-
Fog::Storage::Rackspace.new(attributes)
|
11
|
+
when :internetarchive
|
12
|
+
require 'fog/internet_archive/storage'
|
13
|
+
Fog::Storage::InternetArchive.new(attributes)
|
35
14
|
else
|
15
|
+
if self.providers.include?(provider)
|
16
|
+
require "fog/#{provider}/storage"
|
17
|
+
return Fog::Storage.const_get(Fog.providers[provider]).new(attributes)
|
18
|
+
end
|
19
|
+
|
36
20
|
raise ArgumentError.new("#{provider} is not a recognized storage provider")
|
37
21
|
end
|
38
22
|
end
|
@@ -41,6 +41,8 @@ module Fog
|
|
41
41
|
data = service.power_off(self.id).body
|
42
42
|
wait_for { off? }
|
43
43
|
end
|
44
|
+
#Failsafe .. Always check if we are ready
|
45
|
+
wait_for { ready? }
|
44
46
|
service.delete_vapp(self.id)
|
45
47
|
true
|
46
48
|
end
|
@@ -60,13 +62,13 @@ module Fog
|
|
60
62
|
def delete_internet_services
|
61
63
|
#Find the internet service
|
62
64
|
|
63
|
-
while (
|
65
|
+
while (inet_service = internet_services.pop) do
|
64
66
|
|
65
|
-
nodes = service.nodeservices.all(
|
67
|
+
nodes = service.nodeservices.all(inet_service.Id)
|
66
68
|
#Delete all the associated nodes
|
67
69
|
nodes.select { |item| item.destroy }
|
68
70
|
#Clear out the services
|
69
|
-
|
71
|
+
inet_service.destroy(delete_public_ip = !(internet_services.size > 0))
|
70
72
|
end
|
71
73
|
true
|
72
74
|
end
|
data/lib/fog/terremark/parser.rb
CHANGED
@@ -1,19 +1,20 @@
|
|
1
|
-
module Fog
|
2
|
-
module Terremark
|
3
|
-
module Shared
|
4
|
-
module Parser
|
5
1
|
|
6
|
-
|
7
|
-
def parse(data)
|
8
|
-
case data['type']
|
9
|
-
when 'application/vnd.vmware.vcloud.vApp+xml'
|
10
|
-
servers.new(data.merge!(:service => self))
|
11
|
-
else
|
12
|
-
data
|
13
|
-
end
|
14
|
-
end
|
2
|
+
class TerremarkParser < Fog::Parsers::Base
|
15
3
|
|
4
|
+
def extract_attributes(attributes_xml)
|
5
|
+
attributes = {}
|
6
|
+
until attributes_xml.empty?
|
7
|
+
if attributes_xml.first.is_a?(Array)
|
8
|
+
until attributes_xml.first.empty?
|
9
|
+
attribute = attributes_xml.first.shift
|
10
|
+
attributes[attribute.localname] = attribute.value
|
11
|
+
end
|
12
|
+
else
|
13
|
+
attribute = attributes_xml.shift
|
14
|
+
attributes[attribute.localname] = attribute.value
|
16
15
|
end
|
17
16
|
end
|
17
|
+
attributes
|
18
18
|
end
|
19
19
|
end
|
20
|
+
|
@@ -3,7 +3,7 @@ module Fog
|
|
3
3
|
module Terremark
|
4
4
|
module Shared
|
5
5
|
|
6
|
-
class GetCatalog <
|
6
|
+
class GetCatalog < TerremarkParser
|
7
7
|
|
8
8
|
def reset
|
9
9
|
@response = { 'CatalogItems' => [] }
|
@@ -13,26 +13,12 @@ module Fog
|
|
13
13
|
super
|
14
14
|
case name
|
15
15
|
when 'CatalogItem'
|
16
|
-
catalog_item =
|
17
|
-
|
18
|
-
i = 0
|
19
|
-
while i < attrib.size
|
20
|
-
catalog_item[attrib[i]] = attrib[i+1]
|
21
|
-
i += 2
|
22
|
-
end
|
23
|
-
catalog_item["id"] = catalog_item["href"].split('/').last
|
24
|
-
end
|
16
|
+
catalog_item = extract_attributes(attributes)
|
17
|
+
catalog_item["id"] = catalog_item["href"].split('/').last
|
25
18
|
@response['CatalogItems'] << catalog_item
|
19
|
+
|
26
20
|
when 'Catalog'
|
27
|
-
catalog =
|
28
|
-
until attributes.empty?
|
29
|
-
if attributes.first.is_a?(Array)
|
30
|
-
attribute = attributes.shift
|
31
|
-
catalog[attribute.first] = attribute.last
|
32
|
-
else
|
33
|
-
catalog[attributes.shift] = attributes.shift
|
34
|
-
end
|
35
|
-
end
|
21
|
+
catalog = extract_attributes(attributes)
|
36
22
|
@response['name'] = catalog['name']
|
37
23
|
end
|
38
24
|
end
|