Class: RightScale::CloudApi::AWS::SDB::Manager

Inherits:
Manager
  • Object
show all
Defined in:
lib/cloud/aws/sdb/manager.rb

Overview

Amazon Simple DB (SDB) compatible manager (thread safe).

Examples:

require "right_aws_api"

# Create a manager to access SDB.
sdb = RightScale::CloudApi::AWS::SDB::Manager::new(key, secret, 'https://sdb.amazonaws.com' )

sdb.ListDomains #=> 
  {"ListDomainsResponse"=>
    {"ListDomainsResult"=>
      {"DomainName"=>
        ["kd_tests",
         "kdclient"]},
     "ResponseMetadata"=>
      {"RequestId"=>"d430ab64-18ff-b529-fc0c-0cae65d68203",
       "BoxUsage"=>"0.0000071759"},
     "@xmlns"=>"http://sdb.amazonaws.com/doc/2009-04-15/"}}
sdb.PutAttributes('DomainName'   => 'kdclient',
                  'ItemName'     => 'Employee',
                  'Attribute' => [ { 'Name' => 'name', 'Value' => 'John' },
                                    { 'Name' => 'age',  'Value' => '33' },
                                    { 'Name' => 'sex',  'Value' => 'male } ]) #=>
  {"PutAttributesResponse"=>
    {"ResponseMetadata"=>
      {"RequestId"=>"210d06ce-8b15-0035-1084-baec98874f75",
       "BoxUsage"=>"0.0000219961"},
     "@xmlns"=>"http://sdb.amazonaws.com/doc/2009-04-15/"}}
# BatchPutAttributes
sdb.BatchPutAttributes( "DomainName"               => "kdclient",
                        "Item.1.ItemName"          => "konstantin",
                        "Item.1.Attribute.1.Name"  => "sex",
                        "Item.1.Attribute.1.Value" => "male",
                        "Item.1.Attribute.2.Name"  => "weight",
                        "Item.1.Attribute.2.Value" => "170",
                        "Item.1.Attribute.3.Name"  => "age",
                        "Item.1.Attribute.3.Value" => "38",
                        "Item.2.ItemName"          => "alex",
                        "Item.2.Attribute.1.Name"  => "sex",
                        "Item.2.Attribute.1.Value" => "male",
                        "Item.2.Attribute.2.Name"  => "weight",
                        "Item.2.Attribute.2.Value" => "188",
                        "Item.2.Attribute.3.Name"  => "age",
                        "Item.2.Attribute.3.Value" => "42",
                        "Item.3.ItemName"          => "diana",
                        "Item.3.Attribute.1.Name"  => "sex",
                        "Item.3.Attribute.1.Value" => "female",
                        "Item.3.Attribute.2.Name"  => "weight",
                        "Item.3.Attribute.2.Value" => "120",
                        "Item.3.Attribute.3.Name"  => "age",
                        "Item.3.Attribute.3.Value" => "25" ) 

# ... the same as the call above (see {RightScale::CloudApi::Utils::AWS::parametrize} method usage)
sdb.BatchPutAttributes( 'DomainName' => 'kdclient',
                        'Item' => [ { 'ItemName'   => 'konstantin',
                                       'Attribute' => [ { 'Name' => 'sex',    'Value' => 'male' },
                                                        { 'Name' => 'weight', 'Value' => '170'},
                                                        { 'Name' => 'age',    'Value' => '38'} ] },
                                    { 'ItemName'   => 'alex',
                                      'Attribute'  => [ { 'Name' => 'sex',    'Value' => 'male' },
                                                        { 'Name' => 'weight', 'Value' => '188'},
                                                        { 'Name' => 'age',    'Value' => '42'} ] },
                                    { 'ItemName'   => 'diana',
                                      'Attribute'  => [ { 'Name' => 'sex',    'Value' => 'female' },
                                                        { 'Name' => 'weight', 'Value' => '120'},
                                                        { 'Name' => 'age',    'Value' => '25'} ] } ] ) #=>
  {"BatchPutAttributesResponse"=>
    {"ResponseMetadata"=>
      {"RequestId"=>"4b0d9997-0a51-2c4f-3424-da04225d6ef9",
       "BoxUsage"=>"0.0000461918"},
     "@xmlns"=>"http://sdb.amazonaws.com/doc/2009-04-15/"}}

sdb.Select('SelectExpression' => "select name from kdclient where sex = 'female'")

See Also: