fog 1.19.0 → 1.20.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 -327
- 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/associate_address.rb +1 -0
- 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_addresses.rb +1 -1
- 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 +60 -17
- data/lib/fog/google/core.rb +24 -0
- data/lib/fog/google/examples/create.rb +12 -1
- data/lib/fog/google/examples/eric-fail.rb +13 -2
- data/lib/fog/google/examples/image_create.rb +0 -1
- data/lib/fog/google/examples/launch_micro_instance.rb +1 -2
- data/lib/fog/google/examples/metadata.rb +14 -2
- data/lib/fog/google/examples/network.rb +13 -2
- data/lib/fog/google/models/compute/disk.rb +12 -11
- data/lib/fog/google/models/compute/flavor.rb +1 -0
- data/lib/fog/google/models/compute/flavors.rb +1 -1
- data/lib/fog/google/models/compute/image.rb +10 -3
- data/lib/fog/google/models/compute/images.rb +2 -0
- data/lib/fog/google/models/compute/server.rb +27 -4
- data/lib/fog/google/models/compute/servers.rb +26 -10
- data/lib/fog/google/models/compute/zone.rb +1 -0
- 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_disk.rb +38 -20
- data/lib/fog/google/requests/compute/insert_firewall.rb +6 -9
- data/lib/fog/google/requests/compute/insert_image.rb +1 -5
- data/lib/fog/google/requests/compute/insert_server.rb +13 -29
- 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/google/helpers/disk_helper.rb +12 -0
- data/tests/google/models/compute/server_tests.rb +4 -1
- data/tests/google/models/compute/servers_tests.rb +4 -1
- data/tests/google/requests/compute/image_tests.rb +0 -1
- data/tests/google/requests/compute/server_tests.rb +2 -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 +193 -38
- data/lib/fog/brightbox/requests/compute/destroy_user_collaboration.rb +0 -21
@@ -71,8 +71,8 @@ module Fog
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def setup(credentials = {})
|
74
|
-
requires :identity, :
|
75
|
-
Fog::SSH.new(
|
74
|
+
requires :identity, :ssh_ip_address, :public_key, :username
|
75
|
+
Fog::SSH.new(ssh_ip_address, username, credentials).run([
|
76
76
|
%{mkdir .ssh},
|
77
77
|
%{echo "#{public_key}" >> ~/.ssh/authorized_keys},
|
78
78
|
%{passwd -l root},
|
data/lib/fog/google.rb
CHANGED
@@ -1,24 +1,2 @@
|
|
1
|
-
require 'fog/
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Google
|
5
|
-
|
6
|
-
extend Fog::Provider
|
7
|
-
|
8
|
-
service(:compute, 'google/compute', 'Compute')
|
9
|
-
service(:storage, 'google/storage', 'Storage')
|
10
|
-
|
11
|
-
class Mock
|
12
|
-
|
13
|
-
def self.etag
|
14
|
-
hex(32)
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.hex(length)
|
18
|
-
max = ('f' * length).to_i(16)
|
19
|
-
rand(max).to_s(16)
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
1
|
+
require 'fog/google/compute'
|
2
|
+
require 'fog/google/storage'
|
data/lib/fog/google/README.md
CHANGED
@@ -8,21 +8,24 @@ Google Cloud Storage originally was very similar to Amazon's S3. Because of this
|
|
8
8
|
|
9
9
|
## Compute
|
10
10
|
|
11
|
-
Google Compute Engine is a Virtual Machine hosting service. Currently it is built on version [
|
11
|
+
Google Compute Engine is a Virtual Machine hosting service. Currently it is built on version [v1](https://developers.google.com/compute/docs/reference/v1/) of the GCE API.
|
12
12
|
|
13
|
-
Our implementation of the API currently supports
|
13
|
+
Our implementation of the API currently supports
|
14
14
|
|
15
15
|
* Server creation, deletion and bootstrapping
|
16
|
-
* All server "flavors" (micro and normal)
|
17
16
|
* Persistent Disk creation and deletion
|
18
17
|
* Image lookup
|
18
|
+
* Network and Firewall configuration
|
19
|
+
* Operations
|
20
|
+
* Snapshots
|
21
|
+
* Instance Metadata
|
19
22
|
|
20
23
|
Features we are looking forward to implementing in the future:
|
21
24
|
|
22
|
-
* Network and Firewall configuration
|
23
25
|
* Global Metadata support
|
24
26
|
* Image creation
|
27
|
+
* Load balancer configuration
|
25
28
|
|
26
|
-
|
29
|
+
If you are using Fog to interact with GCE, please keep Fog up to date and [file issues](https://github.com/fog/fog/issues?labels=google) for any anomalies you see or features you would like.
|
27
30
|
|
28
31
|
Thanks!
|
data/lib/fog/google/compute.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'fog/google'
|
1
|
+
require 'fog/google/core'
|
2
2
|
require 'fog/compute'
|
3
3
|
|
4
4
|
module Fog
|
@@ -11,6 +11,7 @@ module Fog
|
|
11
11
|
|
12
12
|
request_path 'fog/google/requests/compute'
|
13
13
|
request :list_servers
|
14
|
+
request :list_addresses
|
14
15
|
request :list_disks
|
15
16
|
request :list_firewalls
|
16
17
|
request :list_images
|
@@ -22,6 +23,7 @@ module Fog
|
|
22
23
|
request :list_snapshots
|
23
24
|
|
24
25
|
request :get_server
|
26
|
+
request :get_address
|
25
27
|
request :get_disk
|
26
28
|
request :get_firewall
|
27
29
|
request :get_image
|
@@ -32,7 +34,9 @@ module Fog
|
|
32
34
|
request :get_global_operation
|
33
35
|
request :get_zone_operation
|
34
36
|
|
37
|
+
request :delete_address
|
35
38
|
request :delete_disk
|
39
|
+
request :delete_snapshot
|
36
40
|
request :delete_firewall
|
37
41
|
request :delete_image
|
38
42
|
request :delete_network
|
@@ -40,6 +44,7 @@ module Fog
|
|
40
44
|
request :delete_global_operation
|
41
45
|
request :delete_zone_operation
|
42
46
|
|
47
|
+
request :insert_address
|
43
48
|
request :insert_disk
|
44
49
|
request :insert_firewall
|
45
50
|
request :insert_image
|
@@ -48,6 +53,7 @@ module Fog
|
|
48
53
|
request :insert_snapshot
|
49
54
|
|
50
55
|
request :set_metadata
|
56
|
+
request :set_tags
|
51
57
|
|
52
58
|
model_path 'fog/google/models/compute'
|
53
59
|
model :server
|
@@ -76,7 +82,7 @@ module Fog
|
|
76
82
|
|
77
83
|
def shared_initialize(options = {})
|
78
84
|
@project = options[:google_project]
|
79
|
-
@api_version = '
|
85
|
+
@api_version = 'v1'
|
80
86
|
end
|
81
87
|
|
82
88
|
def build_excon_response(body, status=200)
|
@@ -84,7 +90,11 @@ module Fog
|
|
84
90
|
response.body = body
|
85
91
|
if response.body and response.body["error"]
|
86
92
|
response.status = response.body["error"]["code"]
|
87
|
-
|
93
|
+
if response.body["error"]["errors"]
|
94
|
+
msg = response.body["error"]["errors"].map{|error| error["message"]}.join(", ")
|
95
|
+
else
|
96
|
+
msg = "Error [#{response.body["error"]["code"]}]: #{response.body["error"]["message"] || "GCE didn't return an error message"}"
|
97
|
+
end
|
88
98
|
case response.status
|
89
99
|
when 404
|
90
100
|
raise Fog::Errors::NotFound.new(msg)
|
@@ -114,7 +124,6 @@ module Fog
|
|
114
124
|
end
|
115
125
|
result
|
116
126
|
end
|
117
|
-
|
118
127
|
end
|
119
128
|
|
120
129
|
class Mock
|
@@ -144,7 +153,6 @@ module Fog
|
|
144
153
|
"name" => "centos-6-2-v20120621",
|
145
154
|
"description" => "CentOS 6.2; Created Thu, 21 Jun 2012 14:22:21 +0000",
|
146
155
|
"sourceType" => "RAW",
|
147
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-20120621",
|
148
156
|
"rawDisk" => {
|
149
157
|
"containerType" => "TAR",
|
150
158
|
"source" => ""
|
@@ -163,7 +171,6 @@ module Fog
|
|
163
171
|
"name" => "centos-6-v20120912",
|
164
172
|
"description" => "CentOS 6; Created Wed, 12 Sep 2012 00:00:00 +0000",
|
165
173
|
"sourceType" => "RAW",
|
166
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20120912",
|
167
174
|
"rawDisk" => {
|
168
175
|
"containerType" => "TAR",
|
169
176
|
"source" => ""
|
@@ -182,7 +189,6 @@ module Fog
|
|
182
189
|
"name" => "centos-6-v20121106",
|
183
190
|
"description" => "SCSI-enabled CentOS 6; Created Tue, 06 Nov 2012 00:00:00 +0000",
|
184
191
|
"sourceType" => "RAW",
|
185
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20121106",
|
186
192
|
"rawDisk" => {
|
187
193
|
"containerType" => "TAR",
|
188
194
|
"source" => ""
|
@@ -202,7 +208,6 @@ module Fog
|
|
202
208
|
"name" => "debian-6-squeeze-v20130816",
|
203
209
|
"description" => "Debian GNU/Linux 6.0.7 (squeeze) built on 2013-08-16",
|
204
210
|
"sourceType" => "RAW",
|
205
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20130813",
|
206
211
|
"rawDisk" => {
|
207
212
|
"containerType" => "TAR",
|
208
213
|
"source" => ""
|
@@ -217,7 +222,6 @@ module Fog
|
|
217
222
|
"name" => "debian-7-wheezy-v20130816",
|
218
223
|
"description" => "Debian GNU/Linux 7.1 (wheezy) built on 2013-08-16",
|
219
224
|
"sourceType" => "RAW",
|
220
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20130813",
|
221
225
|
"rawDisk" => {
|
222
226
|
"containerType" => "TAR",
|
223
227
|
"source" => ""
|
@@ -232,12 +236,26 @@ module Fog
|
|
232
236
|
"name" => "debian-7-wheezy-v20131014",
|
233
237
|
"description" => "Debian GNU/Linux 7.1 (wheezy) built on 2013-10-14",
|
234
238
|
"sourceType" => "RAW",
|
235
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20130813",
|
236
239
|
"rawDisk" => {
|
237
240
|
"containerType" => "TAR",
|
238
241
|
"source" => ""
|
239
242
|
},
|
240
243
|
"status" => "READY"
|
244
|
+
},
|
245
|
+
"debian-7-wheezy-v20131120" => {
|
246
|
+
"kind" => "compute#image",
|
247
|
+
"selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/debian-cloud/global/images/debian-7-wheezy-v20131120",
|
248
|
+
"id" => "17312518942796567788",
|
249
|
+
"creationTimestamp" => "2013-11-25T15:17:00.436-08:00",
|
250
|
+
"name" => "debian-7-wheezy-v20131120",
|
251
|
+
"description" => "Debian GNU/Linux 7.2 (wheezy) built on 2013-11-20",
|
252
|
+
"sourceType" => "RAW",
|
253
|
+
"rawDisk" => {
|
254
|
+
"containerType" => "TAR",
|
255
|
+
"source" => ""
|
256
|
+
},
|
257
|
+
"status" => "READY",
|
258
|
+
"archiveSizeBytes" => "341857472"
|
241
259
|
}
|
242
260
|
}
|
243
261
|
}
|
@@ -252,7 +270,6 @@ module Fog
|
|
252
270
|
"name" => "centos-6-v20130813",
|
253
271
|
"description" => "SCSI-enabled CentOS 6; Created Tue, 13 Aug 2013 00:00:00 +0000",
|
254
272
|
"sourceType" => "RAW",
|
255
|
-
"preferredKernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20130813",
|
256
273
|
"rawDisk" => {
|
257
274
|
"containerType" => "TAR",
|
258
275
|
"source" => ""
|
@@ -273,8 +290,6 @@ module Fog
|
|
273
290
|
"name" => "fog-1380196541",
|
274
291
|
"tags" => { "fingerprint" => "42WmSpB8rSM=" },
|
275
292
|
"machineType" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/machineTypes/n1-standard-1",
|
276
|
-
"image" => "https://www.googleapis.com/compute/#{api_version}/projects/centos-cloud/global/images/centos-6-v20130813",
|
277
|
-
"kernel" => "https://www.googleapis.com/compute/#{api_version}/projects/google/global/kernels/gce-v20130813",
|
278
293
|
"canIpForward" => false,
|
279
294
|
"networkInterfaces" => [
|
280
295
|
{
|
@@ -295,8 +310,11 @@ module Fog
|
|
295
310
|
{
|
296
311
|
"kind" => "compute#attachedDisk",
|
297
312
|
"index" => 0,
|
298
|
-
"type" => "
|
299
|
-
"mode" => "READ_WRITE"
|
313
|
+
"type" => "PERSISTENT",
|
314
|
+
"mode" => "READ_WRITE",
|
315
|
+
"source" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
|
316
|
+
"deviceName" => "persistent-disk-0",
|
317
|
+
"boot" => true
|
300
318
|
}
|
301
319
|
],
|
302
320
|
"metadata" => {
|
@@ -771,7 +789,30 @@ module Fog
|
|
771
789
|
}
|
772
790
|
end,
|
773
791
|
:images => {},
|
774
|
-
:disks => {
|
792
|
+
:disks => {
|
793
|
+
"fog-1" => {
|
794
|
+
"kind" => "compute#disk",
|
795
|
+
"id" => "3338131294770784461",
|
796
|
+
"creationTimestamp" => "2013-12-18T19:47:10.583-08:00",
|
797
|
+
"zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a",
|
798
|
+
"status" => "READY",
|
799
|
+
"name" => "fog-1",
|
800
|
+
"sizeGb" => "10",
|
801
|
+
"selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1",
|
802
|
+
"sourceImage" => "https://www.googleapis.com/compute/#{api_version}/projects/debian-cloud/global/images/debian-7-wheezy-v20131120",
|
803
|
+
"sourceImageId" => "17312518942796567788"
|
804
|
+
},
|
805
|
+
"fog-2" => {
|
806
|
+
"kind" => "compute#disk",
|
807
|
+
"id" => "3338131294770784462",
|
808
|
+
"creationTimestamp" => "2013-12-18T19:47:10.583-08:00",
|
809
|
+
"zone" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a",
|
810
|
+
"status" => "READY",
|
811
|
+
"name" => "fog-2",
|
812
|
+
"sizeGb" => "10",
|
813
|
+
"selfLink" => "https://www.googleapis.com/compute/#{api_version}/projects/#{key}/zones/us-central1-a/disks/fog-1"
|
814
|
+
}
|
815
|
+
},
|
775
816
|
:operations => {}
|
776
817
|
}
|
777
818
|
end
|
@@ -782,7 +823,7 @@ module Fog
|
|
782
823
|
@data = nil
|
783
824
|
end
|
784
825
|
|
785
|
-
def data(project
|
826
|
+
def data(project=@project)
|
786
827
|
self.class.data(api_version)[project]
|
787
828
|
end
|
788
829
|
|
@@ -800,6 +841,8 @@ module Fog
|
|
800
841
|
include Collections
|
801
842
|
include Shared
|
802
843
|
|
844
|
+
attr_reader :client, :compute, :api_url
|
845
|
+
|
803
846
|
def initialize(options)
|
804
847
|
base_url = 'https://www.googleapis.com/compute/'
|
805
848
|
api_scope_url = 'https://www.googleapis.com/auth/compute'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'fog/core'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Google
|
5
|
+
|
6
|
+
extend Fog::Provider
|
7
|
+
|
8
|
+
service(:compute, 'Compute')
|
9
|
+
service(:storage, 'Storage')
|
10
|
+
|
11
|
+
class Mock
|
12
|
+
|
13
|
+
def self.etag
|
14
|
+
hex(32)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.hex(length)
|
18
|
+
max = ('f' * length).to_i(16)
|
19
|
+
rand(max).to_s(16)
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -1,9 +1,20 @@
|
|
1
1
|
def test
|
2
2
|
connection = Fog::Compute.new({ :provider => "Google" })
|
3
3
|
|
4
|
+
name = "fog-smoke-test-#{Time.now.to_i}"
|
5
|
+
|
6
|
+
disk = connection.disks.create({
|
7
|
+
:name => name,
|
8
|
+
:size_gb => 10,
|
9
|
+
:zone_name => 'us-central1-a',
|
10
|
+
:source_image => 'debian-7-wheezy-v20131120',
|
11
|
+
})
|
12
|
+
|
13
|
+
disk.wait_for { disk.ready? }
|
14
|
+
|
4
15
|
server = connection.servers.create(defaults = {
|
5
16
|
:name => "fog-smoke-test-#{Time.now.to_i}",
|
6
|
-
:
|
17
|
+
:disks => [disk],
|
7
18
|
:machine_type => "n1-standard-1",
|
8
19
|
:zone_name => "us-central1-a",
|
9
20
|
:private_key_path => File.expand_path("~/.ssh/id_rsa"),
|
@@ -1,9 +1,20 @@
|
|
1
1
|
def test
|
2
2
|
connection = Fog::Compute.new({ :provider => "Google" })
|
3
3
|
|
4
|
+
name = "fog-smoke-test-#{Time.now.to_i}"
|
5
|
+
|
6
|
+
disk = connection.disks.create({
|
7
|
+
:name => name,
|
8
|
+
:size_gb => 10,
|
9
|
+
:zone_name => 'us-central1-a',
|
10
|
+
:source_image => 'debian-7-wheezy-v20131120',
|
11
|
+
})
|
12
|
+
|
13
|
+
disk.wait_for { disk.ready? }
|
14
|
+
|
4
15
|
server = connection.servers.create(defaults = {
|
5
|
-
:name =>
|
6
|
-
:
|
16
|
+
:name => name,
|
17
|
+
:disks => [disk],
|
7
18
|
:machine_type => "n1-standard-1",
|
8
19
|
:zone_name => "us-central1-a",
|
9
20
|
:private_key_path => File.expand_path("~/.ssh/id_rsa"),
|
@@ -1,8 +1,20 @@
|
|
1
1
|
def test
|
2
2
|
connection = Fog::Compute.new({ :provider => "Google" })
|
3
|
+
|
4
|
+
name = "fog-smoke-test-#{Time.now.to_i}"
|
5
|
+
|
6
|
+
disk = connection.disks.create({
|
7
|
+
:name => name,
|
8
|
+
:size_gb => 10,
|
9
|
+
:zone_name => 'us-central1-a',
|
10
|
+
:source_image => 'debian-7-wheezy-v20131120',
|
11
|
+
})
|
12
|
+
|
13
|
+
disk.wait_for { disk.ready? }
|
14
|
+
|
3
15
|
server = connection.servers.create(defaults = {
|
4
|
-
:name =>
|
5
|
-
:
|
16
|
+
:name => name,
|
17
|
+
:disks => [disk],
|
6
18
|
:machine_type => "n1-standard-1",
|
7
19
|
:zone_name => "us-central1-a",
|
8
20
|
:private_key_path => File.expand_path("~/.ssh/id_rsa"),
|
@@ -4,9 +4,20 @@ def test
|
|
4
4
|
# we create a new private network
|
5
5
|
connection.insert_network('my-private-network', '10.240.0.0/16')
|
6
6
|
|
7
|
+
name = "fog-smoke-test-#{Time.now.to_i}"
|
8
|
+
|
9
|
+
disk = connection.disks.create({
|
10
|
+
:name => name,
|
11
|
+
:size_gb => 10,
|
12
|
+
:zone_name => 'us-central1-a',
|
13
|
+
:source_image => 'debian-7-wheezy-v20131120',
|
14
|
+
})
|
15
|
+
|
16
|
+
disk.wait_for { disk.ready? }
|
17
|
+
|
7
18
|
server = connection.servers.create({
|
8
|
-
:name =>
|
9
|
-
:
|
19
|
+
:name => name,
|
20
|
+
:disks => [disk],
|
10
21
|
:machine_type => "n1-standard-1",
|
11
22
|
:zone_name => "us-central1-a",
|
12
23
|
:private_key_path => File.expand_path("~/.ssh/id_rsa"),
|
@@ -25,7 +25,7 @@ module Fog
|
|
25
25
|
requires :zone_name
|
26
26
|
|
27
27
|
options = {}
|
28
|
-
if source_image.nil?
|
28
|
+
if source_image.nil? && !source_snapshot.nil?
|
29
29
|
options['sourceSnapshot'] = source_snapshot
|
30
30
|
end
|
31
31
|
|
@@ -57,21 +57,22 @@ module Fog
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
-
def
|
60
|
+
def get_object(writable=true, boot=false, device_name=nil)
|
61
61
|
mode = writable ? 'READ_WRITE' : 'READ_ONLY'
|
62
62
|
return {
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
}
|
63
|
+
'boot' => boot,
|
64
|
+
'source' => self_link,
|
65
|
+
'mode' => mode,
|
66
|
+
'deviceName' => device_name,
|
67
|
+
'type' => 'PERSISTENT'
|
68
|
+
}.select { |k, v| !v.nil? }
|
69
|
+
end
|
70
|
+
|
71
|
+
def get_as_boot_disk(writable=true)
|
72
|
+
get_object(writable, true)
|
69
73
|
end
|
70
74
|
|
71
75
|
def ready?
|
72
|
-
data = service.get_disk(self.name, self.zone_name).body
|
73
|
-
data['zone_name'] = self.zone_name
|
74
|
-
self.merge_attributes(data)
|
75
76
|
self.status == RUNNING_STATE
|
76
77
|
end
|
77
78
|
|