fog-maestrodev 1.19.0.20140212012611 → 1.20.0.20140305101305
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.
- checksums.yaml +8 -8
- data/.gitignore +2 -0
- data/.travis.yml +10 -0
- data/CONTRIBUTORS.md +694 -0
- data/Gemfile.1.8.7 +1 -1
- data/LICENSE.md +17 -17
- data/Rakefile +1 -1
- data/benchs/each_provider.sh +6 -0
- data/benchs/each_service.sh +6 -0
- data/benchs/load_times.rb +6 -0
- data/changelog.txt +312 -0
- data/fog.gemspec +3 -5
- data/lib/fog.rb +1 -0
- data/lib/fog/atmos.rb +1 -11
- data/lib/fog/atmos/core.rb +11 -0
- data/lib/fog/atmos/requests/storage/get_namespace.rb +1 -1
- data/lib/fog/atmos/requests/storage/head_namespace.rb +1 -1
- data/lib/fog/atmos/storage.rb +1 -1
- data/lib/fog/aws.rb +22 -323
- data/lib/fog/aws/auto_scaling.rb +1 -1
- data/lib/fog/aws/beanstalk.rb +1 -1
- data/lib/fog/aws/cdn.rb +1 -1
- data/lib/fog/aws/cloud_formation.rb +1 -1
- data/lib/fog/aws/cloud_watch.rb +1 -1
- data/lib/fog/aws/compute.rb +12 -1
- data/lib/fog/aws/core.rb +329 -0
- data/lib/fog/aws/data_pipeline.rb +1 -1
- data/lib/fog/aws/dns.rb +1 -1
- data/lib/fog/aws/dynamodb.rb +1 -1
- data/lib/fog/aws/elasticache.rb +10 -3
- data/lib/fog/aws/elb.rb +1 -1
- data/lib/fog/aws/emr.rb +1 -2
- data/lib/fog/aws/glacier.rb +1 -1
- data/lib/fog/aws/iam.rb +1 -1
- data/lib/fog/aws/models/compute/dhcp_option.rb +2 -2
- data/lib/fog/aws/models/compute/flavor.rb +2 -0
- data/lib/fog/aws/models/compute/flavors.rb +363 -49
- data/lib/fog/aws/models/compute/network_acl.rb +170 -0
- data/lib/fog/aws/models/compute/network_acls.rb +138 -0
- data/lib/fog/aws/models/compute/server.rb +2 -2
- data/lib/fog/aws/models/compute/servers.rb +7 -2
- data/lib/fog/aws/models/compute/subnet.rb +2 -2
- data/lib/fog/aws/models/elasticache/cluster.rb +6 -0
- data/lib/fog/aws/models/elasticache/subnet_group.rb +35 -0
- data/lib/fog/aws/models/elasticache/subnet_groups.rb +27 -0
- data/lib/fog/aws/models/rds/snapshot.rb +1 -0
- data/lib/fog/aws/models/storage/file.rb +1 -1
- data/lib/fog/aws/parsers/compute/create_network_acl.rb +28 -0
- data/lib/fog/aws/parsers/compute/create_subnet.rb +2 -3
- data/lib/fog/aws/parsers/compute/describe_network_acls.rb +42 -0
- data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +29 -3
- data/lib/fog/aws/parsers/compute/network_acl_parser.rb +105 -0
- data/lib/fog/aws/parsers/compute/network_interface_parser.rb +16 -0
- data/lib/fog/aws/parsers/compute/replace_network_acl_association.rb +20 -0
- data/lib/fog/aws/parsers/compute/run_instances.rb +1 -1
- data/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb +2 -2
- data/lib/fog/aws/parsers/elasticache/create_cache_subnet_group.rb +38 -0
- data/lib/fog/aws/parsers/elasticache/describe_cache_subnet_groups.rb +38 -0
- data/lib/fog/aws/parsers/elasticache/subnet_group_parser.rb +38 -0
- data/lib/fog/aws/parsers/iam/upload_server_certificate.rb +1 -1
- data/lib/fog/aws/parsers/rds/db_parser.rb +6 -0
- data/lib/fog/aws/parsers/rds/snapshot_parser.rb +1 -0
- data/lib/fog/aws/rds.rb +1 -1
- data/lib/fog/aws/redshift.rb +1 -1
- data/lib/fog/aws/requests/compute/create_network_acl.rb +105 -0
- data/lib/fog/aws/requests/compute/create_network_acl_entry.rb +80 -0
- data/lib/fog/aws/requests/compute/create_subnet.rb +14 -4
- data/lib/fog/aws/requests/compute/create_vpc.rb +7 -1
- data/lib/fog/aws/requests/compute/delete_network_acl.rb +52 -0
- data/lib/fog/aws/requests/compute/delete_network_acl_entry.rb +55 -0
- data/lib/fog/aws/requests/compute/delete_vpc.rb +4 -0
- data/lib/fog/aws/requests/compute/describe_network_acls.rb +104 -0
- data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +4 -0
- data/lib/fog/aws/requests/compute/disassociate_address.rb +4 -3
- data/lib/fog/aws/requests/compute/replace_network_acl_association.rb +66 -0
- data/lib/fog/aws/requests/compute/replace_network_acl_entry.rb +81 -0
- data/lib/fog/aws/requests/compute/replace_route.rb +84 -0
- data/lib/fog/aws/requests/compute/request_spot_instances.rb +8 -0
- data/lib/fog/aws/requests/compute/run_instances.rb +23 -3
- data/lib/fog/aws/requests/data_pipeline/put_pipeline_definition.rb +29 -21
- data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +18 -11
- data/lib/fog/aws/requests/elasticache/create_cache_subnet_group.rb +66 -0
- data/lib/fog/aws/requests/elasticache/delete_cache_subnet_group.rb +40 -0
- data/lib/fog/aws/requests/elasticache/describe_cache_subnet_groups.rb +63 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +3 -2
- data/lib/fog/aws/requests/iam/delete_server_certificate.rb +3 -1
- data/lib/fog/aws/requests/rds/create_db_instance.rb +2 -0
- data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +1 -0
- data/lib/fog/aws/requests/rds/create_db_snapshot.rb +1 -1
- data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +2 -0
- data/lib/fog/aws/requests/rds/modify_db_instance.rb +1 -0
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +18 -0
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +23 -0
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +24 -0
- data/lib/fog/aws/requests/storage/put_object.rb +18 -54
- data/lib/fog/aws/requests/storage/shared_mock_methods.rb +87 -0
- data/lib/fog/aws/requests/storage/upload_part.rb +18 -0
- data/lib/fog/aws/ses.rb +1 -1
- data/lib/fog/aws/simpledb.rb +1 -1
- data/lib/fog/aws/sns.rb +1 -2
- data/lib/fog/aws/sqs.rb +5 -4
- data/lib/fog/aws/storage.rb +15 -5
- data/lib/fog/aws/sts.rb +1 -1
- data/lib/fog/bare_metal_cloud.rb +1 -11
- data/lib/fog/bare_metal_cloud/compute.rb +1 -1
- data/lib/fog/bare_metal_cloud/core.rb +11 -0
- data/lib/fog/bin.rb +1 -0
- data/lib/fog/bin/rage4.rb +31 -0
- data/lib/fog/bluebox.rb +3 -13
- data/lib/fog/bluebox/blb.rb +2 -2
- data/lib/fog/bluebox/compute.rb +1 -1
- data/lib/fog/bluebox/core.rb +13 -0
- data/lib/fog/bluebox/dns.rb +2 -2
- data/lib/fog/bluebox/models/compute/server.rb +1 -1
- data/lib/fog/brightbox.rb +1 -10
- data/lib/fog/brightbox/compute.rb +20 -1
- data/lib/fog/brightbox/core.rb +10 -0
- data/lib/fog/brightbox/models/compute/cloud_ip.rb +5 -0
- data/lib/fog/brightbox/models/compute/database_server.rb +91 -0
- data/lib/fog/brightbox/models/compute/database_servers.rb +28 -0
- data/lib/fog/brightbox/models/compute/database_snapshot.rb +52 -0
- data/lib/fog/brightbox/models/compute/database_snapshots.rb +24 -0
- data/lib/fog/brightbox/models/compute/database_type.rb +19 -0
- data/lib/fog/brightbox/models/compute/database_types.rb +26 -0
- data/lib/fog/brightbox/requests/compute/create_database_server.rb +25 -0
- data/lib/fog/brightbox/requests/compute/delete_database_server.rb +26 -0
- data/lib/fog/brightbox/requests/compute/delete_database_snapshot.rb +26 -0
- data/lib/fog/brightbox/requests/compute/get_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_database_snapshot.rb +19 -0
- data/lib/fog/brightbox/requests/compute/get_database_type.rb +21 -0
- data/lib/fog/brightbox/requests/compute/list_database_servers.rb +17 -0
- data/lib/fog/brightbox/requests/compute/list_database_snapshots.rb +17 -0
- data/lib/fog/brightbox/requests/compute/list_database_types.rb +19 -0
- data/lib/fog/brightbox/requests/compute/reset_password_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/snapshot_database_server.rb +19 -0
- data/lib/fog/brightbox/requests/compute/update_database_server.rb +25 -0
- data/lib/fog/brightbox/requests/compute/update_database_snapshot.rb +26 -0
- data/lib/fog/clodo.rb +1 -34
- data/lib/fog/clodo/compute.rb +2 -0
- data/lib/fog/clodo/core.rb +34 -0
- data/lib/fog/clodo/models/compute/server.rb +2 -2
- data/lib/fog/cloudsigma.rb +1 -9
- data/lib/fog/cloudsigma/compute.rb +2 -2
- data/lib/fog/cloudsigma/core.rb +9 -0
- data/lib/fog/cloudstack.rb +1 -40
- data/lib/fog/cloudstack/compute.rb +1 -1
- data/lib/fog/cloudstack/core.rb +40 -0
- data/lib/fog/cloudstack/models/compute/server.rb +3 -0
- data/lib/fog/compute/models/server.rb +33 -7
- data/lib/fog/core/collection.rb +1 -3
- data/lib/fog/core/errors.rb +2 -0
- data/lib/fog/core/hmac.rb +3 -16
- data/lib/fog/core/logger.rb +3 -3
- data/lib/fog/core/provider.rb +1 -2
- data/lib/fog/digitalocean.rb +1 -9
- data/lib/fog/digitalocean/compute.rb +1 -1
- data/lib/fog/digitalocean/core.rb +9 -0
- data/lib/fog/digitalocean/models/compute/server.rb +3 -2
- data/lib/fog/digitalocean/models/compute/servers.rb +23 -4
- data/lib/fog/digitalocean/requests/compute/create_server.rb +2 -1
- data/lib/fog/digitalocean/requests/compute/destroy_server.rb +3 -1
- data/lib/fog/dnsimple.rb +1 -11
- data/lib/fog/dnsimple/core.rb +11 -0
- data/lib/fog/dnsimple/dns.rb +5 -2
- data/lib/fog/dnsimple/models/dns/record.rb +3 -3
- data/lib/fog/dnsimple/requests/dns/create_domain.rb +26 -22
- data/lib/fog/dnsimple/requests/dns/create_record.rb +21 -24
- data/lib/fog/dnsimple/requests/dns/delete_domain.rb +7 -6
- data/lib/fog/dnsimple/requests/dns/delete_record.rb +7 -5
- data/lib/fog/dnsimple/requests/dns/get_domain.rb +12 -18
- data/lib/fog/dnsimple/requests/dns/get_record.rb +11 -17
- data/lib/fog/dnsimple/requests/dns/list_domains.rb +7 -15
- data/lib/fog/dnsimple/requests/dns/list_records.rb +10 -15
- data/lib/fog/dnsimple/requests/dns/update_record.rb +14 -19
- data/lib/fog/dnsmadeeasy.rb +1 -11
- data/lib/fog/dnsmadeeasy/core.rb +11 -0
- data/lib/fog/dnsmadeeasy/dns.rb +1 -1
- data/lib/fog/dreamhost.rb +1 -11
- data/lib/fog/dreamhost/core.rb +11 -0
- data/lib/fog/dreamhost/dns.rb +1 -1
- data/lib/fog/dynect.rb +1 -26
- data/lib/fog/dynect/core.rb +26 -0
- data/lib/fog/dynect/dns.rb +1 -1
- data/lib/fog/dynect/requests/dns/put_record.rb +5 -4
- data/lib/fog/dynect/requests/dns/put_zone.rb +5 -4
- data/lib/fog/ecloud.rb +1 -31
- data/lib/fog/ecloud/compute.rb +1 -0
- data/lib/fog/ecloud/core.rb +31 -0
- data/lib/fog/glesys.rb +1 -11
- data/lib/fog/glesys/compute.rb +6 -4
- data/lib/fog/glesys/core.rb +11 -0
- data/lib/fog/glesys/models/compute/server.rb +2 -2
- data/lib/fog/go_grid.rb +1 -11
- data/lib/fog/go_grid/compute.rb +1 -1
- data/lib/fog/go_grid/core.rb +11 -0
- data/lib/fog/go_grid/models/compute/server.rb +2 -2
- data/lib/fog/google.rb +2 -24
- data/lib/fog/google/README.md +8 -5
- data/lib/fog/google/compute.rb +10 -3
- data/lib/fog/google/core.rb +24 -0
- data/lib/fog/google/models/compute/flavors.rb +1 -1
- data/lib/fog/google/models/compute/images.rb +2 -0
- data/lib/fog/google/models/compute/servers.rb +1 -1
- data/lib/fog/google/models/compute/zones.rb +1 -1
- data/lib/fog/google/requests/compute/attach_disk.rb +29 -0
- data/lib/fog/google/requests/compute/delete_address.rb +31 -0
- data/lib/fog/google/requests/compute/delete_snapshot.rb +35 -0
- data/lib/fog/google/requests/compute/detach_disk.rb +29 -0
- data/lib/fog/google/requests/compute/get_address.rb +31 -0
- data/lib/fog/google/requests/compute/insert_address.rb +30 -0
- data/lib/fog/google/requests/compute/insert_firewall.rb +6 -9
- data/lib/fog/google/requests/compute/list_addresses.rb +28 -0
- data/lib/fog/google/requests/compute/set_metadata.rb +4 -5
- data/lib/fog/google/requests/compute/set_tags.rb +33 -0
- data/lib/fog/google/requests/storage/get_bucket_acl.rb +2 -2
- data/lib/fog/google/requests/storage/put_bucket_acl.rb +39 -48
- data/lib/fog/google/requests/storage/put_object_acl.rb +55 -0
- data/lib/fog/google/storage.rb +2 -1
- data/lib/fog/hp.rb +9 -352
- data/lib/fog/hp/block_storage.rb +1 -1
- data/lib/fog/hp/block_storage_v2.rb +1 -1
- data/lib/fog/hp/cdn.rb +1 -1
- data/lib/fog/hp/compute.rb +1 -1
- data/lib/fog/hp/compute_v2.rb +1 -1
- data/lib/fog/hp/core.rb +352 -0
- data/lib/fog/hp/dns.rb +1 -1
- data/lib/fog/hp/lb.rb +1 -1
- data/lib/fog/hp/models/compute/server.rb +2 -2
- data/lib/fog/hp/models/compute_v2/server.rb +2 -2
- data/lib/fog/hp/models/storage/directory.rb +12 -6
- data/lib/fog/hp/network.rb +1 -1
- data/lib/fog/hp/storage.rb +1 -1
- data/lib/fog/ibm.rb +2 -176
- data/lib/fog/ibm/compute.rb +1 -1
- data/lib/fog/ibm/core.rb +176 -0
- data/lib/fog/ibm/storage.rb +1 -1
- data/lib/fog/internet_archive.rb +1 -292
- data/lib/fog/internet_archive/core.rb +292 -0
- data/lib/fog/internet_archive/models/storage/file.rb +1 -1
- data/lib/fog/internet_archive/storage.rb +1 -1
- data/lib/fog/joyent.rb +2 -10
- data/lib/fog/joyent/compute.rb +1 -1
- data/lib/fog/joyent/core.rb +10 -0
- data/lib/fog/joyent/errors.rb +1 -0
- data/lib/fog/libvirt.rb +1 -11
- data/lib/fog/libvirt/compute.rb +1 -1
- data/lib/fog/libvirt/core.rb +11 -0
- data/lib/fog/libvirt/models/compute/README.md +1 -1
- data/lib/fog/libvirt/models/compute/server.rb +6 -6
- data/lib/fog/libvirt/models/compute/templates/volume.xml.erb +12 -0
- data/lib/fog/libvirt/models/compute/volume.rb +1 -0
- data/lib/fog/linode.rb +2 -10
- data/lib/fog/linode/compute.rb +1 -1
- data/lib/fog/linode/core.rb +10 -0
- data/lib/fog/linode/dns.rb +1 -1
- data/lib/fog/local.rb +1 -11
- data/lib/fog/local/core.rb +11 -0
- data/lib/fog/local/storage.rb +1 -1
- data/lib/fog/ninefold.rb +1 -12
- data/lib/fog/ninefold/compute.rb +1 -1
- data/lib/fog/ninefold/core.rb +12 -0
- data/lib/fog/openstack.rb +8 -249
- data/lib/fog/openstack/compute.rb +3 -1
- data/lib/fog/openstack/core.rb +249 -0
- data/lib/fog/openstack/docs/compute.md +681 -0
- data/lib/fog/openstack/docs/getting_started.md +81 -0
- data/lib/fog/openstack/docs/storage.md +441 -0
- data/lib/fog/openstack/identity.rb +1 -1
- data/lib/fog/openstack/image.rb +1 -1
- data/lib/fog/openstack/metering.rb +1 -1
- data/lib/fog/openstack/models/compute/server.rb +13 -5
- data/lib/fog/openstack/models/compute/servers.rb +13 -0
- data/lib/fog/openstack/models/network/network.rb +9 -11
- data/lib/fog/openstack/models/network/security_group.rb +32 -0
- data/lib/fog/openstack/models/network/security_group_rule.rb +33 -0
- data/lib/fog/openstack/models/network/security_group_rules.rb +33 -0
- data/lib/fog/openstack/models/network/security_groups.rb +34 -0
- data/lib/fog/openstack/models/storage/directories.rb +1 -0
- data/lib/fog/openstack/network.rb +19 -1
- data/lib/fog/openstack/orchestration.rb +1 -1
- data/lib/fog/openstack/requests/compute/add_security_group.rb +24 -0
- data/lib/fog/openstack/requests/compute/create_flavor.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_server.rb +3 -3
- data/lib/fog/openstack/requests/compute/remove_security_group.rb +24 -0
- data/lib/fog/openstack/requests/image/update_image_members.rb +2 -2
- data/lib/fog/openstack/requests/network/create_security_group.rb +94 -0
- data/lib/fog/openstack/requests/network/create_security_group_rule.rb +79 -0
- data/lib/fog/openstack/requests/network/delete_security_group.rb +32 -0
- data/lib/fog/openstack/requests/network/delete_security_group_rule.rb +36 -0
- data/lib/fog/openstack/requests/network/get_security_group.rb +52 -0
- data/lib/fog/openstack/requests/network/get_security_group_rule.rb +47 -0
- data/lib/fog/openstack/requests/network/list_networks.rb +0 -1
- data/lib/fog/openstack/requests/network/list_security_group_rules.rb +52 -0
- data/lib/fog/openstack/requests/network/list_security_groups.rb +57 -0
- data/lib/fog/openstack/storage.rb +2 -2
- data/lib/fog/openstack/volume.rb +1 -1
- data/lib/fog/openvz.rb +1 -9
- data/lib/fog/openvz/compute.rb +1 -1
- data/lib/fog/openvz/core.rb +9 -0
- data/lib/fog/ovirt.rb +1 -17
- data/lib/fog/ovirt/compute.rb +2 -0
- data/lib/fog/ovirt/core.rb +17 -0
- data/lib/fog/rackspace.rb +12 -145
- data/lib/fog/rackspace/auto_scale.rb +1 -1
- data/lib/fog/rackspace/block_storage.rb +5 -1
- data/lib/fog/rackspace/cdn.rb +22 -16
- data/lib/fog/rackspace/compute.rb +1 -1
- data/lib/fog/rackspace/compute_v2.rb +6 -2
- data/lib/fog/rackspace/core.rb +145 -0
- data/lib/fog/rackspace/databases.rb +5 -1
- data/lib/fog/rackspace/dns.rb +1 -1
- data/lib/fog/rackspace/docs/compute_v2.md +2 -10
- data/lib/fog/rackspace/errors.rb +1 -1
- data/lib/fog/rackspace/examples/storage/upload_file.rb +1 -1
- data/lib/fog/rackspace/identity.rb +26 -16
- data/lib/fog/rackspace/load_balancers.rb +7 -1
- data/lib/fog/rackspace/mock_data.rb +17 -0
- data/lib/fog/rackspace/models/compute/server.rb +2 -2
- data/lib/fog/rackspace/models/compute_v2/key_pair.rb +1 -1
- data/lib/fog/rackspace/models/compute_v2/server.rb +42 -5
- data/lib/fog/rackspace/models/monitoring/entities.rb +1 -1
- data/lib/fog/rackspace/models/queues/claim.rb +9 -1
- data/lib/fog/rackspace/models/storage/directory.rb +5 -2
- data/lib/fog/rackspace/models/storage/file.rb +14 -0
- data/lib/fog/rackspace/monitoring.rb +11 -2
- data/lib/fog/rackspace/queues.rb +318 -34
- data/lib/fog/rackspace/requests/compute_v2/create_keypair.rb +16 -5
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +7 -1
- data/lib/fog/rackspace/requests/compute_v2/delete_keypair.rb +1 -1
- data/lib/fog/rackspace/requests/identity/create_token.rb +192 -0
- data/lib/fog/rackspace/requests/identity/list_tenants.rb +23 -0
- data/lib/fog/rackspace/requests/monitoring/get_agent.rb +45 -0
- data/lib/fog/rackspace/requests/monitoring/get_cpus_info.rb +63 -0
- data/lib/fog/rackspace/requests/monitoring/get_disks_info.rb +56 -0
- data/lib/fog/rackspace/requests/monitoring/get_filesystems_info.rb +64 -0
- data/lib/fog/rackspace/requests/monitoring/get_logged_in_user_info.rb +58 -0
- data/lib/fog/rackspace/requests/monitoring/get_memory_info.rb +59 -0
- data/lib/fog/rackspace/requests/monitoring/get_network_interfaces_info.rb +91 -0
- data/lib/fog/rackspace/requests/monitoring/get_processes_info.rb +72 -0
- data/lib/fog/rackspace/requests/monitoring/get_system_info.rb +53 -0
- data/lib/fog/rackspace/requests/monitoring/list_agents.rb +62 -0
- data/lib/fog/rackspace/requests/queues/create_claim.rb +37 -0
- data/lib/fog/rackspace/requests/queues/create_message.rb +23 -0
- data/lib/fog/rackspace/requests/queues/create_queue.rb +15 -1
- data/lib/fog/rackspace/requests/queues/delete_claim.rb +18 -0
- data/lib/fog/rackspace/requests/queues/delete_message.rb +34 -0
- data/lib/fog/rackspace/requests/queues/delete_queue.rb +12 -0
- data/lib/fog/rackspace/requests/queues/get_claim.rb +15 -0
- data/lib/fog/rackspace/requests/queues/get_message.rb +17 -0
- data/lib/fog/rackspace/requests/queues/get_queue.rb +14 -1
- data/lib/fog/rackspace/requests/queues/get_queue_stats.rb +36 -0
- data/lib/fog/rackspace/requests/queues/list_messages.rb +33 -0
- data/lib/fog/rackspace/requests/queues/list_queues.rb +35 -1
- data/lib/fog/rackspace/requests/queues/update_claim.rb +17 -0
- data/lib/fog/rackspace/requests/storage/delete_container.rb +15 -0
- data/lib/fog/rackspace/requests/storage/delete_multiple_objects.rb +57 -0
- data/lib/fog/rackspace/requests/storage/delete_object.rb +14 -0
- data/lib/fog/rackspace/requests/storage/delete_static_large_object.rb +33 -0
- data/lib/fog/rackspace/requests/storage/extract_archive.rb +39 -0
- data/lib/fog/rackspace/requests/storage/get_container.rb +25 -0
- data/lib/fog/rackspace/requests/storage/get_containers.rb +17 -0
- data/lib/fog/rackspace/requests/storage/get_object.rb +26 -0
- data/lib/fog/rackspace/requests/storage/get_object_http_url.rb +9 -2
- data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +8 -1
- data/lib/fog/rackspace/requests/storage/head_container.rb +12 -0
- data/lib/fog/rackspace/requests/storage/head_containers.rb +19 -0
- data/lib/fog/rackspace/requests/storage/head_object.rb +26 -0
- data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +10 -0
- data/lib/fog/rackspace/requests/storage/put_container.rb +16 -0
- data/lib/fog/rackspace/requests/storage/put_dynamic_obj_manifest.rb +23 -0
- data/lib/fog/rackspace/requests/storage/put_object.rb +39 -0
- data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +9 -1
- data/lib/fog/rackspace/requests/storage/put_static_obj_manifest.rb +48 -0
- data/lib/fog/rackspace/storage.rb +320 -67
- data/lib/fog/rage4.rb +2 -0
- data/lib/fog/rage4/core.rb +11 -0
- data/lib/fog/rage4/dns.rb +74 -0
- data/lib/fog/rage4/models/dns/record.rb +77 -0
- data/lib/fog/rage4/models/dns/records.rb +42 -0
- data/lib/fog/rage4/models/dns/zone.rb +46 -0
- data/lib/fog/rage4/models/dns/zones.rb +34 -0
- data/lib/fog/rage4/requests/dns/create_domain.rb +33 -0
- data/lib/fog/rage4/requests/dns/create_domain_vanity.rb +34 -0
- data/lib/fog/rage4/requests/dns/create_record.rb +65 -0
- data/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb +32 -0
- data/lib/fog/rage4/requests/dns/delete_domain.rb +28 -0
- data/lib/fog/rage4/requests/dns/delete_record.rb +28 -0
- data/lib/fog/rage4/requests/dns/get_domain.rb +30 -0
- data/lib/fog/rage4/requests/dns/get_domain_by_name.rb +30 -0
- data/lib/fog/rage4/requests/dns/list_domains.rb +41 -0
- data/lib/fog/rage4/requests/dns/list_geo_regions.rb +27 -0
- data/lib/fog/rage4/requests/dns/list_record_types.rb +26 -0
- data/lib/fog/rage4/requests/dns/list_records.rb +31 -0
- data/lib/fog/rage4/requests/dns/set_record_failover.rb +29 -0
- data/lib/fog/rage4/requests/dns/show_current_usage.rb +25 -0
- data/lib/fog/rage4/requests/dns/show_global_usage.rb +25 -0
- data/lib/fog/rage4/requests/dns/update_domain.rb +43 -0
- data/lib/fog/rage4/requests/dns/update_record.rb +64 -0
- data/lib/fog/riakcs.rb +2 -122
- data/lib/fog/riakcs/core.rb +122 -0
- data/lib/fog/riakcs/provisioning.rb +1 -1
- data/lib/fog/riakcs/usage.rb +1 -1
- data/lib/fog/serverlove.rb +1 -10
- data/lib/fog/serverlove/compute.rb +2 -0
- data/lib/fog/serverlove/core.rb +10 -0
- data/lib/fog/storm_on_demand.rb +9 -20
- data/lib/fog/storm_on_demand/account.rb +1 -1
- data/lib/fog/storm_on_demand/billing.rb +1 -1
- data/lib/fog/storm_on_demand/compute.rb +1 -1
- data/lib/fog/storm_on_demand/core.rb +20 -0
- data/lib/fog/storm_on_demand/dns.rb +1 -1
- data/lib/fog/storm_on_demand/monitoring.rb +1 -1
- data/lib/fog/storm_on_demand/network.rb +1 -1
- data/lib/fog/storm_on_demand/shared.rb +0 -1
- data/lib/fog/storm_on_demand/storage.rb +1 -1
- data/lib/fog/storm_on_demand/support.rb +1 -1
- data/lib/fog/storm_on_demand/vpn.rb +1 -1
- data/lib/fog/vcloud.rb +1 -11
- data/lib/fog/vcloud/compute.rb +1 -1
- data/lib/fog/vcloud/core.rb +11 -0
- data/lib/fog/vcloud_director.rb +1 -67
- data/lib/fog/vcloud_director/compute.rb +1 -1
- data/lib/fog/vcloud_director/core.rb +67 -0
- data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +1 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vmfusion.rb +1 -11
- data/lib/fog/vmfusion/compute.rb +1 -1
- data/lib/fog/vmfusion/core.rb +11 -0
- data/lib/fog/vmfusion/models/compute/server.rb +5 -5
- data/lib/fog/voxel.rb +1 -16
- data/lib/fog/voxel/compute.rb +1 -1
- data/lib/fog/voxel/core.rb +16 -0
- data/lib/fog/vsphere.rb +1 -17
- data/lib/fog/vsphere/compute.rb +1 -0
- data/lib/fog/vsphere/core.rb +17 -0
- data/lib/fog/xenserver.rb +1 -83
- data/lib/fog/xenserver/compute.rb +1 -1
- data/lib/fog/xenserver/core.rb +83 -0
- data/lib/fog/xenserver/models/compute/storage_manager.rb +1 -1
- data/lib/fog/zerigo.rb +1 -11
- data/lib/fog/zerigo/core.rb +11 -0
- data/lib/fog/zerigo/dns.rb +1 -1
- data/lib/tasks/changelog_task.rb +2 -0
- data/tests/aws/models/compute/network_acl_tests.rb +109 -0
- data/tests/aws/models/compute/network_acls_tests.rb +7 -0
- data/tests/aws/models/elasticache/subnet_groups_tests.rb +44 -0
- data/tests/aws/requests/compute/network_acl_tests.rb +86 -0
- data/tests/aws/requests/compute/route_tests.rb +64 -3
- data/tests/aws/requests/compute/subnet_tests.rb +18 -11
- data/tests/aws/requests/elasticache/helper.rb +19 -0
- data/tests/aws/requests/elasticache/subnet_group_tests.rb +52 -0
- data/tests/aws/requests/iam/server_certificate_tests.rb +3 -0
- data/tests/aws/requests/rds/subnet_groups_tests.rb +1 -1
- data/tests/aws/requests/storage/multipart_upload_tests.rb +3 -14
- data/tests/brightbox/compute/schema.rb +118 -2
- data/tests/brightbox/helper.rb +1 -0
- data/tests/brightbox/models/compute/cloud_ip_tests.rb +32 -0
- data/tests/brightbox/models/compute/database_server_tests.rb +66 -0
- data/tests/brightbox/models/compute/database_snapshot_tests.rb +26 -0
- data/tests/brightbox/models/compute/database_type_tests.rb +27 -0
- data/tests/brightbox/requests/compute/database_server_tests.rb +54 -0
- data/tests/brightbox/requests/compute/database_snapsnot_tests.rb +47 -0
- data/tests/brightbox/requests/compute/database_type_tests.rb +17 -0
- data/tests/compute/models/server_tests.rb +20 -2
- data/tests/digitalocean/helper.rb +9 -4
- data/tests/digitalocean/models/compute/server_tests.rb +1 -0
- data/tests/digitalocean/models/compute/servers_tests.rb +19 -4
- data/tests/digitalocean/requests/compute/create_server_tests.rb +13 -6
- data/tests/digitalocean/requests/compute/list_servers_tests.rb +2 -1
- data/tests/dns/helper.rb +3 -0
- data/tests/dns/models/record_tests.rb +1 -1
- data/tests/dns/models/records_tests.rb +1 -1
- data/tests/dns/models/zone_tests.rb +1 -1
- data/tests/dns/models/zones_tests.rb +1 -1
- data/tests/helper.rb +7 -1
- data/tests/helpers/compute/server_helper.rb +1 -0
- data/tests/helpers/compute/servers_helper.rb +1 -0
- data/tests/openstack/models/network/security_group_rule_tests.rb +27 -0
- data/tests/openstack/models/network/security_group_rules_tests.rb +25 -0
- data/tests/openstack/models/network/security_group_tests.rb +17 -0
- data/tests/openstack/models/network/security_groups_tests.rb +16 -0
- data/tests/openstack/requests/compute/helper.rb +5 -0
- data/tests/openstack/requests/compute/server_tests.rb +11 -0
- data/tests/openstack/requests/network/security_group_rule_tests.rb +58 -0
- data/tests/openstack/requests/network/security_group_tests.rb +43 -0
- data/tests/rackspace/identity_tests.rb +0 -4
- data/tests/rackspace/models/compute_v2/server_tests.rb +36 -8
- data/tests/rackspace/models/queues/claim_tests.rb +1 -3
- data/tests/rackspace/models/queues/claims_tests.rb +1 -3
- data/tests/rackspace/models/queues/message_tests.rb +1 -3
- data/tests/rackspace/models/queues/messages_tests.rb +1 -3
- data/tests/rackspace/models/queues/queue_tests.rb +1 -3
- data/tests/rackspace/models/queues/queues_tests.rb +1 -3
- data/tests/rackspace/models/storage/account_tests.rb +0 -2
- data/tests/rackspace/models/storage/directories_tests.rb +0 -3
- data/tests/rackspace/models/storage/directory_tests.rb +2 -5
- data/tests/rackspace/models/storage/file_tests.rb +49 -2
- data/tests/rackspace/models/storage/files_tests.rb +1 -4
- data/tests/rackspace/queues_tests.rb +0 -13
- data/tests/rackspace/requests/identity/token_tests.rb +1 -3
- data/tests/rackspace/requests/monitoring/agent_tests.rb +42 -0
- data/tests/rackspace/requests/queues/claim_tests.rb +1 -3
- data/tests/rackspace/requests/queues/messages_tests.rb +0 -6
- data/tests/rackspace/requests/queues/queues_tests.rb +0 -5
- data/tests/rackspace/requests/storage/account_tests.rb +0 -1
- data/tests/rackspace/requests/storage/container_tests.rb +7 -11
- data/tests/rackspace/requests/storage/large_object_tests.rb +33 -43
- data/tests/rackspace/requests/storage/object_tests.rb +2 -27
- data/tests/rackspace/storage_tests.rb +9 -15
- data/tests/rage4/requests/dns/dns_tests.rb +241 -0
- data/tests/vcloud/requests/compute/disk_configure_tests.rb +0 -8
- metadata +190 -33
- data/lib/fog/brightbox/requests/compute/destroy_user_collaboration.rb +0 -21
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'fog/rackspace/core'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Rackspace
|
@@ -143,6 +143,10 @@ module Fog
|
|
143
143
|
regions = @identity_service.service_catalog.display_service_regions(service_name)
|
144
144
|
Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid region for :rackspace_region are #{regions}.")
|
145
145
|
end
|
146
|
+
|
147
|
+
unless options[:rackspace_region]
|
148
|
+
Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option")
|
149
|
+
end
|
146
150
|
end
|
147
151
|
|
148
152
|
def append_tenant_v1(credentials)
|
data/lib/fog/rackspace/dns.rb
CHANGED
@@ -250,8 +250,6 @@ This returns a collection of `Fog::Compute::RackspaceV2::Image` models:
|
|
250
250
|
>,
|
251
251
|
…
|
252
252
|
|
253
|
-
**Note**: In order to speed up access `service.images` does not retrieve all attribute values. To retrieve additional details you will either need to `reload` each individual image or use the request abstraction.
|
254
|
-
|
255
253
|
## Get Image
|
256
254
|
|
257
255
|
To retrieve individual image:
|
@@ -276,13 +274,11 @@ This returns an `Fog::Compute::RackspaceV2::Image` instance:
|
|
276
274
|
links=[{"href"=>"https://ord.servers.api.rackspacecloud.com/v2/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"self"}, {"href"=>"https://ord.servers.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "rel"=>"bookmark"}, {"href"=>"https://ord.images.api.rackspacecloud.com/772045/images/8a3a9f96-b997-46fd-b7a8-a9e740796ffd", "type"=>"application/vnd.openstack.image", "rel"=>"alternate"}]
|
277
275
|
>
|
278
276
|
|
279
|
-
**Note**: This request populates all Image attributes.
|
280
|
-
|
281
277
|
## List Flavors
|
282
278
|
|
283
279
|
To retrieve a list of available flavors:
|
284
280
|
|
285
|
-
service.
|
281
|
+
service.flavors
|
286
282
|
|
287
283
|
This returns a collection of `Fog::Compute::RackspaceV2::Flavor` models:
|
288
284
|
|
@@ -305,8 +301,6 @@ This returns a collection of `Fog::Compute::RackspaceV2::Flavor` models:
|
|
305
301
|
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/flavors/3", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/flavors/3", "rel"=>"bookmark"}]
|
306
302
|
>,
|
307
303
|
…
|
308
|
-
|
309
|
-
**Note**: In order to speed up access `service.flavors` does not retrieve all attribute values. To retrieve additional details you will either need to `reload` each individual flavor or use the request abstraction.
|
310
304
|
|
311
305
|
|
312
306
|
## Get Flavor
|
@@ -325,8 +319,6 @@ This returns a `Fog::Compute::RackspaceV2::Flavor` instance:
|
|
325
319
|
vcpus=1,
|
326
320
|
links=[{"href"=>"https://dfw.servers.api.rackspacecloud.com/v2/772045/flavors/2", "rel"=>"self"}, {"href"=>"https://dfw.servers.api.rackspacecloud.com/772045/flavors/2", "rel"=>"bookmark"}]
|
327
321
|
>
|
328
|
-
|
329
|
-
**Note**: This request populates all Flavor attributes.
|
330
322
|
|
331
323
|
|
332
324
|
## List Servers
|
@@ -486,7 +478,7 @@ The `create` method also supports the following key values:
|
|
486
478
|
</tr>
|
487
479
|
<tr>
|
488
480
|
<td>:personality</td>
|
489
|
-
<td>Array of files to be injected onto the server. Please refer to the Fog <a href="http://rubydoc.info/github/fog/fog/Fog/Compute/RackspaceV2/
|
481
|
+
<td>Array of files to be injected onto the server. Please refer to the Fog <a href="http://rubydoc.info/github/fog/fog/Fog/Compute/RackspaceV2/Server:personality">personality </a> API documentation for further information.</td>
|
490
482
|
</tr>
|
491
483
|
</table>
|
492
484
|
|
data/lib/fog/rackspace/errors.rb
CHANGED
@@ -40,6 +40,6 @@ directory = service.directories.create :key => directory_name, :public => true
|
|
40
40
|
upload_file = File.join(File.dirname(__FILE__), "lorem.txt")
|
41
41
|
file = directory.files.create :key => 'sample.txt', :body => File.open(upload_file, "r")
|
42
42
|
|
43
|
-
puts "You should
|
43
|
+
puts "You should be able to view this file via CDN at #{file.public_url}"
|
44
44
|
puts "To delete the container and associated file please execute the delete_directory.rb script\n\n"
|
45
45
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'fog/rackspace'
|
1
|
+
require 'fog/rackspace/core'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Rackspace
|
@@ -34,18 +34,16 @@ module Fog
|
|
34
34
|
request :update_user
|
35
35
|
request :delete_user
|
36
36
|
|
37
|
-
|
38
|
-
attr_reader :service_catalog
|
39
|
-
|
40
|
-
def
|
41
|
-
|
37
|
+
module Common
|
38
|
+
attr_reader :service_catalog, :auth_token
|
39
|
+
|
40
|
+
def authenticate(options={})
|
41
|
+
data = self.create_token(@rackspace_username, @rackspace_api_key).body
|
42
|
+
@service_catalog = ServiceCatalog.from_response(self, data)
|
43
|
+
@auth_token = data['access']['token']['id']
|
42
44
|
end
|
43
|
-
end
|
44
45
|
|
45
|
-
|
46
|
-
attr_reader :service_catalog, :auth_token
|
47
|
-
|
48
|
-
def initialize(options={})
|
46
|
+
def apply_options(options)
|
49
47
|
@rackspace_username = options[:rackspace_username]
|
50
48
|
@rackspace_api_key = options[:rackspace_api_key]
|
51
49
|
@rackspace_region = options[:rackspace_region]
|
@@ -58,15 +56,27 @@ module Fog
|
|
58
56
|
@scheme = @uri.scheme
|
59
57
|
@persistent = options[:persistent] || false
|
60
58
|
@connection_options = options[:connection_options] || {}
|
61
|
-
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class Mock < Fog::Rackspace::Service
|
63
|
+
include Common
|
64
|
+
|
65
|
+
def initialize(options={})
|
66
|
+
apply_options(options)
|
62
67
|
|
63
68
|
authenticate
|
64
69
|
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class Real < Fog::Rackspace::Service
|
73
|
+
include Common
|
65
74
|
|
66
|
-
def
|
67
|
-
|
68
|
-
@
|
69
|
-
|
75
|
+
def initialize(options={})
|
76
|
+
apply_options(options)
|
77
|
+
@connection = Fog::Connection.new(@uri.to_s, @persistent, @connection_options)
|
78
|
+
|
79
|
+
authenticate
|
70
80
|
end
|
71
81
|
end
|
72
82
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'fog/rackspace'
|
1
|
+
require 'fog/rackspace/core'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Rackspace
|
@@ -116,6 +116,8 @@ module Fog
|
|
116
116
|
|
117
117
|
authenticate
|
118
118
|
|
119
|
+
deprecation_warnings(options)
|
120
|
+
|
119
121
|
@persistent = options[:persistent] || false
|
120
122
|
@connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
|
121
123
|
end
|
@@ -186,6 +188,10 @@ module Fog
|
|
186
188
|
regions = @identity_service.service_catalog.display_service_regions(service_name)
|
187
189
|
Fog::Logger.deprecation("Please specify region using :rackspace_region rather than :rackspace_endpoint. Valid regions for :rackspace_region are #{regions}.")
|
188
190
|
end
|
191
|
+
|
192
|
+
unless options[:rackspace_region]
|
193
|
+
Fog::Logger.deprecation("Default region support will be removed in an upcoming release. Please switch to manually setting your endpoint. This requires settng the :rackspace_region option")
|
194
|
+
end
|
189
195
|
end
|
190
196
|
|
191
197
|
def append_tenant_v1(credentials)
|
@@ -232,6 +232,23 @@ module Fog
|
|
232
232
|
def self.zulu_time
|
233
233
|
Time.now.strftime("%Y-%m-%dT%H:%M:%SZ")
|
234
234
|
end
|
235
|
+
|
236
|
+
def self.stringify(message)
|
237
|
+
case message
|
238
|
+
when Symbol
|
239
|
+
message.to_s
|
240
|
+
when Hash
|
241
|
+
result = Hash.new
|
242
|
+
message.each do |key, value|
|
243
|
+
nk = stringify(key)
|
244
|
+
nv = stringify(value)
|
245
|
+
result[nk] = nv
|
246
|
+
end
|
247
|
+
result
|
248
|
+
else
|
249
|
+
message
|
250
|
+
end
|
251
|
+
end
|
235
252
|
end
|
236
253
|
end
|
237
254
|
end
|
@@ -80,8 +80,8 @@ module Fog
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def setup(credentials = {})
|
83
|
-
requires :
|
84
|
-
Fog::SSH.new(
|
83
|
+
requires :ssh_ip_address, :identity, :public_key, :username
|
84
|
+
Fog::SSH.new(ssh_ip_address, username, credentials).run([
|
85
85
|
%{mkdir .ssh},
|
86
86
|
%{echo "#{public_key}" >> ~/.ssh/authorized_keys},
|
87
87
|
%{passwd -l #{username}},
|
@@ -33,7 +33,7 @@ module Fog
|
|
33
33
|
# @raise [Fog::Compute::RackspaceV2::ServiceError]
|
34
34
|
def save
|
35
35
|
requires :name
|
36
|
-
data = service.create_keypair(name,
|
36
|
+
data = service.create_keypair(name, attributes)
|
37
37
|
merge_attributes(data.body['keypair'])
|
38
38
|
data.body['keypair']['name'] == name
|
39
39
|
end
|
@@ -137,10 +137,16 @@ module Fog
|
|
137
137
|
# @return [String] The image Id.
|
138
138
|
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/List_Images-d1e4435.html
|
139
139
|
attribute :image_id, :aliases => 'image', :squash => 'id'
|
140
|
+
|
140
141
|
# @!attribute [r] password
|
141
142
|
# @return [String] Password for system adminstrator account.
|
142
143
|
# @note This value is ONLY populated on server creation.
|
143
|
-
attr_reader :password
|
144
|
+
attr_reader :password
|
145
|
+
|
146
|
+
# @!attribute [rw] key_name
|
147
|
+
# @return [String] The name of the key_pair used for server.
|
148
|
+
# @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
|
149
|
+
attribute :key_name
|
144
150
|
|
145
151
|
|
146
152
|
def initialize(attributes={})
|
@@ -170,6 +176,27 @@ module Fog
|
|
170
176
|
metadata.from_hash(hash)
|
171
177
|
end
|
172
178
|
|
179
|
+
# Returns the key pair based on the key_name of the server
|
180
|
+
# @return [KeyPair]
|
181
|
+
# @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
|
182
|
+
def key_pair
|
183
|
+
requires :key_name
|
184
|
+
|
185
|
+
service.key_pairs.get(key_name)
|
186
|
+
end
|
187
|
+
|
188
|
+
# Sets the key_pair used by the server.
|
189
|
+
# @param new_keypair [KeyPair] key_pair object for server
|
190
|
+
# @note The key_pair/key_name is used to specify the keypair used for server creation. It is not populated by cloud servers.
|
191
|
+
def key_pair=(new_keypair)
|
192
|
+
if new_keypair.is_a?(String)
|
193
|
+
Fog::Logger.deprecation("#key_pair= should be used to set KeyPair objects. Please use #key_name method instead")
|
194
|
+
self.key_name = new_keypair
|
195
|
+
else
|
196
|
+
self.key_name = new_keypair && new_keypair.name
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
173
200
|
# Saves the server.
|
174
201
|
# Creates server if it is new, otherwise it will update server attributes name, accessIPv4, and accessIPv6.
|
175
202
|
# @return [Boolean] true if server has started saving
|
@@ -201,11 +228,16 @@ module Fog
|
|
201
228
|
requires :name, :image_id, :flavor_id
|
202
229
|
modified_options = Marshal.load(Marshal.dump(options))
|
203
230
|
|
231
|
+
if attributes[:keypair]
|
232
|
+
Fog::Logger.deprecation(":keypair has been depreciated. Please use :key_name instead.")
|
233
|
+
modified_options[:key_name] = attributes[:keypair]
|
234
|
+
end
|
235
|
+
|
204
236
|
modified_options[:networks] ||= attributes[:networks]
|
205
237
|
modified_options[:disk_config] = disk_config unless disk_config.nil?
|
206
238
|
modified_options[:metadata] = metadata.to_hash unless @metadata.nil?
|
207
239
|
modified_options[:personality] = personality unless personality.nil?
|
208
|
-
modified_options[:
|
240
|
+
modified_options[:key_name] ||= attributes[:key_name]
|
209
241
|
|
210
242
|
if modified_options[:networks]
|
211
243
|
modified_options[:networks].map! { |id| { :uuid => id } }
|
@@ -521,15 +553,20 @@ module Fog
|
|
521
553
|
# Setup server for SSH access
|
522
554
|
# @see Servers#bootstrap
|
523
555
|
def setup(credentials = {})
|
524
|
-
requires :
|
556
|
+
requires :ssh_ip_address, :identity, :public_key, :username
|
557
|
+
|
525
558
|
commands = [
|
526
559
|
%{mkdir .ssh},
|
527
560
|
%{echo "#{public_key}" >> ~/.ssh/authorized_keys},
|
528
561
|
password_lock,
|
529
562
|
%{echo "#{Fog::JSON.encode(attributes)}" >> ~/attributes.json},
|
530
563
|
%{echo "#{Fog::JSON.encode(metadata)}" >> ~/metadata.json}
|
531
|
-
]
|
532
|
-
|
564
|
+
]
|
565
|
+
commands.compact
|
566
|
+
|
567
|
+
@password = nil if password_lock
|
568
|
+
|
569
|
+
Fog::SSH.new(ssh_ip_address, username, credentials).run(commands)
|
533
570
|
rescue Errno::ECONNREFUSED
|
534
571
|
sleep(1)
|
535
572
|
retry
|
@@ -94,6 +94,14 @@ module Fog
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
+
def initialize(new_attributes = {})
|
98
|
+
# A hack in support of the #messages= hack up above. #messages= requires #collection to
|
99
|
+
# be populated first to succeed, which is always the case in modern Rubies that preserve
|
100
|
+
# Hash ordering, but not in 1.8.7.
|
101
|
+
@collection = new_attributes.delete(:collection)
|
102
|
+
super(new_attributes)
|
103
|
+
end
|
104
|
+
|
97
105
|
private
|
98
106
|
|
99
107
|
def queue
|
@@ -109,7 +117,7 @@ module Fog
|
|
109
117
|
response = service.create_claim(queue.identity, ttl, grace, options)
|
110
118
|
|
111
119
|
if [200, 201].include? response.status
|
112
|
-
self.identity = response.
|
120
|
+
self.identity = response.get_header('Location').split('/').last
|
113
121
|
self.messages = response.body
|
114
122
|
|
115
123
|
#Since Claims aren't a server side collection, we need to
|
@@ -166,8 +166,11 @@ module Fog
|
|
166
166
|
def save
|
167
167
|
requires :key
|
168
168
|
create_or_update_container
|
169
|
-
|
170
|
-
|
169
|
+
if cdn_enabled?
|
170
|
+
@urls = service.cdn.publish_container(self, public?)
|
171
|
+
else
|
172
|
+
raise Fog::Storage::Rackspace::Error.new("Directory can not be set as :public without a CDN provided") if public?
|
173
|
+
end
|
171
174
|
true
|
172
175
|
end
|
173
176
|
|
@@ -47,6 +47,18 @@ module Fog
|
|
47
47
|
# @see http://docs.rackspace.com/files/api/v1/cf-devguide/content/Enabling_File_Compression_with_the_Content-Encoding_Header-d1e2198.html
|
48
48
|
attribute :content_encoding, :aliases => 'Content-Encoding'
|
49
49
|
|
50
|
+
# @!attribute [rw] delete_at
|
51
|
+
# A Unix Epoch Timestamp, in integer form, representing the time when this object will be automatically deleted.
|
52
|
+
# @return [Integer] the unix epoch timestamp of when this object will be automatically deleted
|
53
|
+
# @see http://docs.rackspace.com/files/api/v1/cf-devguide/content/Expiring_Objects-e1e3228.html
|
54
|
+
attribute :delete_at, :aliases => ['X-Delete-At']
|
55
|
+
|
56
|
+
# @!attribute [rw] delete_after
|
57
|
+
# A number of seconds representing how long from now this object will be automatically deleted.
|
58
|
+
# @return [Integer] the number of seconds until this object will be automatically deleted
|
59
|
+
# @see http://docs.rackspace.com/files/api/v1/cf-devguide/content/Expiring_Objects-e1e3228.html
|
60
|
+
attribute :delete_after, :aliases => ['X-Delete-After']
|
61
|
+
|
50
62
|
# @!attribute [r] directory
|
51
63
|
# @return [Fog::Storage::Rackspace::Directory] directory containing file
|
52
64
|
attr_accessor :directory
|
@@ -254,6 +266,8 @@ module Fog
|
|
254
266
|
options['Content-Disposition'] = content_disposition if content_disposition
|
255
267
|
options['Etag'] = etag if etag
|
256
268
|
options['Content-Encoding'] = content_encoding if content_encoding
|
269
|
+
options['X-Delete-At'] = delete_at if delete_at
|
270
|
+
options['X-Delete-After'] = delete_after if delete_after
|
257
271
|
options.merge!(metadata.to_headers)
|
258
272
|
|
259
273
|
data = service.put_object(directory.key, key, body, options)
|
@@ -1,9 +1,8 @@
|
|
1
|
+
require 'fog/rackspace/core'
|
1
2
|
# This class originally came from the rackspace-monitoring gem located here:
|
2
3
|
# https://github.com/racker/rackspace-monitoring-rb
|
3
4
|
# It has been heavily modified for import into Fog master.
|
4
5
|
|
5
|
-
require 'fog'
|
6
|
-
require 'fog/core'
|
7
6
|
|
8
7
|
module Fog
|
9
8
|
module Rackspace
|
@@ -61,6 +60,7 @@ module Fog
|
|
61
60
|
|
62
61
|
request_path 'fog/rackspace/requests/monitoring'
|
63
62
|
request :list_agent_tokens
|
63
|
+
request :list_agents
|
64
64
|
request :list_alarms
|
65
65
|
request :list_alarm_examples
|
66
66
|
request :list_checks
|
@@ -72,12 +72,21 @@ module Fog
|
|
72
72
|
request :list_notification_plans
|
73
73
|
request :list_notifications
|
74
74
|
|
75
|
+
request :get_agent
|
75
76
|
request :get_agent_token
|
76
77
|
request :get_alarm
|
77
78
|
request :get_alarm_example
|
78
79
|
request :get_check
|
79
80
|
request :get_entity
|
80
81
|
request :get_notification
|
82
|
+
request :get_cpus_info
|
83
|
+
request :get_disks_info
|
84
|
+
request :get_filesystems_info
|
85
|
+
request :get_memory_info
|
86
|
+
request :get_network_interfaces_info
|
87
|
+
request :get_processes_info
|
88
|
+
request :get_system_info
|
89
|
+
request :get_logged_in_user_info
|
81
90
|
|
82
91
|
request :create_agent_token
|
83
92
|
request :create_alarm
|
data/lib/fog/rackspace/queues.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'fog/rackspace/core'
|
2
2
|
|
3
3
|
module Fog
|
4
4
|
module Rackspace
|
@@ -42,23 +42,8 @@ module Fog
|
|
42
42
|
request :update_claim
|
43
43
|
request :delete_claim
|
44
44
|
|
45
|
-
|
46
|
-
def
|
47
|
-
Fog::Mock.not_implemented
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
class Real < Fog::Rackspace::Service
|
52
|
-
|
53
|
-
def service_name
|
54
|
-
:cloudQueues
|
55
|
-
end
|
56
|
-
|
57
|
-
def region
|
58
|
-
@rackspace_region
|
59
|
-
end
|
60
|
-
|
61
|
-
def initialize(options = {})
|
45
|
+
module Common
|
46
|
+
def apply_options(options)
|
62
47
|
@rackspace_api_key = options[:rackspace_api_key]
|
63
48
|
@rackspace_username = options[:rackspace_username]
|
64
49
|
@rackspace_queues_client_id = options[:rackspace_queues_client_id] || Fog::UUID.uuid
|
@@ -70,25 +55,14 @@ module Fog
|
|
70
55
|
unless v2_authentication?
|
71
56
|
raise Fog::Errors::NotImplemented.new("V2 authentication required for Queues")
|
72
57
|
end
|
58
|
+
end
|
73
59
|
|
74
|
-
|
75
|
-
|
76
|
-
@persistent = options[:persistent] || false
|
77
|
-
@connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
|
60
|
+
def service_name
|
61
|
+
:cloudQueues
|
78
62
|
end
|
79
63
|
|
80
|
-
def
|
81
|
-
|
82
|
-
rescue Excon::Errors::NotFound => error
|
83
|
-
raise NotFound.slurp(error, self)
|
84
|
-
rescue Excon::Errors::BadRequest => error
|
85
|
-
raise BadRequest.slurp(error, self)
|
86
|
-
rescue Excon::Errors::InternalServerError => error
|
87
|
-
raise InternalServerError.slurp(error, self)
|
88
|
-
rescue Excon::Errors::MethodNotAllowed => error
|
89
|
-
raise MethodNotAllowed.slurp(error, self)
|
90
|
-
rescue Excon::Errors::HTTPStatusError => error
|
91
|
-
raise ServiceError.slurp(error, self)
|
64
|
+
def region
|
65
|
+
@rackspace_region
|
92
66
|
end
|
93
67
|
|
94
68
|
def endpoint_uri(service_endpoint_url=nil)
|
@@ -112,6 +86,316 @@ module Fog
|
|
112
86
|
@rackspace_queues_client_id = client_id
|
113
87
|
end
|
114
88
|
end
|
89
|
+
|
90
|
+
class Mock < Fog::Rackspace::Service
|
91
|
+
include Common
|
92
|
+
|
93
|
+
PATH_BASE = "/v1/queues"
|
94
|
+
|
95
|
+
# An in-memory Queue implementation.
|
96
|
+
class MockQueue
|
97
|
+
attr_accessor :name, :metadata, :messages, :claims
|
98
|
+
|
99
|
+
def initialize(name)
|
100
|
+
@name, @metadata = name, {}
|
101
|
+
@messages, @claims = [], {}
|
102
|
+
@id_counter = Fog::Mock.random_hex(24).to_i(16)
|
103
|
+
end
|
104
|
+
|
105
|
+
# The total number of messages currently on the queue.
|
106
|
+
#
|
107
|
+
# @return [Integer]
|
108
|
+
def total
|
109
|
+
@messages.size
|
110
|
+
end
|
111
|
+
|
112
|
+
# The number of messages currently held by a claim.
|
113
|
+
#
|
114
|
+
# @return [Integer]
|
115
|
+
def claimed
|
116
|
+
@messages.count { |msg| msg.claimed? }
|
117
|
+
end
|
118
|
+
|
119
|
+
# The number of messages not held by any claim.
|
120
|
+
#
|
121
|
+
# @return [Integer]
|
122
|
+
def free
|
123
|
+
@messages.count { |msg| ! msg.claimed? }
|
124
|
+
end
|
125
|
+
|
126
|
+
# The oldest published message on this queue, or `nil`.
|
127
|
+
#
|
128
|
+
# @return [MockMessage|UndefinedObject]
|
129
|
+
def oldest
|
130
|
+
@messages.first
|
131
|
+
end
|
132
|
+
|
133
|
+
# The most recently published message on this queue, or `nil`.
|
134
|
+
#
|
135
|
+
# @return [MockMessage|UndefinedObject]
|
136
|
+
def newest
|
137
|
+
@messages.last
|
138
|
+
end
|
139
|
+
|
140
|
+
# Append a new message to the queue.
|
141
|
+
#
|
142
|
+
# @param client_id [String] UUID for the service object.
|
143
|
+
# @param data [Hash] Message payload.
|
144
|
+
# @param ttl [Integer] Number of seconds that the message should exist.
|
145
|
+
# @return [MockMessage] The message object that was created.
|
146
|
+
def add_message(client_id, data, ttl)
|
147
|
+
id = @id_counter.to_s(16)
|
148
|
+
@id_counter += 1
|
149
|
+
message = MockMessage.new(id, self, client_id, data, ttl)
|
150
|
+
@messages << message
|
151
|
+
message
|
152
|
+
end
|
153
|
+
|
154
|
+
# Create a new MockClaim.
|
155
|
+
#
|
156
|
+
# @param ttl [Integer] Time-to-live for the claim.
|
157
|
+
# @param grace [Integer] Grace period that's added to messages included in this claim.
|
158
|
+
def add_claim(ttl, grace)
|
159
|
+
claim = MockClaim.new(self, ttl, grace)
|
160
|
+
claims[claim.id] = claim
|
161
|
+
claim
|
162
|
+
end
|
163
|
+
|
164
|
+
# Access an existing MockClaim by id.
|
165
|
+
#
|
166
|
+
# @param claim_id [String] An ID of an existing claim.
|
167
|
+
# @raises [Fog::Rackspace::Queues::NotFound] If no MockClaim with this ID exists.
|
168
|
+
# @return [MockClaim] The requested MockClaim.
|
169
|
+
def claim!(claim_id)
|
170
|
+
claims[claim_id] or raise NotFound.new
|
171
|
+
end
|
172
|
+
|
173
|
+
# Remove any messages or claims whose ttls have expired.
|
174
|
+
def ageoff
|
175
|
+
messages.reject! { |m| m.expired? }
|
176
|
+
|
177
|
+
claims.keys.dup.each do |id|
|
178
|
+
claim = claims[id]
|
179
|
+
if claim.expired? || claim.messages.empty?
|
180
|
+
claim.messages.each { |m| m.claim = nil }
|
181
|
+
claims.delete(id)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
# A single message posted to an in-memory MockQueue.
|
188
|
+
class MockMessage
|
189
|
+
attr_accessor :id, :queue, :data, :ttl, :producer_id
|
190
|
+
attr_accessor :claim, :created
|
191
|
+
|
192
|
+
# Create a new message. Use {MockQueue#add_message} instead.
|
193
|
+
def initialize(id, queue, client_id, data, ttl)
|
194
|
+
@id, @queue, @producer_id = id, queue, client_id
|
195
|
+
@data, @ttl = data, ttl
|
196
|
+
@created = Time.now.to_i
|
197
|
+
@claim = nil
|
198
|
+
end
|
199
|
+
|
200
|
+
# Determine how long ago this message was created, in seconds.
|
201
|
+
#
|
202
|
+
# @return [Integer]
|
203
|
+
def age
|
204
|
+
Time.now.to_i - @created
|
205
|
+
end
|
206
|
+
|
207
|
+
# Generate a URI segment that identifies this message.
|
208
|
+
#
|
209
|
+
# @return [String]
|
210
|
+
def href
|
211
|
+
"#{PATH_BASE}/#{@queue.name}/messages/#{@id}"
|
212
|
+
end
|
213
|
+
|
214
|
+
# Return true if this message has been claimed.
|
215
|
+
#
|
216
|
+
# @return [Boolean]
|
217
|
+
def claimed?
|
218
|
+
! @claim.nil?
|
219
|
+
end
|
220
|
+
|
221
|
+
# Determine if this message has lived longer than its designated ttl.
|
222
|
+
#
|
223
|
+
# @return [Boolean]
|
224
|
+
def expired?
|
225
|
+
age > ttl
|
226
|
+
end
|
227
|
+
|
228
|
+
# Extend the {#ttl} of this message to include the lifetime of the claim it belongs to,
|
229
|
+
# plus the claim's grace period.
|
230
|
+
def extend_life
|
231
|
+
return unless @claim
|
232
|
+
extended = claim.message_end_of_life - @created
|
233
|
+
@ttl = extended if extended > @ttl
|
234
|
+
end
|
235
|
+
|
236
|
+
# Convert this message to a GET payload.
|
237
|
+
#
|
238
|
+
# @return [Hash]
|
239
|
+
def to_h
|
240
|
+
{
|
241
|
+
"body" => @data,
|
242
|
+
"age" => age,
|
243
|
+
"ttl" => @ttl,
|
244
|
+
"href" => href
|
245
|
+
}
|
246
|
+
end
|
247
|
+
end
|
248
|
+
|
249
|
+
# Reservation indicating that a consumer is in the process of handling a collection of
|
250
|
+
# messages from a queue.
|
251
|
+
class MockClaim
|
252
|
+
attr_accessor :id, :queue, :ttl, :grace
|
253
|
+
|
254
|
+
# Create a new MockClaim. Clients should use {MockQueue#add_claim} instead.
|
255
|
+
#
|
256
|
+
# @param queue [MockQueue] The queue that owns this claim.
|
257
|
+
# @param ttl [Integer] Duration, in seconds, that this queue should last.
|
258
|
+
# @param grace [Integer] Extra life granted to messages within this claim after this
|
259
|
+
# claim expires, to give another consumer a chance to process it.
|
260
|
+
def initialize(queue, ttl, grace)
|
261
|
+
@queue = queue
|
262
|
+
@id = Fog::Mock.random_hex(24)
|
263
|
+
@ttl, @grace = ttl, grace
|
264
|
+
touch!
|
265
|
+
end
|
266
|
+
|
267
|
+
# Set or reset the creation time of the claim to the present.
|
268
|
+
def touch!
|
269
|
+
@created = Time.now.to_i
|
270
|
+
end
|
271
|
+
|
272
|
+
# Calculate the time at which messages belonging to this claim should expire.
|
273
|
+
#
|
274
|
+
# @return [Integer] Seconds since the epoch.
|
275
|
+
def message_end_of_life
|
276
|
+
@created + @ttl + @grace
|
277
|
+
end
|
278
|
+
|
279
|
+
# Determine how long ago this claim was created, in seconds.
|
280
|
+
#
|
281
|
+
# @return [Integer]
|
282
|
+
def age
|
283
|
+
Time.now.to_i - @created
|
284
|
+
end
|
285
|
+
|
286
|
+
# Determine if this claim has lasted longer than its designated ttl.
|
287
|
+
#
|
288
|
+
# @return [Boolean]
|
289
|
+
def expired?
|
290
|
+
age > ttl
|
291
|
+
end
|
292
|
+
|
293
|
+
# Access the collection of messages owned by this claim.
|
294
|
+
#
|
295
|
+
# @return [Array<Message>]
|
296
|
+
def messages
|
297
|
+
@queue.messages.select { |m| m.claim == self }
|
298
|
+
end
|
299
|
+
|
300
|
+
# Convert this claim into a GET payload.
|
301
|
+
#
|
302
|
+
# @return [Hash]
|
303
|
+
def to_h
|
304
|
+
ms = messages.map { |m| m.to_h }
|
305
|
+
|
306
|
+
{
|
307
|
+
"age" => age,
|
308
|
+
"href" => "#{PATH_BASE}/#{@queue.name}/claims/#{@id}",
|
309
|
+
"ttl" => @ttl,
|
310
|
+
"messages" => ms
|
311
|
+
}
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
def initialize(options = {})
|
316
|
+
apply_options(options)
|
317
|
+
authenticate
|
318
|
+
endpoint_uri
|
319
|
+
end
|
320
|
+
|
321
|
+
def self.data
|
322
|
+
@data ||= Hash.new do |hash, key|
|
323
|
+
hash[key] = {}
|
324
|
+
end
|
325
|
+
end
|
326
|
+
|
327
|
+
def data
|
328
|
+
self.class.data[@rackspace_username]
|
329
|
+
end
|
330
|
+
|
331
|
+
# Create and remember a MockQueue with a given name. An existing MockQueue with the same
|
332
|
+
# name will be overridden without warning.
|
333
|
+
#
|
334
|
+
# @param [String] Valid queue name.
|
335
|
+
# @return [MockQueue] The MockQueue that was created.
|
336
|
+
def add_queue(queue_name)
|
337
|
+
queue = MockQueue.new(queue_name)
|
338
|
+
data[queue_name] = queue
|
339
|
+
queue
|
340
|
+
end
|
341
|
+
|
342
|
+
# Access a MockQueue with the specified name, or return `nil`.
|
343
|
+
#
|
344
|
+
# @param queue_name [String] Valid queue name.
|
345
|
+
# @return [MockQueue|UndefinedObject] The queue with the specified name, or `nil` if
|
346
|
+
# it doesn't exist.
|
347
|
+
def mock_queue(queue_name)
|
348
|
+
data[queue_name]
|
349
|
+
end
|
350
|
+
|
351
|
+
# Access a MockQueue with the specified name, raising an exception if it doesn't exist.
|
352
|
+
#
|
353
|
+
# @param queue_name [String] Valid queue name.
|
354
|
+
# @raises [Fog::Rackspace::Queue::NotFound] If there is no queue with the specified name.
|
355
|
+
# @return [MockQueue] The queue with the specified name.
|
356
|
+
def mock_queue!(queue_name)
|
357
|
+
mock_queue(queue_name) or raise NotFound.new
|
358
|
+
end
|
359
|
+
|
360
|
+
# Remove any messages or expire any claims that have exceeded their ttl values. Invoked
|
361
|
+
# before every request.
|
362
|
+
def ageoff
|
363
|
+
data.values.each { |q| q.ageoff }
|
364
|
+
end
|
365
|
+
|
366
|
+
def request(params)
|
367
|
+
ageoff
|
368
|
+
super
|
369
|
+
end
|
370
|
+
end
|
371
|
+
|
372
|
+
class Real < Fog::Rackspace::Service
|
373
|
+
include Common
|
374
|
+
|
375
|
+
def initialize(options = {})
|
376
|
+
apply_options(options)
|
377
|
+
|
378
|
+
authenticate
|
379
|
+
|
380
|
+
@persistent = options[:persistent] || false
|
381
|
+
@connection = Fog::Connection.new(endpoint_uri.to_s, @persistent, @connection_options)
|
382
|
+
end
|
383
|
+
|
384
|
+
def request(params, parse_json = true, &block)
|
385
|
+
super(params, parse_json, &block)
|
386
|
+
rescue Excon::Errors::NotFound => error
|
387
|
+
raise NotFound.slurp(error, self)
|
388
|
+
rescue Excon::Errors::BadRequest => error
|
389
|
+
raise BadRequest.slurp(error, self)
|
390
|
+
rescue Excon::Errors::InternalServerError => error
|
391
|
+
raise InternalServerError.slurp(error, self)
|
392
|
+
rescue Excon::Errors::MethodNotAllowed => error
|
393
|
+
raise MethodNotAllowed.slurp(error, self)
|
394
|
+
rescue Excon::Errors::HTTPStatusError => error
|
395
|
+
raise ServiceError.slurp(error, self)
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
115
399
|
end
|
116
400
|
end
|
117
401
|
end
|