From 4c92ee236e62de1a3c503999da59fc656d7ddbba Mon Sep 17 00:00:00 2001 From: Wesley Beary Date: Mon, 20 Jul 2009 19:47:48 -0700 Subject: [PATCH] doc work --- lib/fog/aws/parsers/s3/get_bucket.rb | 2 ++ lib/fog/aws/requests/ec2/create_snapshot.rb | 9 ++++++++- .../requests/ec2/describe_availability_zones.rb | 5 ++++- lib/fog/aws/requests/ec2/describe_instances.rb | 1 + .../requests/ec2/describe_security_groups.rb | 17 ++++++++++++++++- lib/fog/aws/requests/s3/copy_object.rb | 15 ++++++++++++++- lib/fog/aws/requests/s3/delete_bucket.rb | 3 ++- lib/fog/aws/requests/s3/delete_object.rb | 9 ++++++++- lib/fog/aws/requests/s3/get_bucket.rb | 17 +++++++++++++++++ lib/fog/aws/requests/s3/get_bucket_location.rb | 4 +++- lib/fog/aws/requests/s3/get_object.rb | 9 ++++++++- lib/fog/aws/requests/s3/get_request_payment.rb | 4 +++- lib/fog/aws/requests/s3/get_service.rb | 11 +++++++++-- lib/fog/aws/requests/s3/put_bucket.rb | 4 ++++ lib/fog/aws/requests/s3/put_object.rb | 12 +++++++++++- spec/aws/ec2/describe_security_groups_spec.rb | 8 ++++---- spec/aws/s3/get_bucket_spec.rb | 8 ++++---- spec/aws/s3/get_service_spec.rb | 6 +++--- 18 files changed, 121 insertions(+), 23 deletions(-) diff --git a/lib/fog/aws/parsers/s3/get_bucket.rb b/lib/fog/aws/parsers/s3/get_bucket.rb index 9c1c80440..b498cfa63 100644 --- a/lib/fog/aws/parsers/s3/get_bucket.rb +++ b/lib/fog/aws/parsers/s3/get_bucket.rb @@ -15,6 +15,8 @@ module Fog when 'Contents' @response[:contents] << @object @object = { :owner => {} } + when 'Delimeter' + @object[:delimiter] = @value when 'DisplayName' @object[:owner][:display_name] = @value when 'ETag' diff --git a/lib/fog/aws/requests/ec2/create_snapshot.rb b/lib/fog/aws/requests/ec2/create_snapshot.rb index fc611af3f..491453308 100644 --- a/lib/fog/aws/requests/ec2/create_snapshot.rb +++ b/lib/fog/aws/requests/ec2/create_snapshot.rb @@ -8,7 +8,14 @@ module Fog # * volume_id<~String> - Id of EBS volume to snapshot # # ==== Returns - # FIXME: docs + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :progress<~String> - The percentage progress of the snapshot + # * :request_id<~String> - id of request + # * :snapshot_id<~String> - id of snapshot + # * :start_time<~Time> - timestamp when snapshot was initiated + # * :status<~String> - state of snapshot + # * :volume_id<~String> - id of volume snapshot targets def create_snapshot(volume_id) request({ 'Action' => 'CreateSnapshot', diff --git a/lib/fog/aws/requests/ec2/describe_availability_zones.rb b/lib/fog/aws/requests/ec2/describe_availability_zones.rb index 3eb2b3bdb..dd09b09d2 100644 --- a/lib/fog/aws/requests/ec2/describe_availability_zones.rb +++ b/lib/fog/aws/requests/ec2/describe_availability_zones.rb @@ -11,7 +11,10 @@ module Fog # * response<~Fog::AWS::Response>: # * body<~Hash>: # * :request_id<~String> - Id of request - # FIXME: docs + # * :availability_zone_info<~Array>: + # * :region_name<~String> - Name of region + # * :zone_name<~String> - Name of zone + # * :zone_state<~String> - State of zone def describe_availability_zones(zone_name = []) params = indexed_params('ZoneName', zone_name) request({ diff --git a/lib/fog/aws/requests/ec2/describe_instances.rb b/lib/fog/aws/requests/ec2/describe_instances.rb index c3d9587d6..68ee65599 100644 --- a/lib/fog/aws/requests/ec2/describe_instances.rb +++ b/lib/fog/aws/requests/ec2/describe_instances.rb @@ -11,6 +11,7 @@ module Fog # * response<~Fog::AWS::Response>: # * body<~Hash>: # * :request_id<~String> - Id of request + # FIXME: docs def describe_instances(instance_id = []) params = indexed_params('InstanceId', instance_id) request({ diff --git a/lib/fog/aws/requests/ec2/describe_security_groups.rb b/lib/fog/aws/requests/ec2/describe_security_groups.rb index efabf7731..6b2ec9bd7 100644 --- a/lib/fog/aws/requests/ec2/describe_security_groups.rb +++ b/lib/fog/aws/requests/ec2/describe_security_groups.rb @@ -8,7 +8,22 @@ module Fog # * group_name<~Array> - List of groups to describe, defaults to all # # === Returns - # FIXME: docs + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :request_id<~String> - Id of request + # * :security_group_info<~Array>: + # * :group_description<~String> - Description of security group + # * :group_name<~String> - Name of security group + # * :ip_permissions<~Array>: + # * :from_port<~Integer> - Start of port range (or -1 for ICMP wildcard) + # * :groups<~Array>: + # * :group_name<~String> - Name of security group + # * :user_id<~String> - AWS User Id of account + # * :ip_protocol<~String> - Ip protocol, must be in ['tcp', 'udp', 'icmp'] + # * :ip_ranges<~Array>: + # * :cidr_ip<~String> - CIDR range + # * :to_port<~Integer> - End of port range (or -1 for ICMP wildcard) + # * :owner_id<~String> - AWS Access Key Id of the owner of the security group def describe_security_groups(group_name = []) params = indexed_params('GroupName', group_name) request({ diff --git a/lib/fog/aws/requests/s3/copy_object.rb b/lib/fog/aws/requests/s3/copy_object.rb index 6792e099d..9b9e8a513 100644 --- a/lib/fog/aws/requests/s3/copy_object.rb +++ b/lib/fog/aws/requests/s3/copy_object.rb @@ -3,7 +3,20 @@ module Fog class S3 # Copy an object from one S3 bucket to another - # FIXME: docs + # + # ==== Parameters + # * source_bucket_name<~String> - Name of source bucket + # * source_object_name<~String> - Name of source object + # * destination_bucket_name<~String> - Name of bucket to create copy in + # * destination_object_name<~String> - Name for new copy of object + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :etag<~String> - etag of new object + # * :last_modified<~Time> - date object was last modified + # + # FIXME: allow for optional params, see aws docs def copy_object(source_bucket_name, source_object_name, destination_bucket_name, destination_object_name) request({ :expects => 200, diff --git a/lib/fog/aws/requests/s3/delete_bucket.rb b/lib/fog/aws/requests/s3/delete_bucket.rb index 979a624f5..51338e7b0 100644 --- a/lib/fog/aws/requests/s3/delete_bucket.rb +++ b/lib/fog/aws/requests/s3/delete_bucket.rb @@ -8,7 +8,8 @@ module Fog # * bucket_name<~String> - name of bucket to delete # # ==== Returns - # FIXME: docs + # * response<~Fog::AWS::Response>: + # * status<~Integer> - 204 def delete_bucket(bucket_name) request({ :expects => 204, diff --git a/lib/fog/aws/requests/s3/delete_object.rb b/lib/fog/aws/requests/s3/delete_object.rb index a19e2fc18..08600d10b 100644 --- a/lib/fog/aws/requests/s3/delete_object.rb +++ b/lib/fog/aws/requests/s3/delete_object.rb @@ -3,7 +3,14 @@ module Fog class S3 # Delete an object from S3 - # FIXME: docs + # + # ==== Parameters + # * bucket_name<~String> - Name of bucket containing object to delete + # * object_name<~String> - Name of object to delete + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * status<~Integer> - 204 def delete_object(bucket_name, object_name) request({ :expects => 204, diff --git a/lib/fog/aws/requests/s3/get_bucket.rb b/lib/fog/aws/requests/s3/get_bucket.rb index 3e58c37eb..e5bce0aee 100644 --- a/lib/fog/aws/requests/s3/get_bucket.rb +++ b/lib/fog/aws/requests/s3/get_bucket.rb @@ -13,6 +13,23 @@ module Fog # * maxkeys - limits number of object keys returned # * :delimiter - causes keys with the same string between the prefix # value and the first occurence of delimiter to be rolled up + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :delimeter<~String> - Delimiter specified for query + # * :marker<~String> - Marker specified for query + # * :max_keys<~Integer> - Maximum number of keys specified for query + # * :name<~String> - Name of the bucket + # * :prefix<~String> - Prefix specified for query + # * :contents<~Array>: + # * :key<~String>: Name of object + # * :last_modified<~String>: Timestamp of last modification of object + # * :owner<~Hash>: + # * :display_name<~String> - Display name of object owner + # * :id<~String> - Id of object owner + # * :size<~Integer> - Size of object + # * :storage_class<~String> - Storage class of object def get_bucket(bucket_name, options = {}) options['max-keys'] = options.delete(:maxkeys) if options[:maxkeys] query = '?' diff --git a/lib/fog/aws/requests/s3/get_bucket_location.rb b/lib/fog/aws/requests/s3/get_bucket_location.rb index 18d8650ff..bbfe94ec7 100644 --- a/lib/fog/aws/requests/s3/get_bucket_location.rb +++ b/lib/fog/aws/requests/s3/get_bucket_location.rb @@ -8,7 +8,9 @@ module Fog # * bucket_name<~String> - name of bucket to get location constraint for # # ==== Returns - # FIXME: docs + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :location_constraint<~String> - Location constraint of the bucket def get_bucket_location(bucket_name) request({ :expects => 200, diff --git a/lib/fog/aws/requests/s3/get_object.rb b/lib/fog/aws/requests/s3/get_object.rb index 9353961fb..e804dfb16 100644 --- a/lib/fog/aws/requests/s3/get_object.rb +++ b/lib/fog/aws/requests/s3/get_object.rb @@ -3,7 +3,14 @@ module Fog class S3 # Get an object from S3 - # FIXME: docs + # ==== Parameters + # * bucket_name<~String> - Name of bucket to read from + # * object_name<~String> - Name of object to read + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * body<~String> - Contents of object + # FIXME: headers def get_object(bucket_name, object_name) request({ :expects => 200, diff --git a/lib/fog/aws/requests/s3/get_request_payment.rb b/lib/fog/aws/requests/s3/get_request_payment.rb index 361b2cd81..7ae5f0c54 100644 --- a/lib/fog/aws/requests/s3/get_request_payment.rb +++ b/lib/fog/aws/requests/s3/get_request_payment.rb @@ -8,7 +8,9 @@ module Fog # * bucket_name<~String> - name of bucket to get payer for # # ==== Returns - # FIXME: docs + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :payer<~String> - Specifies who pays for download and requests def get_request_payment(bucket_name) request({ :expects => 200, diff --git a/lib/fog/aws/requests/s3/get_service.rb b/lib/fog/aws/requests/s3/get_service.rb index 08e32c9c9..24ac6d1ad 100644 --- a/lib/fog/aws/requests/s3/get_service.rb +++ b/lib/fog/aws/requests/s3/get_service.rb @@ -4,8 +4,15 @@ module Fog # List information about S3 buckets for authorized user # - # ==== Parameters - # FIXME: docs + # ==== Returns + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :buckets<~Hash>: + # * :name<~String> - Name of bucket + # * :creation_time<~Time> - Timestamp of bucket creation + # * :owner<~Hash>: + # * :display_name<~String> - Display name of bucket owner + # * :id<~String> - Id of bucket owner def get_service request({ :expects => 200, diff --git a/lib/fog/aws/requests/s3/put_bucket.rb b/lib/fog/aws/requests/s3/put_bucket.rb index 831f2aaf3..b89b1bfa9 100644 --- a/lib/fog/aws/requests/s3/put_bucket.rb +++ b/lib/fog/aws/requests/s3/put_bucket.rb @@ -8,6 +8,10 @@ module Fog # * bucket_name<~String> - name of bucket to create # * options<~Hash> - config arguments for bucket. Defaults to {}. # * :location_constraint<~Symbol> - sets the location for the bucket + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * status<~Integer> - 200 def put_bucket(bucket_name, options = {}) if options[:location_constraint] data = diff --git a/lib/fog/aws/requests/s3/put_object.rb b/lib/fog/aws/requests/s3/put_object.rb index dbad1d1f0..3bbd03a1a 100644 --- a/lib/fog/aws/requests/s3/put_object.rb +++ b/lib/fog/aws/requests/s3/put_object.rb @@ -3,7 +3,17 @@ module Fog class S3 # Create an object in an S3 bucket - # FIXME: docs + # + # ==== Parameters + # * bucket_name<~String> - Name of bucket to create object in + # * object_name<~String> - Name of object to create + # * object<~String> - File to create object from + # FIXME: deal with optional params + # + # ==== Returns + # * response<~Fog::AWS::Response>: + # * body<~Hash>: + # * :etag<~String> - etag of new object def put_object(bucket_name, object_name, object, options = {}) file = parse_file(object) request({ diff --git a/spec/aws/ec2/describe_security_groups_spec.rb b/spec/aws/ec2/describe_security_groups_spec.rb index 17f4edd86..8803936f9 100644 --- a/spec/aws/ec2/describe_security_groups_spec.rb +++ b/spec/aws/ec2/describe_security_groups_spec.rb @@ -16,14 +16,14 @@ describe 'EC2.describe_security_groups' do ip_permission = security_group[:ip_permissions].first ip_permission[:groups].should be_an(Array) group = ip_permission[:groups].first - group[:user_id].should be_a(String) group[:group_name].should be_a(String) + group[:user_id].should be_a(String) ip_permission[:from_port].should be_an(Integer) ip_permission[:ip_protocol].should be_a(String) ip_permission[:ip_ranges].should be_an(Array) ip_permission[:to_port].should be_an(Integer) end - + it "should return proper attributes with params" do actual = ec2.describe_security_groups('default') actual.body[:request_id].should be_a(String) @@ -31,15 +31,15 @@ describe 'EC2.describe_security_groups' do security_group = actual.body[:security_group_info].select do |security_group| security_group[:group_name] == 'default' end.first - security_group[:group_description].should be_a(String) security_group[:group_name].should be_a(String) + security_group[:group_description].should be_a(String) security_group[:owner_id].should be_a(String) security_group[:ip_permissions].should be_an(Array) ip_permission = security_group[:ip_permissions].first ip_permission[:groups].should be_an(Array) group = ip_permission[:groups].first - group[:user_id].should be_a(String) group[:group_name].should be_a(String) + group[:user_id].should be_a(String) ip_permission[:from_port].should be_an(Integer) ip_permission[:ip_protocol].should be_a(String) ip_permission[:ip_ranges].should be_an(Array) diff --git a/spec/aws/s3/get_bucket_spec.rb b/spec/aws/s3/get_bucket_spec.rb index a56c72582..05ac86430 100644 --- a/spec/aws/s3/get_bucket_spec.rb +++ b/spec/aws/s3/get_bucket_spec.rb @@ -15,18 +15,18 @@ describe 'S3.get_bucket' do it 'should return proper attributes' do actual = s3.get_bucket('foggetbucket') - actual.status.should == 200 - actual.body[:name].should be_a(String) actual.body[:is_truncated].should == false actual.body[:marker].should be_a(String) actual.body[:max_keys].should be_an(Integer) + actual.body[:name].should be_a(String) actual.body[:prefix].should be_a(String) actual.body[:contents].should be_an(Array) object = actual.body[:contents].first object[:key].should == 'fog_get_bucket' object[:last_modified].should be_a(Time) - object[:owner][:display_name].should be_a(String) - object[:owner][:id].should be_a(String) + owner = object[:owner] + owner[:display_name].should be_a(String) + owner[:id].should be_a(String) object[:size].should be_an(Integer) object[:storage_class].should be_a(String) end diff --git a/spec/aws/s3/get_service_spec.rb b/spec/aws/s3/get_service_spec.rb index 5f877af0c..68d3b8dc5 100644 --- a/spec/aws/s3/get_service_spec.rb +++ b/spec/aws/s3/get_service_spec.rb @@ -12,13 +12,13 @@ describe 'S3.get_service' do it 'should return proper_attributes' do actual = s3.get_service - actual.status.should == 200 - actual.body[:owner][:display_name].should be_a(String) - actual.body[:owner][:id].should be_a(String) actual.body[:buckets].should be_an(Array) bucket = actual.body[:buckets].select {|bucket| bucket[:name] == 'foggetservice'}.first bucket[:creation_date].should be_a(Time) bucket[:name].should == 'foggetservice' + owner = actual.body[:owner] + owner[:display_name].should be_a(String) + owner[:id].should be_a(String) end it 'should include foggetservice in get_service' do