Created
March 15, 2012 08:50
-
-
Save yaronp68/2043033 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| private String createServer(final String token, final CloudTemplate serverTemplate) | |
| throws OpenstackException { | |
| final String serverName = this.serverNamePrefix + System.currentTimeMillis(); | |
| final String securityGroup = getCustomTemplateValue( | |
| serverTemplate, OPENSTACK_SECURITYGROUP, null, false); | |
| final String keyPairName = getCustomTemplateValue( | |
| serverTemplate, OPENSTACK_KEY_PAIR, null, false); | |
| // Start the machine! | |
| final String json = | |
| "{\"server\":{ \"name\":\"" + serverName + "\",\"imageRef\":\"" + serverTemplate.getImageId() | |
| + "\",\"flavorRef\":\"" + serverTemplate.getHardwareId() + "\",\"key_name\":\"" + keyPairName | |
| + "\",\"security_groups\":[{\"name\":\"" + securityGroup + "\"}]}}"; | |
| String serverBootResponse = null; | |
| try { | |
| serverBootResponse = service.path( | |
| this.pathPrefix + "servers").header( | |
| "Content-Type", "application/json").header( | |
| "X-Auth-Token", token).accept( | |
| MediaType.APPLICATION_XML).post( | |
| String.class, json); | |
| } catch (final UniformInterfaceException e) { | |
| throw new OpenstackException(e); | |
| } | |
| try { | |
| // if we are here, the machine started! | |
| final Document doc = documentBuilder.parse(new InputSource(new StringReader(serverBootResponse))); | |
| final String status = xpath.evaluate( | |
| "/server/@status", doc); | |
| if (!status.startsWith("BUILD")) { | |
| throw new IllegalStateException("Expected server status of BUILD(*), got: " + status); | |
| } | |
| final String serverId = xpath.evaluate( | |
| "/server/@id", doc); | |
| return serverId; | |
| } catch (XPathExpressionException e) { | |
| throw new OpenstackException("Failed to parse XML Response from server. Response was: " | |
| + serverBootResponse + ", Error was: " + e.getMessage(), e); | |
| } catch (SAXException e) { | |
| throw new OpenstackException("Failed to parse XML Response from server. Response was: " | |
| + serverBootResponse + ", Error was: " + e.getMessage(), e); | |
| } catch (IOException e) { | |
| throw new OpenstackException("Failed to send request to server. Response was: " + serverBootResponse | |
| + ", Error was: " + e.getMessage(), e); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment