Removed compilation error, fixed _rs
[p5sagit/Oyster.git] / lib / Oyster / Provision / Rackspace.pm
index 66d9ade..f1127d1 100644 (file)
@@ -7,15 +7,17 @@ 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_password' => ( 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_password or CLOUDSERVERS_KEY in environment";
-});
+}
 
 has '_rs' => ( is => 'rw', isa => 'Net::RackSpace::CloudServers', default => sub {
     my $self = shift;
@@ -26,16 +28,6 @@ has '_rs' => ( is => 'rw', isa => 'Net::RackSpace::CloudServers', default => sub
     $rs;
 });
 
-after BUILD => sub {
-    my $self = shift;
-    # get api username and key from config?
-    my $config = $self->config;
-    
-
-    
-    # ...
-};
-
 sub create {
    my $self = shift;
 
@@ -55,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,