Skip to content

Instantly share code, notes, and snippets.

@icambridge
Created February 12, 2012 10:59
Show Gist options
  • Save icambridge/1807870 to your computer and use it in GitHub Desktop.
Save icambridge/1807870 to your computer and use it in GitHub Desktop.
Rackspace Clould Server termination
<?php
if ('master' == gethostname()) {
exit;
}
require_once "rscapi.php";
define("API_USER", "");
define("API_KEY", "");
define("LOADBALANCER_ID",);
$rsc = new RscApi(API_USER, API_KEY);
$servers = $rsc->serverList(true);
foreach($servers as $server) {
if ($server['name'] == gethostname()) {
break;
}
}
$privateIp = $server['addresses']['private'][0];
$nodes = $rsc->loadBalancerDetails(LOADBALANCER_ID, true);
foreach ($nodes['nodes'] as $node) {
if ($node['address'] == $privateIp) {
break;
}
}
$rsc->loadBalancerRemoveNode(LOADBALANCER_ID,$node['id']);
exec("/etc/init.d/apache2 graceful-stop");
// Wait for apache to stop.
do {
sleep(5);
} while(fsockopen('127.0.0.1',80));
$rsc->serverDelete($server['id']);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment