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=31e5973a5e42089411e7fb94e8bb8d0452403c92;hpb=758d921f04c9c33e9673979a92a652837e05791e;p=p5sagit%2FOyster.git diff --git a/lib/Oyster/Provision/Rackspace.pm b/lib/Oyster/Provision/Rackspace.pm index 31e5973..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 { +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,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