fog 0.1.8 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -2
- data/Gemfile.lock +5 -5
- data/README.rdoc +29 -29
- data/fog.gemspec +24 -2
- data/lib/fog.rb +4 -15
- data/lib/fog/aws.rb +2 -2
- data/lib/fog/aws/ec2.rb +64 -101
- data/lib/fog/aws/elb.rb +19 -27
- data/lib/fog/aws/models/ec2/addresses.rb +1 -9
- data/lib/fog/aws/models/ec2/flavors.rb +1 -7
- data/lib/fog/aws/models/ec2/images.rb +1 -7
- data/lib/fog/aws/models/ec2/key_pairs.rb +1 -7
- data/lib/fog/aws/models/ec2/security_groups.rb +1 -7
- data/lib/fog/aws/models/ec2/servers.rb +1 -7
- data/lib/fog/aws/models/ec2/snapshots.rb +1 -9
- data/lib/fog/aws/models/ec2/volumes.rb +1 -9
- data/lib/fog/aws/models/s3/directories.rb +1 -7
- data/lib/fog/aws/models/s3/file.rb +5 -0
- data/lib/fog/aws/requests/ec2/allocate_address.rb +2 -0
- data/lib/fog/aws/requests/ec2/attach_volume.rb +2 -0
- data/lib/fog/aws/requests/ec2/create_key_pair.rb +2 -0
- data/lib/fog/aws/requests/ec2/create_snapshot.rb +2 -0
- data/lib/fog/aws/requests/ec2/create_volume.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_addresses.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_images.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_instances.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_regions.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_reserved_instances.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_security_groups.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_snapshots.rb +2 -0
- data/lib/fog/aws/requests/ec2/describe_volumes.rb +2 -0
- data/lib/fog/aws/requests/ec2/detach_volume.rb +2 -0
- data/lib/fog/aws/requests/ec2/get_console_output.rb +2 -0
- data/lib/fog/aws/requests/ec2/run_instances.rb +2 -0
- data/lib/fog/aws/requests/ec2/terminate_instances.rb +2 -0
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/elb/delete_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -0
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +2 -0
- data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +2 -0
- data/lib/fog/aws/requests/s3/copy_object.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket_acl.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket_location.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket_logging.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket_object_versions.rb +2 -0
- data/lib/fog/aws/requests/s3/get_bucket_versioning.rb +2 -0
- data/lib/fog/aws/requests/s3/get_object_acl.rb +2 -0
- data/lib/fog/aws/requests/s3/get_request_payment.rb +2 -0
- data/lib/fog/aws/requests/s3/get_service.rb +2 -0
- data/lib/fog/aws/requests/s3/put_object.rb +2 -2
- data/lib/fog/aws/requests/simpledb/domain_metadata.rb +2 -0
- data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -0
- data/lib/fog/aws/requests/simpledb/list_domains.rb +2 -0
- data/lib/fog/aws/requests/simpledb/select.rb +2 -0
- data/lib/fog/aws/s3.rb +68 -85
- data/lib/fog/aws/simpledb.rb +15 -29
- data/lib/fog/bluebox.rb +23 -40
- data/lib/fog/bluebox/models/flavors.rb +1 -7
- data/lib/fog/bluebox/models/images.rb +1 -9
- data/lib/fog/bluebox/models/servers.rb +1 -7
- data/lib/fog/credentials.rb +2 -0
- data/lib/fog/errors.rb +20 -0
- data/lib/fog/hmac.rb +48 -0
- data/lib/fog/local.rb +9 -22
- data/lib/fog/local/models/directories.rb +1 -7
- data/lib/fog/rackspace.rb +2 -6
- data/lib/fog/rackspace/files.rb +46 -48
- data/lib/fog/rackspace/models/files/directories.rb +1 -7
- data/lib/fog/rackspace/models/servers/flavors.rb +1 -7
- data/lib/fog/rackspace/models/servers/images.rb +1 -9
- data/lib/fog/rackspace/models/servers/server.rb +37 -1
- data/lib/fog/rackspace/models/servers/servers.rb +8 -7
- data/lib/fog/rackspace/requests/files/put_object.rb +1 -1
- data/lib/fog/rackspace/servers.rb +33 -45
- data/lib/fog/service.rb +82 -0
- data/lib/fog/slicehost.rb +28 -42
- data/lib/fog/slicehost/models/flavors.rb +1 -7
- data/lib/fog/slicehost/models/images.rb +1 -9
- data/lib/fog/slicehost/models/servers.rb +1 -7
- data/lib/fog/ssh.rb +1 -1
- data/lib/fog/vcloud.rb +20 -3
- data/lib/fog/vcloud/collection.rb +25 -5
- data/lib/fog/vcloud/model.rb +4 -0
- data/lib/fog/vcloud/parsers/get_organization.rb +2 -2
- data/lib/fog/vcloud/parsers/get_vdc.rb +2 -2
- data/lib/fog/vcloud/parsers/get_versions.rb +1 -1
- data/lib/fog/vcloud/parsers/login.rb +2 -2
- data/lib/fog/vcloud/parsers/network.rb +53 -0
- data/lib/fog/vcloud/requests/get_network.rb +54 -0
- data/lib/fog/vcloud/requests/get_organization.rb +1 -2
- data/lib/fog/vcloud/terremark/ecloud.rb +17 -4
- data/lib/fog/vcloud/terremark/ecloud/models/internet_service.rb +35 -0
- data/lib/fog/vcloud/terremark/ecloud/models/internet_services.rb +9 -9
- data/lib/fog/vcloud/terremark/ecloud/models/ip.rb +18 -0
- data/lib/fog/vcloud/terremark/ecloud/models/ips.rb +36 -0
- data/lib/fog/vcloud/terremark/ecloud/models/network.rb +32 -0
- data/lib/fog/vcloud/terremark/ecloud/models/networks.rb +38 -0
- data/lib/fog/vcloud/terremark/ecloud/models/public_ip.rb +3 -1
- data/lib/fog/vcloud/terremark/ecloud/models/public_ips.rb +1 -1
- data/lib/fog/vcloud/terremark/ecloud/models/vdc.rb +9 -0
- data/lib/fog/vcloud/terremark/ecloud/models/vdcs.rb +2 -0
- data/lib/fog/vcloud/terremark/ecloud/parsers/network.rb +28 -0
- data/lib/fog/vcloud/terremark/ecloud/parsers/network_ips.rb +31 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb +10 -7
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb +99 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network.rb +54 -0
- data/lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb +51 -0
- data/spec/aws/models/s3/file_spec.rb +15 -0
- data/spec/vcloud/requests/get_network_spec.rb +55 -0
- data/spec/vcloud/spec_helper.rb +1 -0
- data/spec/vcloud/terremark/ecloud/models/internet_service_spec.rb +15 -0
- data/spec/vcloud/terremark/ecloud/models/ip_spec.rb +35 -0
- data/spec/vcloud/terremark/ecloud/models/ips_spec.rb +28 -0
- data/spec/vcloud/terremark/ecloud/models/network_spec.rb +65 -0
- data/spec/vcloud/terremark/ecloud/models/networks_spec.rb +26 -0
- data/spec/vcloud/terremark/ecloud/models/public_ip_spec.rb +0 -2
- data/spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb +44 -0
- data/spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb +54 -0
- data/spec/vcloud/terremark/ecloud/requests/get_network_spec.rb +63 -0
- data/tests/aws/requests/ec2/volume_tests.rb +2 -2
- data/tests/helper.rb +2 -0
- metadata +25 -3
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -8,7 +8,7 @@ dependencies: | |
| 8 8 | 
             
                group: 
         | 
| 9 9 | 
             
                - :default
         | 
| 10 10 | 
             
                version: ">= 0"
         | 
| 11 | 
            -
               | 
| 11 | 
            +
              ruby-hmac: 
         | 
| 12 12 | 
             
                group: 
         | 
| 13 13 | 
             
                - :default
         | 
| 14 14 | 
             
                version: ">= 0"
         | 
| @@ -16,7 +16,7 @@ dependencies: | |
| 16 16 | 
             
                group: 
         | 
| 17 17 | 
             
                - :default
         | 
| 18 18 | 
             
                version: ">= 0"
         | 
| 19 | 
            -
               | 
| 19 | 
            +
              rspec: 
         | 
| 20 20 | 
             
                group: 
         | 
| 21 21 | 
             
                - :default
         | 
| 22 22 | 
             
                version: ">= 0"
         | 
| @@ -39,7 +39,7 @@ dependencies: | |
| 39 39 | 
             
              shindo: 
         | 
| 40 40 | 
             
                group: 
         | 
| 41 41 | 
             
                - :default
         | 
| 42 | 
            -
                version: ">= 0.1. | 
| 42 | 
            +
                version: ">= 0.1.5"
         | 
| 43 43 | 
             
              nokogiri: 
         | 
| 44 44 | 
             
                group: 
         | 
| 45 45 | 
             
                - :default
         | 
| @@ -68,8 +68,8 @@ specs: | |
| 68 68 | 
             
            - ruby-hmac: 
         | 
| 69 69 | 
             
                version: 0.4.0
         | 
| 70 70 | 
             
            - shindo: 
         | 
| 71 | 
            -
                version: 0.1. | 
| 72 | 
            -
            hash:  | 
| 71 | 
            +
                version: 0.1.5
         | 
| 72 | 
            +
            hash: 12012795f07111bf764cef89d9ba91f521c54956
         | 
| 73 73 | 
             
            sources: 
         | 
| 74 74 | 
             
            - Rubygems: 
         | 
| 75 75 | 
             
                uri: http://gemcutter.org
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            http://geemus.com/fog.png
         | 
| 2 2 |  | 
| 3 | 
            -
            fog  | 
| 3 | 
            +
            fog is the Ruby cloud computing library.
         | 
| 4 4 |  | 
| 5 5 | 
             
            The quick and dirty, top to bottom:
         | 
| 6 6 | 
             
            * Models provide a simplified interface, making clouds easier to work with and switch between.
         | 
| @@ -25,21 +25,21 @@ Now just type 'fog' to trying stuff out, confident that fog should let you know | |
| 25 25 | 
             
            == Collections
         | 
| 26 26 |  | 
| 27 27 | 
             
            Nouns like Images and Servers are collections, which form the interface to the cloud.
         | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
            * get fetches a single object by its identity.
         | 
| 32 | 
            -
            * new initializes a new record locally.
         | 
| 28 | 
            +
            Some of these collections are shared across multiple providers.
         | 
| 29 | 
            +
            The shared collections for compute resources are flavors, images and servers.
         | 
| 30 | 
            +
            Shared collections for storage are directory and file.
         | 
| 33 31 |  | 
| 34 | 
            -
             | 
| 32 | 
            +
            Some common methods for all of these collections are:
         | 
| 33 | 
            +
            * #all - fetch every object of that type from the provider.
         | 
| 34 | 
            +
            * #create  initialize a new record locally and then persists it with the provider.
         | 
| 35 | 
            +
            * #get - fetch a single object by its identity from the provider.
         | 
| 36 | 
            +
            * #new - initialize a new record locally, but do not persist it to the provider.
         | 
| 35 37 |  | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
            As an example, we'll try initializing and persisting a rackspace server:
         | 
| 38 | 
            +
            As an example, we'll try initializing and persisting a Rackspace Cloud server:
         | 
| 39 39 |  | 
| 40 40 | 
             
              require 'fog'
         | 
| 41 41 |  | 
| 42 | 
            -
              # initialize a connection to Rackspace Servers
         | 
| 42 | 
            +
              # initialize a connection to Rackspace Cloud Servers
         | 
| 43 43 | 
             
              connection = Fog::Rackspace::Servers.new(
         | 
| 44 44 | 
             
                :rackspace_api_key => key,
         | 
| 45 45 | 
             
                :rackspace_username => username
         | 
| @@ -59,47 +59,47 @@ As an example, we'll try initializing and persisting a rackspace server: | |
| 59 59 | 
             
            == Models
         | 
| 60 60 |  | 
| 61 61 | 
             
            Many of the collection methods return individual objects, which provide destroy, save and wait_for methods.
         | 
| 62 | 
            -
            * destroy will destroy the persisted object from the  | 
| 63 | 
            -
            * save  | 
| 64 | 
            -
            * wait_for takes a block and waits for either the block to return true for the object or for a timeout (defaults to 10 minutes)
         | 
| 62 | 
            +
            * #destroy - will destroy the persisted object from the provider
         | 
| 63 | 
            +
            * #save - persist the object to the provider
         | 
| 64 | 
            +
            * #wait_for - takes a block and waits for either the block to return true for the object or for a timeout (defaults to 10 minutes)
         | 
| 65 65 |  | 
| 66 66 | 
             
            == Mocks
         | 
| 67 67 |  | 
| 68 | 
            -
            Mocking provides an in memory representation of  | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 68 | 
            +
            Mocking provides an in memory representation of the state of cloud resources as you make requests.
         | 
| 69 | 
            +
            Mocked calls to mimic the behavior of each provider while eliminating the cost and time needed to actually use cloud resources.
         | 
| 70 | 
            +
            Enabling mocking easy to use, before you run any other commands run:
         | 
| 71 71 |  | 
| 72 72 | 
             
              Fog.mock!
         | 
| 73 73 |  | 
| 74 | 
            -
             | 
| 75 | 
            -
             | 
| 74 | 
            +
            Then you can run other commands just like you always would.
         | 
| 75 | 
            +
            Some mocks are not implemented just yet, but fog will raise an error to let you know and contributions are always welcome!
         | 
| 76 76 |  | 
| 77 77 | 
             
            == Requests
         | 
| 78 78 |  | 
| 79 79 | 
             
            Requests allow you to dive deeper when the models just can't cut it.
         | 
| 80 | 
            -
            For instance, ec2 provides methods related to reserved instances that don't have any models (yet | 
| 81 | 
            -
             | 
| 80 | 
            +
            For instance, ec2 provides methods related to reserved instances that don't have any models (yet).
         | 
| 81 | 
            +
            Here is how you can lookup your reserved instances:
         | 
| 82 82 |  | 
| 83 83 | 
             
              $ fog
         | 
| 84 84 | 
             
              >> AWS[:ec2].describe_reserved_instances
         | 
| 85 85 | 
             
              #<Excon::Response [...]>
         | 
| 86 86 |  | 
| 87 | 
            -
            It will return an excon response, which has headers and body | 
| 87 | 
            +
            It will return an {excon}[http://github.com/geemus/excon] response, which has #headers and #body. Both return nice hashes.
         | 
| 88 88 |  | 
| 89 89 | 
             
            == Go forth and conquer
         | 
| 90 90 |  | 
| 91 | 
            -
             | 
| 92 | 
            -
            For a more in depth walk through, check out the {getting started guide}[http://wiki.github.com/geemus/fog/getting-started-with-fog].
         | 
| 91 | 
            +
            Play around and use the console to explore or check out the {getting started guide}[http://wiki.github.com/geemus/fog/getting-started-with-fog] for more details.
         | 
| 93 92 |  | 
| 94 93 | 
             
            You should try out the (varying) support fog has for:
         | 
| 95 | 
            -
            * AWS [EC2, S3, SimpleDB]
         | 
| 96 | 
            -
            * Rackspace [Files, Servers]
         | 
| 97 | 
            -
            * Slicehost
         | 
| 98 | 
            -
            * Terremark vCloud Express
         | 
| 99 | 
            -
            * Blue Box Group [Blocks]
         | 
| 94 | 
            +
            * {AWS}[http://aws.amazon.com] [{EC2}[http://aws.amazon.com/ec2], {ELB}[http://aws.amazon.com/elasticloadbalancing], {S3}[http://aws.amazon.com/s3], {SimpleDB}[http://aws.amazon.com/simpledb]]
         | 
| 95 | 
            +
            * {Rackspace}[http://www.rackspace.com] [{Files}[http://www.rackspacecloud.com/cloud_hosting_products/files], {Servers}[http://www.rackspacecloud.com/cloud_hosting_products/servers]]
         | 
| 96 | 
            +
            * {Slicehost}[http://www.slicehost.com]
         | 
| 97 | 
            +
            * {Terremark}[http://www.terremark.com] [{vCloud Express}[http://vcloudexpress.terremark.com]]
         | 
| 98 | 
            +
            * {Blue Box Group}[http://www.blueboxgrp.com] [{Blocks}[http://www.blueboxgrp.com/blocks]]
         | 
| 100 99 |  | 
| 101 100 | 
             
            Enjoy, and let me know what I can do to continue improving fog!
         | 
| 102 101 |  | 
| 102 | 
            +
            * Work for {twitter}[http://twitter.com]? I'd love to reclaim the unused {@fog}[http://twitter.com/fog] account!
         | 
| 103 103 | 
             
            * Follow {@geemus}[http://twitter.com/geemus] on Twitter.
         | 
| 104 104 | 
             
            * See upcoming work in the {tracker}[http://www.pivotaltracker.com/projects/54635].
         | 
| 105 105 | 
             
            * Report bugs in {issues}[http://github.com/geemus/fog/issues].
         | 
    
        data/fog.gemspec
    CHANGED
    
    | @@ -7,8 +7,8 @@ Gem::Specification.new do |s| | |
| 7 7 | 
             
              ## If your rubyforge_project name is different, then edit it and comment out
         | 
| 8 8 | 
             
              ## the sub! line in the Rakefile
         | 
| 9 9 | 
             
              s.name              = 'fog'
         | 
| 10 | 
            -
              s.version           = '0.1. | 
| 11 | 
            -
              s.date              = '2010-06- | 
| 10 | 
            +
              s.version           = '0.1.9'
         | 
| 11 | 
            +
              s.date              = '2010-06-15'
         | 
| 12 12 | 
             
              s.rubyforge_project = 'fog'
         | 
| 13 13 |  | 
| 14 14 | 
             
              ## Make sure your summary is short. The description may be as long
         | 
| @@ -233,6 +233,8 @@ Gem::Specification.new do |s| | |
| 233 233 | 
             
                lib/fog/connection.rb
         | 
| 234 234 | 
             
                lib/fog/credentials.rb
         | 
| 235 235 | 
             
                lib/fog/deprecation.rb
         | 
| 236 | 
            +
                lib/fog/errors.rb
         | 
| 237 | 
            +
                lib/fog/hmac.rb
         | 
| 236 238 | 
             
                lib/fog/local.rb
         | 
| 237 239 | 
             
                lib/fog/local/bin.rb
         | 
| 238 240 | 
             
                lib/fog/local/models/directories.rb
         | 
| @@ -283,6 +285,7 @@ Gem::Specification.new do |s| | |
| 283 285 | 
             
                lib/fog/rackspace/requests/servers/reboot_server.rb
         | 
| 284 286 | 
             
                lib/fog/rackspace/requests/servers/update_server.rb
         | 
| 285 287 | 
             
                lib/fog/rackspace/servers.rb
         | 
| 288 | 
            +
                lib/fog/service.rb
         | 
| 286 289 | 
             
                lib/fog/slicehost.rb
         | 
| 287 290 | 
             
                lib/fog/slicehost/bin.rb
         | 
| 288 291 | 
             
                lib/fog/slicehost/models/flavor.rb
         | 
| @@ -383,6 +386,8 @@ Gem::Specification.new do |s| | |
| 383 386 | 
             
                lib/fog/vcloud/parsers/get_vdc.rb
         | 
| 384 387 | 
             
                lib/fog/vcloud/parsers/get_versions.rb
         | 
| 385 388 | 
             
                lib/fog/vcloud/parsers/login.rb
         | 
| 389 | 
            +
                lib/fog/vcloud/parsers/network.rb
         | 
| 390 | 
            +
                lib/fog/vcloud/requests/get_network.rb
         | 
| 386 391 | 
             
                lib/fog/vcloud/requests/get_organization.rb
         | 
| 387 392 | 
             
                lib/fog/vcloud/requests/get_vdc.rb
         | 
| 388 393 | 
             
                lib/fog/vcloud/requests/get_versions.rb
         | 
| @@ -391,6 +396,10 @@ Gem::Specification.new do |s| | |
| 391 396 | 
             
                lib/fog/vcloud/terremark/ecloud.rb
         | 
| 392 397 | 
             
                lib/fog/vcloud/terremark/ecloud/models/internet_service.rb
         | 
| 393 398 | 
             
                lib/fog/vcloud/terremark/ecloud/models/internet_services.rb
         | 
| 399 | 
            +
                lib/fog/vcloud/terremark/ecloud/models/ip.rb
         | 
| 400 | 
            +
                lib/fog/vcloud/terremark/ecloud/models/ips.rb
         | 
| 401 | 
            +
                lib/fog/vcloud/terremark/ecloud/models/network.rb
         | 
| 402 | 
            +
                lib/fog/vcloud/terremark/ecloud/models/networks.rb
         | 
| 394 403 | 
             
                lib/fog/vcloud/terremark/ecloud/models/public_ip.rb
         | 
| 395 404 | 
             
                lib/fog/vcloud/terremark/ecloud/models/public_ips.rb
         | 
| 396 405 | 
             
                lib/fog/vcloud/terremark/ecloud/models/vdc.rb
         | 
| @@ -400,9 +409,14 @@ Gem::Specification.new do |s| | |
| 400 409 | 
             
                lib/fog/vcloud/terremark/ecloud/parsers/get_public_ips.rb
         | 
| 401 410 | 
             
                lib/fog/vcloud/terremark/ecloud/parsers/get_vdc.rb
         | 
| 402 411 | 
             
                lib/fog/vcloud/terremark/ecloud/parsers/internet_service.rb
         | 
| 412 | 
            +
                lib/fog/vcloud/terremark/ecloud/parsers/network.rb
         | 
| 413 | 
            +
                lib/fog/vcloud/terremark/ecloud/parsers/network_ips.rb
         | 
| 403 414 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb
         | 
| 415 | 
            +
                lib/fog/vcloud/terremark/ecloud/requests/configure_internet_service.rb
         | 
| 404 416 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb
         | 
| 405 417 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb
         | 
| 418 | 
            +
                lib/fog/vcloud/terremark/ecloud/requests/get_network.rb
         | 
| 419 | 
            +
                lib/fog/vcloud/terremark/ecloud/requests/get_network_ips.rb
         | 
| 406 420 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
         | 
| 407 421 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb
         | 
| 408 422 | 
             
                lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb
         | 
| @@ -477,6 +491,7 @@ Gem::Specification.new do |s| | |
| 477 491 | 
             
                spec/vcloud/bin_spec.rb
         | 
| 478 492 | 
             
                spec/vcloud/models/vdc_spec.rb
         | 
| 479 493 | 
             
                spec/vcloud/models/vdcs_spec.rb
         | 
| 494 | 
            +
                spec/vcloud/requests/get_network_spec.rb
         | 
| 480 495 | 
             
                spec/vcloud/requests/get_organization_spec.rb
         | 
| 481 496 | 
             
                spec/vcloud/requests/get_vdc_spec.rb
         | 
| 482 497 | 
             
                spec/vcloud/requests/get_versions_spec.rb
         | 
| @@ -484,13 +499,20 @@ Gem::Specification.new do |s| | |
| 484 499 | 
             
                spec/vcloud/spec_helper.rb
         | 
| 485 500 | 
             
                spec/vcloud/terremark/ecloud/models/internet_service_spec.rb
         | 
| 486 501 | 
             
                spec/vcloud/terremark/ecloud/models/internet_services_spec.rb
         | 
| 502 | 
            +
                spec/vcloud/terremark/ecloud/models/ip_spec.rb
         | 
| 503 | 
            +
                spec/vcloud/terremark/ecloud/models/ips_spec.rb
         | 
| 504 | 
            +
                spec/vcloud/terremark/ecloud/models/network_spec.rb
         | 
| 505 | 
            +
                spec/vcloud/terremark/ecloud/models/networks_spec.rb
         | 
| 487 506 | 
             
                spec/vcloud/terremark/ecloud/models/public_ip_spec.rb
         | 
| 488 507 | 
             
                spec/vcloud/terremark/ecloud/models/public_ips_spec.rb
         | 
| 489 508 | 
             
                spec/vcloud/terremark/ecloud/models/vdc_spec.rb
         | 
| 490 509 | 
             
                spec/vcloud/terremark/ecloud/models/vdcs_spec.rb
         | 
| 491 510 | 
             
                spec/vcloud/terremark/ecloud/requests/add_internet_service_spec.rb
         | 
| 511 | 
            +
                spec/vcloud/terremark/ecloud/requests/configure_internet_service_spec.rb
         | 
| 492 512 | 
             
                spec/vcloud/terremark/ecloud/requests/delete_internet_service_spec.rb
         | 
| 493 513 | 
             
                spec/vcloud/terremark/ecloud/requests/get_internet_services_spec.rb
         | 
| 514 | 
            +
                spec/vcloud/terremark/ecloud/requests/get_network_ips_spec.rb
         | 
| 515 | 
            +
                spec/vcloud/terremark/ecloud/requests/get_network_spec.rb
         | 
| 494 516 | 
             
                spec/vcloud/terremark/ecloud/requests/get_public_ip_spec.rb
         | 
| 495 517 | 
             
                spec/vcloud/terremark/ecloud/requests/get_public_ips_spec.rb
         | 
| 496 518 | 
             
                spec/vcloud/terremark/ecloud/requests/get_vdc_spec.rb
         | 
    
        data/lib/fog.rb
    CHANGED
    
    | @@ -4,8 +4,6 @@ require 'cgi' | |
| 4 4 | 
             
            require 'digest/md5'
         | 
| 5 5 | 
             
            require 'excon'
         | 
| 6 6 | 
             
            require 'formatador'
         | 
| 7 | 
            -
            require 'hmac-sha1'
         | 
| 8 | 
            -
            require 'hmac-sha2'
         | 
| 9 7 | 
             
            require 'json'
         | 
| 10 8 | 
             
            require 'mime/types'
         | 
| 11 9 | 
             
            require 'net/ssh'
         | 
| @@ -22,22 +20,13 @@ require 'fog/attributes' | |
| 22 20 | 
             
            require 'fog/collection'
         | 
| 23 21 | 
             
            require 'fog/connection'
         | 
| 24 22 | 
             
            require 'fog/deprecation'
         | 
| 23 | 
            +
            require 'fog/errors'
         | 
| 24 | 
            +
            require 'fog/hmac'
         | 
| 25 25 | 
             
            require 'fog/model'
         | 
| 26 26 | 
             
            require 'fog/parser'
         | 
| 27 | 
            +
            require 'fog/service'
         | 
| 27 28 | 
             
            require 'fog/ssh'
         | 
| 28 29 |  | 
| 29 | 
            -
            module Fog
         | 
| 30 | 
            -
              module Errors
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                class Error < StandardError; end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                class MockNotImplemented < Fog::Errors::Error; end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                class NotFound < Fog::Errors::Error; end
         | 
| 37 | 
            -
             | 
| 38 | 
            -
              end
         | 
| 39 | 
            -
            end
         | 
| 40 | 
            -
             | 
| 41 30 | 
             
            require 'fog/aws'
         | 
| 42 31 | 
             
            require 'fog/bluebox'
         | 
| 43 32 | 
             
            require 'fog/local'
         | 
| @@ -49,7 +38,7 @@ require 'fog/vcloud' | |
| 49 38 | 
             
            module Fog
         | 
| 50 39 |  | 
| 51 40 | 
             
              unless const_defined?(:VERSION)
         | 
| 52 | 
            -
                VERSION = '0.1. | 
| 41 | 
            +
                VERSION = '0.1.9'
         | 
| 53 42 | 
             
              end
         | 
| 54 43 |  | 
| 55 44 | 
             
              module Mock
         | 
    
        data/lib/fog/aws.rb
    CHANGED
    
    | @@ -33,8 +33,8 @@ module Fog | |
| 33 33 | 
             
                    end
         | 
| 34 34 | 
             
                  end
         | 
| 35 35 | 
             
                  string_to_sign = "POST\n#{options[:host]}\n/\n" << body.chop
         | 
| 36 | 
            -
                   | 
| 37 | 
            -
                  body << "Signature=#{CGI.escape(Base64.encode64( | 
| 36 | 
            +
                  signed_string = options[:hmac].sign(string_to_sign)
         | 
| 37 | 
            +
                  body << "Signature=#{CGI.escape(Base64.encode64(signed_string).chomp!).gsub(/\+/, '%20')}"
         | 
| 38 38 |  | 
| 39 39 | 
             
                  body
         | 
| 40 40 | 
             
                end
         | 
    
        data/lib/fog/aws/ec2.rb
    CHANGED
    
    | @@ -1,101 +1,65 @@ | |
| 1 1 | 
             
            module Fog
         | 
| 2 2 | 
             
              module AWS
         | 
| 3 3 | 
             
                module EC2
         | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
                   | 
| 7 | 
            -
             | 
| 8 | 
            -
                   | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 55 | 
            -
             | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
             | 
| 60 | 
            -
                      require 'fog/aws/requests/ec2/describe_availability_zones'
         | 
| 61 | 
            -
                      require 'fog/aws/requests/ec2/describe_images'
         | 
| 62 | 
            -
                      require 'fog/aws/requests/ec2/describe_instances'
         | 
| 63 | 
            -
                      require 'fog/aws/requests/ec2/describe_reserved_instances'
         | 
| 64 | 
            -
                      require 'fog/aws/requests/ec2/describe_key_pairs'
         | 
| 65 | 
            -
                      require 'fog/aws/requests/ec2/describe_regions'
         | 
| 66 | 
            -
                      require 'fog/aws/requests/ec2/describe_security_groups'
         | 
| 67 | 
            -
                      require 'fog/aws/requests/ec2/describe_snapshots'
         | 
| 68 | 
            -
                      require 'fog/aws/requests/ec2/describe_volumes'
         | 
| 69 | 
            -
                      require 'fog/aws/requests/ec2/detach_volume'
         | 
| 70 | 
            -
                      require 'fog/aws/requests/ec2/disassociate_address'
         | 
| 71 | 
            -
                      require 'fog/aws/requests/ec2/get_console_output'
         | 
| 72 | 
            -
                      require 'fog/aws/requests/ec2/modify_image_attributes'
         | 
| 73 | 
            -
                      require 'fog/aws/requests/ec2/reboot_instances'
         | 
| 74 | 
            -
                      require 'fog/aws/requests/ec2/release_address'
         | 
| 75 | 
            -
                      require 'fog/aws/requests/ec2/revoke_security_group_ingress'
         | 
| 76 | 
            -
                      require 'fog/aws/requests/ec2/run_instances'
         | 
| 77 | 
            -
                      require 'fog/aws/requests/ec2/terminate_instances'
         | 
| 78 | 
            -
                      @required = true
         | 
| 79 | 
            -
                    end
         | 
| 80 | 
            -
             | 
| 81 | 
            -
                    unless options[:aws_access_key_id]
         | 
| 82 | 
            -
                      raise ArgumentError.new('aws_access_key_id is required to access ec2')
         | 
| 83 | 
            -
                    end
         | 
| 84 | 
            -
                    unless options[:aws_secret_access_key]
         | 
| 85 | 
            -
                      raise ArgumentError.new('aws_secret_access_key is required to access ec2')
         | 
| 86 | 
            -
                    end
         | 
| 87 | 
            -
                    if Fog.mocking?
         | 
| 88 | 
            -
                      Fog::AWS::EC2::Mock.new(options)
         | 
| 89 | 
            -
                    else
         | 
| 90 | 
            -
                      Fog::AWS::EC2::Real.new(options)
         | 
| 91 | 
            -
                    end
         | 
| 92 | 
            -
                  end
         | 
| 93 | 
            -
             | 
| 94 | 
            -
                  def self.reset_data(keys=Mock.data.keys)
         | 
| 95 | 
            -
                    Mock.reset_data(keys)
         | 
| 96 | 
            -
                  end
         | 
| 4 | 
            +
                  extend Fog::Service
         | 
| 5 | 
            +
             | 
| 6 | 
            +
                  requires :aws_access_key_id, :aws_secret_access_key
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                  model_path 'fog/aws/models/ec2'
         | 
| 9 | 
            +
                  model 'address'
         | 
| 10 | 
            +
                  model 'addresses'
         | 
| 11 | 
            +
                  model 'flavor'
         | 
| 12 | 
            +
                  model 'flavors'
         | 
| 13 | 
            +
                  model 'image'
         | 
| 14 | 
            +
                  model 'images'
         | 
| 15 | 
            +
                  model 'key_pair'
         | 
| 16 | 
            +
                  model 'key_pairs'
         | 
| 17 | 
            +
                  model 'security_group'
         | 
| 18 | 
            +
                  model 'security_groups'
         | 
| 19 | 
            +
                  model 'server'
         | 
| 20 | 
            +
                  model 'servers'
         | 
| 21 | 
            +
                  model 'snapshot'
         | 
| 22 | 
            +
                  model 'snapshots'
         | 
| 23 | 
            +
                  model 'volume'
         | 
| 24 | 
            +
                  model 'volumes'
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  require 'fog/aws/parsers/ec2/basic'
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  request_path 'fog/aws/requests/ec2'
         | 
| 29 | 
            +
                  request 'allocate_address'
         | 
| 30 | 
            +
                  request 'associate_address'
         | 
| 31 | 
            +
                  request 'attach_volume'
         | 
| 32 | 
            +
                  request 'authorize_security_group_ingress'
         | 
| 33 | 
            +
                  request 'create_key_pair'
         | 
| 34 | 
            +
                  request 'create_security_group'
         | 
| 35 | 
            +
                  request 'create_snapshot'
         | 
| 36 | 
            +
                  request 'create_volume'
         | 
| 37 | 
            +
                  request 'delete_key_pair'
         | 
| 38 | 
            +
                  request 'delete_security_group'
         | 
| 39 | 
            +
                  request 'delete_snapshot'
         | 
| 40 | 
            +
                  request 'delete_volume'
         | 
| 41 | 
            +
                  request 'describe_addresses'
         | 
| 42 | 
            +
                  request 'describe_availability_zones'
         | 
| 43 | 
            +
                  request 'describe_images'
         | 
| 44 | 
            +
                  request 'describe_instances'
         | 
| 45 | 
            +
                  request 'describe_reserved_instances'
         | 
| 46 | 
            +
                  request 'describe_key_pairs'
         | 
| 47 | 
            +
                  request 'describe_regions'
         | 
| 48 | 
            +
                  request 'describe_security_groups'
         | 
| 49 | 
            +
                  request 'describe_snapshots'
         | 
| 50 | 
            +
                  request 'describe_volumes'
         | 
| 51 | 
            +
                  request 'detach_volume'
         | 
| 52 | 
            +
                  request 'disassociate_address'
         | 
| 53 | 
            +
                  request 'get_console_output'
         | 
| 54 | 
            +
                  request 'modify_image_attributes'
         | 
| 55 | 
            +
                  request 'reboot_instances'
         | 
| 56 | 
            +
                  request 'release_address'
         | 
| 57 | 
            +
                  request 'revoke_security_group_ingress'
         | 
| 58 | 
            +
                  request 'run_instances'
         | 
| 59 | 
            +
                  request 'terminate_instances'
         | 
| 97 60 |  | 
| 98 61 | 
             
                  class Mock
         | 
| 62 | 
            +
                    include Collections
         | 
| 99 63 |  | 
| 100 64 | 
             
                    def self.data
         | 
| 101 65 | 
             
                      @data ||= Hash.new do |hash, key|
         | 
| @@ -158,6 +122,7 @@ module Fog | |
| 158 122 | 
             
                  end
         | 
| 159 123 |  | 
| 160 124 | 
             
                  class Real
         | 
| 125 | 
            +
                    include Collections
         | 
| 161 126 |  | 
| 162 127 | 
             
                    # Initialize connection to EC2
         | 
| 163 128 | 
             
                    #
         | 
| @@ -180,7 +145,7 @@ module Fog | |
| 180 145 | 
             
                    def initialize(options={})
         | 
| 181 146 | 
             
                      @aws_access_key_id      = options[:aws_access_key_id]
         | 
| 182 147 | 
             
                      @aws_secret_access_key  = options[:aws_secret_access_key]
         | 
| 183 | 
            -
                      @hmac = HMAC | 
| 148 | 
            +
                      @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
         | 
| 184 149 | 
             
                      @host = options[:host] || case options[:region]
         | 
| 185 150 | 
             
                        when 'ap-southeast-1'
         | 
| 186 151 | 
             
                          'ec2.ap-southeast-1.amazonaws.com'
         | 
| @@ -193,8 +158,8 @@ module Fog | |
| 193 158 | 
             
                        else
         | 
| 194 159 | 
             
                          'ec2.amazonaws.com'
         | 
| 195 160 | 
             
                        end
         | 
| 196 | 
            -
                      @port | 
| 197 | 
            -
                      @scheme | 
| 161 | 
            +
                      @port   = options[:port]      || 443
         | 
| 162 | 
            +
                      @scheme = options[:scheme]    || 'https'
         | 
| 198 163 | 
             
                    end
         | 
| 199 164 |  | 
| 200 165 | 
             
                    private
         | 
| @@ -227,14 +192,12 @@ module Fog | |
| 227 192 | 
             
                        })
         | 
| 228 193 | 
             
                      rescue Excon::Errors::Error => error
         | 
| 229 194 | 
             
                        if match = error.message.match(/<Code>(.*)<\/Code><Message>(.*)<\/Message>/)
         | 
| 230 | 
            -
                           | 
| 195 | 
            +
                          raise case match[1].split('.').last
         | 
| 231 196 | 
             
                          when 'NotFound'
         | 
| 232 | 
            -
                            Fog::AWS::EC2::NotFound. | 
| 197 | 
            +
                            Fog::AWS::EC2::NotFound.slurp(error, match[2])
         | 
| 233 198 | 
             
                          else
         | 
| 234 | 
            -
                            Fog::AWS::EC2::Error. | 
| 199 | 
            +
                            Fog::AWS::EC2::Error.slurp(error, "#{match[1]} => #{match[2]}")
         | 
| 235 200 | 
             
                          end
         | 
| 236 | 
            -
                          new_error.set_backtrace(error.backtrace)
         | 
| 237 | 
            -
                          raise new_error
         | 
| 238 201 | 
             
                        else
         | 
| 239 202 | 
             
                          raise error
         | 
| 240 203 | 
             
                        end
         |