X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FOyster%2FProvision%2FRackspace.pm;h=f1127d194be408024e978dee4573fd6e904eacb7;hb=e4c303246b11e0ccd6606d601a9c3e5836c95474;hp=e9c83984b18da366d2909252e61ac9d3f36461a3;hpb=1f1bb35ee6999b168b62a42a9cd89998b19ce7d7;p=p5sagit%2FOyster.git diff --git a/lib/Oyster/Provision/Rackspace.pm b/lib/Oyster/Provision/Rackspace.pm index e9c8398..f1127d1 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 { - return $ENV{RACKSPACE_USER} if exists $ENV{RACKSPACE_USER}; - confess "Need api_username or RACKSPACE_USER in environment"; -}); -has 'api_key' => ( is => 'ro', isa => 'Str', required => 1, default => sub { - return $ENV{RACKSPACE_KEY} if exists $ENV{RACKSPACE_KEY}; - confess "Need api_key or RACKSPACE_KEY in environment"; -}); +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_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_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,7 +47,7 @@ sub create { # Build the server my $server = Net::RackSpace::CloudServers::Server->new( - cloudservers => $self->_cs, + cloudservers => $self->_rs, name => $self->name, flavor => $self->size, image => $self->image, @@ -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