var sys = require('sys'), http = require('http'); var AUTH_USER = ''; var AUTH_API_KEY = ''; function GetPage(host, port, user, api_key, callback) { sys.puts("Starting GetPage Method..."); var authServer = http.createClient(80, host); sys.puts("AuthServer created..."); var authReq = authServer.request( 'GET', '/v1.0', { 'X-Auth-User': user, 'X-Auth-Key' : api_key } ); authReq.addListener('response', function(response) { authReq.addListener('data', function(response) { sys.puts("Running callback"); //callback.call(response); }); }); authReq.end(); sys.puts("Ending GetPage Method..."); } function Authenticate() { sys.puts("Starting Authenticate Method..."); GetPage("auth.api.rackspacecloud.com", 80, AUTH_USER, AUTH_API_KEY, ProcessResponse); sys.puts("Ending AUthenticate Method..."); } function ProcessResponse(response) { sys.puts("Starting ProcessResponse Method...") if(response.statusCode == 301) { sys.puts("Redirected..."); var split = response.headers["location"].split('/'); var nextServer = http.createClient(443, split[2], true); var nextReq = nextServer.request( 'GET', '/v1.0', { 'Host' : split[2], 'X-Auth-User': AUTH_USER, 'X-Auth-Key' : AUTH_API_KEY, } ); nextReq.addListener('response', function(response) { nextReq.addListener('end', ProcessResponse(response)); }); nextReq.end(); } else { sys.puts("Final Dest."); RETURNED.X_STORAGE = res2.headers["x-storage-url"]; RETURNED.X_CDN = res2.headers["x-cdn-management-url"]; RETURNED.X_AUTH_TOKEN = res2.headers["x-auth-token"]; RETURNED.X_STORAGE_TOKEN = res2.headers["x-storage-token"]; callback(RETURNED); } } Authenticate(); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type' : 'text/plain'}); response.end(request); sys.log("Request Processed"); }).listen(8000); sys.puts("Server listening on port 8000...");