Root password given only on returned object
[p5sagit/Oyster.git] / lib / Oyster / Provision / Rackspace.pm
index 6929a9a..10f92fd 100644 (file)
@@ -58,10 +58,21 @@ sub create {
            },
       ],
    );
-   $server->create_server;
-
-   warn "Server public IP is:  ", ($server->public_address)[0], "\n";
-   warn "Server root password: ", $server->adminpass, "\n";
+   my $newserver = $server->create_server;
+   warn "Server root password: ", $newserver->adminpass, "\n";
+
+   do {
+      $|=1;
+      my @tmpservers = $self->_rs->get_server_detail();
+      $server = ( grep { $_->name eq $self->name } @tmpservers )[0];
+      print "\rServer status: ", ($server->status || '?'), " progress: ", ($server->progress || '?');
+      if ( ( $server->status // '' ) ne 'ACTIVE' ) {
+        print " sleeping..";
+        sleep 2;
+      }
+   } while ( ( $server->status // '' ) ne 'ACTIVE' );
+
+   warn "Server public IP is: @{$server->public_address}\n";
 
    # Connect to server and execute installation routines?
    # Use Net::SSH?