X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FOyster%2FProvision%2FRackspace.pm;h=6929a9a279016de4691e9c1afd3a5be08485252e;hb=6895749d358fc3388e5b52208725f5d0d6e35af6;hp=31e5973a5e42089411e7fb94e8bb8d0452403c92;hpb=758d921f04c9c33e9673979a92a652837e05791e;p=p5sagit%2FOyster.git diff --git a/lib/Oyster/Provision/Rackspace.pm b/lib/Oyster/Provision/Rackspace.pm index 31e5973..6929a9a 100644 --- a/lib/Oyster/Provision/Rackspace.pm +++ b/lib/Oyster/Provision/Rackspace.pm @@ -7,31 +7,27 @@ use MIME::Base64; requires 'config'; -has 'api_username' => ( is => 'ro', isa => 'Str', required => 1, default => sub { +has 'api_username' => ( is => 'ro', isa => 'Str', required => 1, lazy_build => 1); +sub _build_api_username { return $ENV{CLOUDSERVERS_USER} if exists $ENV{CLOUDSERVERS_USER}; confess "Need api_username or CLOUDSERVERS_USER in environment"; -}); -has 'api_key' => ( is => 'ro', isa => 'Str', required => 1, default => sub { +} + +has 'api_password' => ( is => 'ro', isa => 'Str', required => 1, lazy_build => 1); +sub _build_api_password { return $ENV{CLOUDSERVERS_KEY} if exists $ENV{CLOUDSERVERS_KEY}; - confess "Need api_key or RACKSPACE_KEY in environment"; -}); + confess "Need api_password or CLOUDSERVERS_KEY in environment"; +} has '_rs' => ( is => 'rw', isa => 'Net::RackSpace::CloudServers', default => sub { my $self = shift; my $rs = Net::RackSpace::CloudServers->new( user => $self->api_username, - key => $self->api_key, + key => $self->api_password, ); $rs; }); -sub BUILD { - my $self = shift; - # get api username and key from config? - my $config = $self->config; - # ... -} - sub create { my $self = shift; @@ -51,16 +47,16 @@ sub create { # Build the server my $server = Net::RackSpace::CloudServers::Server->new( - cloudservers => $self->_cs, - name => $self->name, - flavor => $self->size, - image => $self->image, - personality => [ + cloudservers => $self->_rs, + name => $self->name, + flavorid => $self->size, + imageid => $self->image, + personality => [ { path => $self->pub_ssh, contents => encode_base64($pub_ssh), }, - ], + ], ); $server->create_server; @@ -111,7 +107,9 @@ The following are required to instantiate a backend: The rackspace API username, or C<$ENV{RACKSPACE_USER}> will be used if that is not given -=item api_key +=item password + +This is your rackspace API Key The rackspace API key, or C<$ENV{RACKSPACE_KEY}> will be used if that is not given