fog 0.0.31 → 0.0.32
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/.document +0 -2
 - data/Rakefile +12 -7
 - data/VERSION +1 -1
 - data/bin/fog +16 -18
 - data/fog.gemspec +34 -8
 - data/lib/fog.rb +11 -0
 - data/lib/fog/aws/models/ec2/address.rb +4 -0
 - data/lib/fog/aws/models/ec2/instance.rb +17 -0
 - data/lib/fog/aws/models/ec2/key_pair.rb +4 -0
 - data/lib/fog/aws/models/ec2/security_group.rb +8 -0
 - data/lib/fog/aws/models/ec2/snapshot.rb +7 -1
 - data/lib/fog/aws/models/ec2/volume.rb +9 -1
 - data/lib/fog/aws/models/s3/bucket.rb +10 -0
 - data/lib/fog/aws/models/s3/buckets.rb +10 -4
 - data/lib/fog/aws/models/s3/object.rb +5 -0
 - data/lib/fog/aws/requests/ec2/allocate_address.rb +1 -1
 - data/lib/fog/aws/requests/ec2/associate_address.rb +2 -2
 - data/lib/fog/aws/requests/ec2/attach_volume.rb +2 -2
 - data/lib/fog/aws/requests/ec2/authorize_security_group_ingress.rb +1 -1
 - data/lib/fog/aws/requests/ec2/create_key_pair.rb +2 -2
 - data/lib/fog/aws/requests/ec2/create_security_group.rb +2 -2
 - data/lib/fog/aws/requests/ec2/create_snapshot.rb +2 -2
 - data/lib/fog/aws/requests/ec2/create_volume.rb +1 -1
 - data/lib/fog/aws/requests/ec2/delete_key_pair.rb +1 -1
 - data/lib/fog/aws/requests/ec2/delete_security_group.rb +2 -2
 - data/lib/fog/aws/requests/ec2/delete_snapshot.rb +2 -2
 - data/lib/fog/aws/requests/ec2/delete_volume.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_addresses.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_availability_zones.rb +1 -1
 - data/lib/fog/aws/requests/ec2/describe_images.rb +1 -1
 - data/lib/fog/aws/requests/ec2/describe_instances.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_key_pairs.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_regions.rb +1 -1
 - data/lib/fog/aws/requests/ec2/describe_security_groups.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_snapshots.rb +2 -2
 - data/lib/fog/aws/requests/ec2/describe_volumes.rb +2 -2
 - data/lib/fog/aws/requests/ec2/detach_volume.rb +2 -2
 - data/lib/fog/aws/requests/ec2/disassociate_address.rb +2 -2
 - data/lib/fog/aws/requests/ec2/get_console_output.rb +2 -2
 - data/lib/fog/aws/requests/ec2/reboot_instances.rb +2 -2
 - data/lib/fog/aws/requests/ec2/release_address.rb +2 -2
 - data/lib/fog/aws/requests/ec2/revoke_security_group_ingress.rb +1 -1
 - data/lib/fog/aws/requests/ec2/run_instances.rb +1 -1
 - data/lib/fog/aws/requests/ec2/terminate_instances.rb +2 -2
 - data/lib/fog/aws/requests/s3/copy_object.rb +2 -2
 - data/lib/fog/aws/requests/s3/delete_bucket.rb +3 -3
 - data/lib/fog/aws/requests/s3/delete_object.rb +8 -7
 - data/lib/fog/aws/requests/s3/get_bucket.rb +2 -2
 - data/lib/fog/aws/requests/s3/get_bucket_location.rb +2 -2
 - data/lib/fog/aws/requests/s3/get_object.rb +2 -2
 - data/lib/fog/aws/requests/s3/get_request_payment.rb +2 -2
 - data/lib/fog/aws/requests/s3/get_service.rb +1 -1
 - data/lib/fog/aws/requests/s3/put_bucket.rb +8 -6
 - data/lib/fog/aws/requests/s3/put_object.rb +9 -9
 - data/lib/fog/aws/requests/s3/put_request_payment.rb +2 -2
 - data/lib/fog/aws/requests/simpledb/batch_put_attributes.rb +2 -2
 - data/lib/fog/aws/requests/simpledb/create_domain.rb +1 -1
 - data/lib/fog/aws/requests/simpledb/delete_attributes.rb +2 -2
 - data/lib/fog/aws/requests/simpledb/delete_domain.rb +1 -1
 - data/lib/fog/aws/requests/simpledb/domain_metadata.rb +2 -2
 - data/lib/fog/aws/requests/simpledb/get_attributes.rb +2 -2
 - data/lib/fog/aws/requests/simpledb/list_domains.rb +1 -1
 - data/lib/fog/aws/s3.rb +1 -12
 - data/lib/fog/collection.rb +16 -8
 - data/lib/fog/model.rb +36 -14
 - data/lib/fog/rackspace/models/servers/image.rb +40 -0
 - data/lib/fog/rackspace/models/servers/images.rb +50 -0
 - data/lib/fog/rackspace/models/servers/server.rb +18 -2
 - data/lib/fog/rackspace/requests/servers/create_image.rb +18 -1
 - data/lib/fog/rackspace/requests/servers/create_server.rb +5 -5
 - data/lib/fog/rackspace/requests/servers/delete_image.rb +16 -1
 - data/lib/fog/rackspace/requests/servers/delete_server.rb +4 -4
 - data/lib/fog/rackspace/requests/servers/get_server_details.rb +2 -2
 - data/lib/fog/rackspace/requests/servers/list_addresses.rb +2 -2
 - data/lib/fog/rackspace/requests/servers/list_images.rb +10 -0
 - data/lib/fog/rackspace/requests/servers/list_images_detail.rb +16 -1
 - data/lib/fog/rackspace/requests/servers/list_private_addresses.rb +2 -2
 - data/lib/fog/rackspace/requests/servers/list_public_addresses.rb +2 -2
 - data/lib/fog/rackspace/requests/servers/list_servers.rb +1 -1
 - data/lib/fog/rackspace/requests/servers/list_servers_detail.rb +2 -2
 - data/lib/fog/rackspace/requests/servers/update_server.rb +2 -2
 - data/lib/fog/rackspace/servers.rb +8 -2
 - data/lib/fog/slicehost.rb +66 -0
 - data/lib/fog/slicehost/parsers/create_slice.rb +29 -0
 - data/lib/fog/slicehost/parsers/get_backups.rb +30 -0
 - data/lib/fog/slicehost/parsers/get_flavors.rb +28 -0
 - data/lib/fog/slicehost/parsers/get_images.rb +28 -0
 - data/lib/fog/slicehost/parsers/get_slices.rb +33 -0
 - data/lib/fog/slicehost/requests/create_slice.rb +50 -0
 - data/lib/fog/slicehost/requests/delete_slice.rb +48 -0
 - data/lib/fog/slicehost/requests/get_backups.rb +38 -0
 - data/lib/fog/slicehost/requests/get_flavors.rb +38 -0
 - data/lib/fog/slicehost/requests/get_images.rb +36 -0
 - data/lib/fog/slicehost/requests/get_slices.rb +44 -0
 - data/spec/aws/requests/s3/put_object_spec.rb +8 -0
 - data/spec/rackspace/requests/servers/create_image_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/create_server_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/delete_image_spec.rb +7 -5
 - data/spec/rackspace/requests/servers/delete_server_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/get_server_details_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/list_addresses_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/list_private_addresses_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/list_public_addresses_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/list_servers_detail_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/list_servers_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/reboot_server_spec.rb +1 -1
 - data/spec/rackspace/requests/servers/update_server_spec.rb +1 -1
 - data/spec/slicehost/requests/create_slice_spec.rb +29 -0
 - data/spec/slicehost/requests/delete_slice_spec.rb +18 -0
 - data/spec/slicehost/requests/get_backups_spec.rb +17 -0
 - data/spec/slicehost/requests/get_flavors_spec.rb +17 -0
 - data/spec/slicehost/requests/get_images_spec.rb +15 -0
 - data/spec/slicehost/requests/get_slices_spec.rb +23 -0
 - data/spec/spec_helper.rb +20 -22
 - metadata +29 -4
 - data/lib/fog/aws/models/s3/owner.rb +0 -18
 
| 
         @@ -32,13 +32,13 @@ else 
     | 
|
| 
       32 
32 
     | 
    
         
             
                  class Servers
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                    def list_private_addresses(server_id)
         
     | 
| 
       35 
     | 
    
         
            -
                      response =  
     | 
| 
      
 35 
     | 
    
         
            +
                      response = Excon::Response.new
         
     | 
| 
       36 
36 
     | 
    
         
             
                      if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
         
     | 
| 
       37 
37 
     | 
    
         
             
                        response.status = [200, 203][rand(1)]
         
     | 
| 
       38 
38 
     | 
    
         
             
                        response.body = { 'private' => server['addresses']['private'] }
         
     | 
| 
       39 
39 
     | 
    
         
             
                      else
         
     | 
| 
       40 
40 
     | 
    
         
             
                        response.status = 404
         
     | 
| 
       41 
     | 
    
         
            -
                        raise(Excon::Errors.status_error(202,  
     | 
| 
      
 41 
     | 
    
         
            +
                        raise(Excon::Errors.status_error({:expects => 202}, response))
         
     | 
| 
       42 
42 
     | 
    
         
             
                      end
         
     | 
| 
       43 
43 
     | 
    
         
             
                      response
         
     | 
| 
       44 
44 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -32,13 +32,13 @@ else 
     | 
|
| 
       32 
32 
     | 
    
         
             
                  class Servers
         
     | 
| 
       33 
33 
     | 
    
         | 
| 
       34 
34 
     | 
    
         
             
                    def list_public_addresses(server_id)
         
     | 
| 
       35 
     | 
    
         
            -
                      response =  
     | 
| 
      
 35 
     | 
    
         
            +
                      response = Excon::Response.new
         
     | 
| 
       36 
36 
     | 
    
         
             
                      if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
         
     | 
| 
       37 
37 
     | 
    
         
             
                        response.status = [200, 203][rand(1)]
         
     | 
| 
       38 
38 
     | 
    
         
             
                        response.body = { 'public' => server['addresses']['public'] }
         
     | 
| 
       39 
39 
     | 
    
         
             
                      else
         
     | 
| 
       40 
40 
     | 
    
         
             
                        response.status = 404
         
     | 
| 
       41 
     | 
    
         
            -
                        raise(Excon::Errors.status_error(202,  
     | 
| 
      
 41 
     | 
    
         
            +
                        raise(Excon::Errors.status_error({:expects => 202}, response))
         
     | 
| 
       42 
42 
     | 
    
         
             
                      end
         
     | 
| 
       43 
43 
     | 
    
         
             
                      response
         
     | 
| 
       44 
44 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -40,13 +40,13 @@ else 
     | 
|
| 
       40 
40 
     | 
    
         
             
                  class Servers
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
42 
     | 
    
         
             
                    def list_servers_detail
         
     | 
| 
       43 
     | 
    
         
            -
                      response =  
     | 
| 
      
 43 
     | 
    
         
            +
                      response = Excon::Response.new
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
45 
     | 
    
         
             
                      servers = Fog::Rackspace::Servers.data[:servers].values
         
     | 
| 
       46 
46 
     | 
    
         
             
                      for server in servers
         
     | 
| 
       47 
47 
     | 
    
         
             
                        case server['status']
         
     | 
| 
       48 
48 
     | 
    
         
             
                        when 'BUILD'
         
     | 
| 
       49 
     | 
    
         
            -
                          if Time.now - Fog::Rackspace::Servers.data[:last_modified][server['id']] > 2
         
     | 
| 
      
 49 
     | 
    
         
            +
                          if Time.now - Fog::Rackspace::Servers.data[:last_modified][:servers][server['id']] > 2
         
     | 
| 
       50 
50 
     | 
    
         
             
                            server['status'] = 'ACTIVE'
         
     | 
| 
       51 
51 
     | 
    
         
             
                          end
         
     | 
| 
       52 
52 
     | 
    
         
             
                        end
         
     | 
| 
         @@ -31,7 +31,7 @@ else 
     | 
|
| 
       31 
31 
     | 
    
         
             
                  class Servers
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
                    def update_server(server_id, options)
         
     | 
| 
       34 
     | 
    
         
            -
                      response =  
     | 
| 
      
 34 
     | 
    
         
            +
                      response = Excon::Response.new
         
     | 
| 
       35 
35 
     | 
    
         
             
                      if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
         
     | 
| 
       36 
36 
     | 
    
         
             
                        if options['adminPass']
         
     | 
| 
       37 
37 
     | 
    
         
             
                          server['adminPass'] = options['adminPass']
         
     | 
| 
         @@ -42,7 +42,7 @@ else 
     | 
|
| 
       42 
42 
     | 
    
         
             
                        response.status = 204
         
     | 
| 
       43 
43 
     | 
    
         
             
                      else
         
     | 
| 
       44 
44 
     | 
    
         
             
                        response.status = 404
         
     | 
| 
       45 
     | 
    
         
            -
                        raise(Excon::Errors.status_error(202,  
     | 
| 
      
 45 
     | 
    
         
            +
                        raise(Excon::Errors.status_error({:expects => 202}, response))
         
     | 
| 
       46 
46 
     | 
    
         
             
                      end
         
     | 
| 
       47 
47 
     | 
    
         
             
                      response
         
     | 
| 
       48 
48 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -8,7 +8,11 @@ module Fog 
     | 
|
| 
       8 
8 
     | 
    
         
             
                    end
         
     | 
| 
       9 
9 
     | 
    
         
             
                    def self.reset_data
         
     | 
| 
       10 
10 
     | 
    
         
             
                      @data = {
         
     | 
| 
       11 
     | 
    
         
            -
                        :last_modified =>  
     | 
| 
      
 11 
     | 
    
         
            +
                        :last_modified => {
         
     | 
| 
      
 12 
     | 
    
         
            +
                          :images  => {},
         
     | 
| 
      
 13 
     | 
    
         
            +
                          :servers => {}
         
     | 
| 
      
 14 
     | 
    
         
            +
                        },
         
     | 
| 
      
 15 
     | 
    
         
            +
                        :images  => {},
         
     | 
| 
       12 
16 
     | 
    
         
             
                        :servers => {}
         
     | 
| 
       13 
17 
     | 
    
         
             
                      }
         
     | 
| 
       14 
18 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -17,6 +21,8 @@ module Fog 
     | 
|
| 
       17 
21 
     | 
    
         
             
                  def self.reload
         
     | 
| 
       18 
22 
     | 
    
         
             
                    load "fog/rackspace/models/servers/flavor.rb"
         
     | 
| 
       19 
23 
     | 
    
         
             
                    load "fog/rackspace/models/servers/flavors.rb"
         
     | 
| 
      
 24 
     | 
    
         
            +
                    load "fog/rackspace/models/servers/image.rb"
         
     | 
| 
      
 25 
     | 
    
         
            +
                    load "fog/rackspace/models/servers/images.rb"
         
     | 
| 
       20 
26 
     | 
    
         
             
                    load "fog/rackspace/models/servers/server.rb"
         
     | 
| 
       21 
27 
     | 
    
         
             
                    load "fog/rackspace/models/servers/servers.rb"
         
     | 
| 
       22 
28 
     | 
    
         | 
| 
         @@ -60,7 +66,7 @@ module Fog 
     | 
|
| 
       60 
66 
     | 
    
         
             
                      :expects  => params[:expects],
         
     | 
| 
       61 
67 
     | 
    
         
             
                      :headers  => {
         
     | 
| 
       62 
68 
     | 
    
         
             
                        'X-Auth-Token' => @auth_token
         
     | 
| 
       63 
     | 
    
         
            -
                      },
         
     | 
| 
      
 69 
     | 
    
         
            +
                      }.merge!(params[:headers] || {}),
         
     | 
| 
       64 
70 
     | 
    
         
             
                      :host     => @host,
         
     | 
| 
       65 
71 
     | 
    
         
             
                      :method   => params[:method],
         
     | 
| 
       66 
72 
     | 
    
         
             
                      :path     => "#{@path}/#{params[:path]}"
         
     | 
| 
         @@ -0,0 +1,66 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Slicehost
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                if Fog.mocking?
         
     | 
| 
      
 5 
     | 
    
         
            +
                  def self.data
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @data
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
                  def self.reset_data
         
     | 
| 
      
 9 
     | 
    
         
            +
                    @data = {}
         
     | 
| 
      
 10 
     | 
    
         
            +
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def self.reload
         
     | 
| 
      
 14 
     | 
    
         
            +
                  load "fog/slicehost/parsers/create_slice.rb"
         
     | 
| 
      
 15 
     | 
    
         
            +
                  load "fog/slicehost/parsers/get_backups.rb"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  load "fog/slicehost/parsers/get_flavors.rb"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  load "fog/slicehost/parsers/get_images.rb"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  load "fog/slicehost/parsers/get_slices.rb"
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                  load "fog/slicehost/requests/create_slice.rb"
         
     | 
| 
      
 21 
     | 
    
         
            +
                  load "fog/slicehost/requests/delete_slice.rb"
         
     | 
| 
      
 22 
     | 
    
         
            +
                  load "fog/slicehost/requests/get_backups.rb"
         
     | 
| 
      
 23 
     | 
    
         
            +
                  load "fog/slicehost/requests/get_flavors.rb"
         
     | 
| 
      
 24 
     | 
    
         
            +
                  load "fog/slicehost/requests/get_images.rb"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  load "fog/slicehost/requests/get_slices.rb"
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  if Fog.mocking?
         
     | 
| 
      
 28 
     | 
    
         
            +
                    reset_data
         
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
                end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                def initialize(options={})
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @password   = options[:password]
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @host       = options[:host]      || "api.slicehost.com"
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @port       = options[:port]      || 443
         
     | 
| 
      
 36 
     | 
    
         
            +
                  @scheme     = options[:scheme]    || 'https'
         
     | 
| 
      
 37 
     | 
    
         
            +
                  @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}")
         
     | 
| 
      
 38 
     | 
    
         
            +
                end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                def request(params)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  headers = {
         
     | 
| 
      
 42 
     | 
    
         
            +
                    'Authorization' => "Basic #{Base64.encode64(@password).gsub("\n",'')}"
         
     | 
| 
      
 43 
     | 
    
         
            +
                  }
         
     | 
| 
      
 44 
     | 
    
         
            +
                  case params[:method]
         
     | 
| 
      
 45 
     | 
    
         
            +
                  when 'DELETE', 'GET', 'HEAD'
         
     | 
| 
      
 46 
     | 
    
         
            +
                    headers['Accept'] = 'application/xml'
         
     | 
| 
      
 47 
     | 
    
         
            +
                  when 'POST', 'PUT'
         
     | 
| 
      
 48 
     | 
    
         
            +
                    headers['Content-Type'] = 'application/xml'
         
     | 
| 
      
 49 
     | 
    
         
            +
                  end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                  response = @connection.request({
         
     | 
| 
      
 52 
     | 
    
         
            +
                    :body     => params[:body],
         
     | 
| 
      
 53 
     | 
    
         
            +
                    :expects  => params[:expects],
         
     | 
| 
      
 54 
     | 
    
         
            +
                    :headers  => headers.merge!(params[:headers] || {}),
         
     | 
| 
      
 55 
     | 
    
         
            +
                    :host     => @host,
         
     | 
| 
      
 56 
     | 
    
         
            +
                    :method   => params[:method],
         
     | 
| 
      
 57 
     | 
    
         
            +
                    :parser   => params[:parser],
         
     | 
| 
      
 58 
     | 
    
         
            +
                    :path     => params[:path]
         
     | 
| 
      
 59 
     | 
    
         
            +
                  })
         
     | 
| 
      
 60 
     | 
    
         
            +
                  response
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
              end
         
     | 
| 
      
 64 
     | 
    
         
            +
            end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
            Fog::Slicehost.reload
         
     | 
| 
         @@ -0,0 +1,29 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Slicehost
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  class CreateSlice < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    def reset
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @response = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                    end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
                    def end_element(name)
         
     | 
| 
      
 12 
     | 
    
         
            +
                      case name
         
     | 
| 
      
 13 
     | 
    
         
            +
                      when 'address'
         
     | 
| 
      
 14 
     | 
    
         
            +
                        @response['addresses'] ||= []
         
     | 
| 
      
 15 
     | 
    
         
            +
                        @response['addresses'] << @value
         
     | 
| 
      
 16 
     | 
    
         
            +
                      when 'backup-id', 'flavor-id', 'id', 'image-id', 'progress'
         
     | 
| 
      
 17 
     | 
    
         
            +
                        @response[name] = @value.to_i
         
     | 
| 
      
 18 
     | 
    
         
            +
                      when 'bw-in', 'bw-out'
         
     | 
| 
      
 19 
     | 
    
         
            +
                        @response[name] = @value.to_f
         
     | 
| 
      
 20 
     | 
    
         
            +
                      when 'name', 'root-password', 'status'
         
     | 
| 
      
 21 
     | 
    
         
            +
                        @response[name] = @value
         
     | 
| 
      
 22 
     | 
    
         
            +
                      end
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,30 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Slicehost
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  class GetBackups < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    def reset
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @backup = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      @response = { 'backups' => [] }
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def end_element(name)
         
     | 
| 
      
 13 
     | 
    
         
            +
                      case name
         
     | 
| 
      
 14 
     | 
    
         
            +
                      when 'backup'
         
     | 
| 
      
 15 
     | 
    
         
            +
                        @response['backups'] << @backup
         
     | 
| 
      
 16 
     | 
    
         
            +
                        @backup = {}
         
     | 
| 
      
 17 
     | 
    
         
            +
                      when 'date'
         
     | 
| 
      
 18 
     | 
    
         
            +
                        @backup[name] = Time.parse(@value)
         
     | 
| 
      
 19 
     | 
    
         
            +
                      when 'id', 'slice-id'
         
     | 
| 
      
 20 
     | 
    
         
            +
                        @backup[name] = @value.to_i
         
     | 
| 
      
 21 
     | 
    
         
            +
                      when 'name'
         
     | 
| 
      
 22 
     | 
    
         
            +
                        @backup[name] = @value
         
     | 
| 
      
 23 
     | 
    
         
            +
                      end
         
     | 
| 
      
 24 
     | 
    
         
            +
                    end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                  end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Slicehost
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  class GetFlavors < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    def reset
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @flavor = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      @response = { 'flavors' => [] }
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def end_element(name)
         
     | 
| 
      
 13 
     | 
    
         
            +
                      case name
         
     | 
| 
      
 14 
     | 
    
         
            +
                      when 'flavor'
         
     | 
| 
      
 15 
     | 
    
         
            +
                        @response['flavors'] << @flavor
         
     | 
| 
      
 16 
     | 
    
         
            +
                        @flavor = {}
         
     | 
| 
      
 17 
     | 
    
         
            +
                      when 'id', 'price', 'ram'
         
     | 
| 
      
 18 
     | 
    
         
            +
                        @flavor[name] = @value.to_i
         
     | 
| 
      
 19 
     | 
    
         
            +
                      when 'name'
         
     | 
| 
      
 20 
     | 
    
         
            +
                        @flavor[name] = @value
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Slicehost
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  class GetImages < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    def reset
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @image = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      @response = { 'images' => [] }
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def end_element(name)
         
     | 
| 
      
 13 
     | 
    
         
            +
                      case name
         
     | 
| 
      
 14 
     | 
    
         
            +
                      when 'id'
         
     | 
| 
      
 15 
     | 
    
         
            +
                        @image[name] = @value.to_i
         
     | 
| 
      
 16 
     | 
    
         
            +
                      when 'image'
         
     | 
| 
      
 17 
     | 
    
         
            +
                        @response['images'] << @image
         
     | 
| 
      
 18 
     | 
    
         
            +
                        @image = {}
         
     | 
| 
      
 19 
     | 
    
         
            +
                      when 'name'
         
     | 
| 
      
 20 
     | 
    
         
            +
                        @image[name] = @value
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Fog
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Parsers
         
     | 
| 
      
 3 
     | 
    
         
            +
                module Slicehost
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                  class GetSlices < Fog::Parsers::Base
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                    def reset
         
     | 
| 
      
 8 
     | 
    
         
            +
                      @slice = {}
         
     | 
| 
      
 9 
     | 
    
         
            +
                      @response = { 'slices' => [] }
         
     | 
| 
      
 10 
     | 
    
         
            +
                    end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    def end_element(name)
         
     | 
| 
      
 13 
     | 
    
         
            +
                      case name
         
     | 
| 
      
 14 
     | 
    
         
            +
                      when 'address'
         
     | 
| 
      
 15 
     | 
    
         
            +
                        @slice['addresses'] ||= []
         
     | 
| 
      
 16 
     | 
    
         
            +
                        @slice['addresses'] << @value
         
     | 
| 
      
 17 
     | 
    
         
            +
                      when 'backup-id', 'flavor-id', 'id', 'image-id', 'progress'
         
     | 
| 
      
 18 
     | 
    
         
            +
                        @slice[name] = @value.to_i
         
     | 
| 
      
 19 
     | 
    
         
            +
                      when 'bw-in', 'bw-out'
         
     | 
| 
      
 20 
     | 
    
         
            +
                        @slice[name] = @value.to_f
         
     | 
| 
      
 21 
     | 
    
         
            +
                      when 'name', 'status'
         
     | 
| 
      
 22 
     | 
    
         
            +
                        @slice[name] = @value
         
     | 
| 
      
 23 
     | 
    
         
            +
                      when 'slice'
         
     | 
| 
      
 24 
     | 
    
         
            +
                        @response['slices'] << @slice
         
     | 
| 
      
 25 
     | 
    
         
            +
                        @slice = {}
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
              end
         
     | 
| 
      
 33 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,50 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unless Fog.mocking?
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 4 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  # Get list of slices
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # ==== Parameters
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # * flavor_id<~Integer> - Id of flavor to create slice with
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # * image_id<~Integer> - Id of image to create slice with
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # * name<~String> - Name of slice
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # ==== Returns
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # * response<~Excon::Response>:
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #   * body<~Array>:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  #     * 'addresses'<~Array> - Ip addresses for the slice
         
     | 
| 
      
 16 
     | 
    
         
            +
                  #     * 'backup-id'<~Integer> - Id of backup slice was booted from
         
     | 
| 
      
 17 
     | 
    
         
            +
                  #     * 'bw-in'<~Integer> - Incoming bandwidth total for current billing cycle, in Gigabytes
         
     | 
| 
      
 18 
     | 
    
         
            +
                  #     * 'bw-out'<~Integer> - Outgoing bandwidth total for current billing cycle, in Gigabytes
         
     | 
| 
      
 19 
     | 
    
         
            +
                  #     * 'flavor-id'<~Integer> - Id of flavor slice was booted from
         
     | 
| 
      
 20 
     | 
    
         
            +
                  #     * 'id'<~Integer> - Id of the slice
         
     | 
| 
      
 21 
     | 
    
         
            +
                  #     * 'image-id'<~Integer> - Id of image slice was booted from
         
     | 
| 
      
 22 
     | 
    
         
            +
                  #     * 'name'<~String> - Name of the slice
         
     | 
| 
      
 23 
     | 
    
         
            +
                  #     * 'progress'<~Integer> - Progress of current action, in percentage
         
     | 
| 
      
 24 
     | 
    
         
            +
                  #     * 'root-password'<~String> - Root password of slice
         
     | 
| 
      
 25 
     | 
    
         
            +
                  #     * 'status'<~String> - Current status of the slice
         
     | 
| 
      
 26 
     | 
    
         
            +
                  def create_slice(flavor_id, image_id, name)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    request(
         
     | 
| 
      
 28 
     | 
    
         
            +
                      :body     => %Q{<?xml version="1.0" encoding="UTF-8"?><slice><flavor-id type="integer">#{flavor_id}</flavor-id><image-id type="integer">#{image_id}</image-id><name>#{name}</name></slice>},
         
     | 
| 
      
 29 
     | 
    
         
            +
                      :expects  => 201,
         
     | 
| 
      
 30 
     | 
    
         
            +
                      :method   => 'POST',
         
     | 
| 
      
 31 
     | 
    
         
            +
                      :parser   => Fog::Parsers::Slicehost::CreateSlice.new,
         
     | 
| 
      
 32 
     | 
    
         
            +
                      :path     => 'slices.xml'
         
     | 
| 
      
 33 
     | 
    
         
            +
                    )
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
              end
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
            else
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 42 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  def get_slices
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unless Fog.mocking?
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 4 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  # Get list of slices
         
     | 
| 
      
 7 
     | 
    
         
            +
                  # ==== Parameters
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # * flavor_id<~Integer> - Id of flavor to create slice with
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # * image_id<~Integer> - Id of image to create slice with
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # * name<~String> - Name of slice
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #
         
     | 
| 
      
 12 
     | 
    
         
            +
                  # ==== Returns
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # * response<~Excon::Response>:
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #   * body<~Array>:
         
     | 
| 
      
 15 
     | 
    
         
            +
                  #     * 'addresses'<~Array> - Ip addresses for the slice
         
     | 
| 
      
 16 
     | 
    
         
            +
                  #     * 'backup-id'<~Integer> - Id of backup slice was booted from
         
     | 
| 
      
 17 
     | 
    
         
            +
                  #     * 'bw-in'<~Integer> - Incoming bandwidth total for current billing cycle, in Gigabytes
         
     | 
| 
      
 18 
     | 
    
         
            +
                  #     * 'bw-out'<~Integer> - Outgoing bandwidth total for current billing cycle, in Gigabytes
         
     | 
| 
      
 19 
     | 
    
         
            +
                  #     * 'flavor-id'<~Integer> - Id of flavor slice was booted from
         
     | 
| 
      
 20 
     | 
    
         
            +
                  #     * 'id'<~Integer> - Id of the slice
         
     | 
| 
      
 21 
     | 
    
         
            +
                  #     * 'image-id'<~Integer> - Id of image slice was booted from
         
     | 
| 
      
 22 
     | 
    
         
            +
                  #     * 'name'<~String> - Name of the slice
         
     | 
| 
      
 23 
     | 
    
         
            +
                  #     * 'progress'<~Integer> - Progress of current action, in percentage
         
     | 
| 
      
 24 
     | 
    
         
            +
                  #     * 'root-password'<~String> - Root password of slice
         
     | 
| 
      
 25 
     | 
    
         
            +
                  #     * 'status'<~String> - Current status of the slice
         
     | 
| 
      
 26 
     | 
    
         
            +
                  def delete_slice(slice_id)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    request(
         
     | 
| 
      
 28 
     | 
    
         
            +
                      :expects  => 200,
         
     | 
| 
      
 29 
     | 
    
         
            +
                      :method   => 'DELETE',
         
     | 
| 
      
 30 
     | 
    
         
            +
                      :path     => "slices/#{slice_id}.xml"
         
     | 
| 
      
 31 
     | 
    
         
            +
                    )
         
     | 
| 
      
 32 
     | 
    
         
            +
                  end
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                end
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            else
         
     | 
| 
      
 38 
     | 
    
         
            +
             
     | 
| 
      
 39 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 40 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  def get_slices
         
     | 
| 
      
 43 
     | 
    
         
            +
                  end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,38 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            unless Fog.mocking?
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 4 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  # Get list of backups
         
     | 
| 
      
 7 
     | 
    
         
            +
                  #
         
     | 
| 
      
 8 
     | 
    
         
            +
                  # ==== Returns
         
     | 
| 
      
 9 
     | 
    
         
            +
                  # * response<~Excon::Response>:
         
     | 
| 
      
 10 
     | 
    
         
            +
                  #   * body<~Array>:
         
     | 
| 
      
 11 
     | 
    
         
            +
                  #     * 'date'<~Time> - Timestamp of backup creation
         
     | 
| 
      
 12 
     | 
    
         
            +
                  #     * 'id'<~Integer> - Id of the backup
         
     | 
| 
      
 13 
     | 
    
         
            +
                  #     * 'name'<~String> - Name of the backup
         
     | 
| 
      
 14 
     | 
    
         
            +
                  #     * 'slice-id'<~Integer> - Id of slice the backup was made from
         
     | 
| 
      
 15 
     | 
    
         
            +
                  def get_backups
         
     | 
| 
      
 16 
     | 
    
         
            +
                    request(
         
     | 
| 
      
 17 
     | 
    
         
            +
                      :expects  => 200,
         
     | 
| 
      
 18 
     | 
    
         
            +
                      :method   => 'GET',
         
     | 
| 
      
 19 
     | 
    
         
            +
                      :parser   => Fog::Parsers::Slicehost::GetBackups.new,
         
     | 
| 
      
 20 
     | 
    
         
            +
                      :path     => 'backups.xml'
         
     | 
| 
      
 21 
     | 
    
         
            +
                    )
         
     | 
| 
      
 22 
     | 
    
         
            +
                  end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                end
         
     | 
| 
      
 25 
     | 
    
         
            +
              end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            else
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
              module Fog
         
     | 
| 
      
 30 
     | 
    
         
            +
                class Slicehost
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def get_backups
         
     | 
| 
      
 33 
     | 
    
         
            +
                  end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            end
         
     |