@Override public Iterable<ServerInZone> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInZone>() { @Override public boolean apply(ServerInZone server) { return contains(ids, server.slashEncode()); } }); }
@Override public Iterable<ImageInZone> listImages() { return Iterables.filter(super.listImages(), new Predicate<ImageInZone>() { @Override public boolean apply(ImageInZone arg0) { String imageName = arg0.getImage().getName(); return imageName.indexOf("Kernel") == -1 && imageName.indexOf("Ramdisk") == -1; } @Override public String toString() { return "notKernelOrRamdisk"; } }); } }
NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server);
final String message = format("Server %s was not created within %sms so it will be destroyed.", name, "30 * 60"); logger.warn(message); destroyNode(lightweightServer.getId()); throw new IllegalStateException(message);
public void testCreateNodeWithGroupEncodedIntoNameWithDiskConfig() throws Exception { HttpRequest createServer = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"2235\",\"flavorRef\":\"100\",\"OS-DCF:diskConfig\":\"AUTO\"}}", "application/json")) .build(); HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted") .payload(payloadFromResourceWithContentType("/new_server_disk_config_auto.json", "application/json; charset=UTF-8")).build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess) .put(extensionsOfNovaRequest, extensionsOfNovaResponse) .put(listDetail, listDetailResponse) .put(listFlavorsDetail, listFlavorsDetailResponse) .put(createServer, createServerResponse) .put(serverDetail, serverDetailResponse).build(); Injector forDiskConfig = requestsSendResponses(requestResponseMap); Template template = forDiskConfig.getInstance(TemplateBuilder.class).build(); template.getOptions().as(NovaTemplateOptions.class).diskConfig(Server.DISK_CONFIG_AUTO); NovaComputeServiceAdapter adapter = forDiskConfig.getInstance(NovaComputeServiceAdapter.class); NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getNode().getServer().getDiskConfig().orNull(), Server.DISK_CONFIG_AUTO); }
@Override public Iterable<ServerInZone> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInZone>() { @Override public boolean apply(ServerInZone server) { return contains(ids, server.slashEncode()); } }); }
NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server);
@Override public Iterable<ServerInZone> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInZone>() { @Override public boolean apply(ServerInZone server) { return contains(ids, server.slashEncode()); } }); }
public void testCreateNodeWithGroupEncodedIntoNameWithNetworks() throws Exception { HttpRequest createServer = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"2235\",\"flavorRef\":\"100\",\"networks\":[{\"uuid\":\"4ebd35cf-bfe7-4d93-b0d8-eb468ce2245a\"}]}}", "application/json")) .build(); HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted") .payload(payloadFromResourceWithContentType("/new_server_networks_response.json", "application/json; charset=UTF-8")).build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess) .put(extensionsOfNovaRequest, extensionsOfNovaResponse) .put(listDetail, listDetailResponse) .put(listFlavorsDetail, listFlavorsDetailResponse) .put(createServer, createServerResponse) .put(serverDetail, serverDetailResponse).build(); Injector forNetworks = requestsSendResponses(requestResponseMap); Template template = forNetworks.getInstance(TemplateBuilder.class).build(); template.getOptions().as(NovaTemplateOptions.class).networks("4ebd35cf-bfe7-4d93-b0d8-eb468ce2245a"); NovaComputeServiceAdapter adapter = forNetworks.getInstance(NovaComputeServiceAdapter.class); NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); // Response irrelevant in this expect test - just verifying the request. }
@Override public Iterable<ServerInRegion> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInRegion>() { @Override public boolean apply(ServerInRegion server) { return contains(ids, server.slashEncode()); } }); }
public void testCreateNodeWithGroupEncodedIntoNameWithConfigDrive() throws Exception { HttpRequest createServer = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"2235\",\"flavorRef\":\"100\",\"config_drive\":\"true\"}}", "application/json")) .build(); HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted") .payload(payloadFromResourceWithContentType("/new_server_config_drive.json", "application/json; charset=UTF-8")).build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess) .put(extensionsOfNovaRequest, extensionsOfNovaResponse) .put(listDetail, listDetailResponse) .put(listFlavorsDetail, listFlavorsDetailResponse) .put(createServer, createServerResponse) .put(serverDetail, serverDetailResponse).build(); Injector forConfigDrive = requestsSendResponses(requestResponseMap); Template template = forConfigDrive.getInstance(TemplateBuilder.class).build(); template.getOptions().as(NovaTemplateOptions.class).configDrive(true); NovaComputeServiceAdapter adapter = forConfigDrive.getInstance(NovaComputeServiceAdapter.class); NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); }
@Override public Iterable<ServerInRegion> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInRegion>() { @Override public boolean apply(ServerInRegion server) { return contains(ids, server.slashEncode()); } }); }
public void testCreateNodeWithGroupEncodedIntoNameWhenSecurityGroupsArePresent() throws Exception { HttpRequest createServer = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"1241\",\"flavorRef\":\"100\",\"security_groups\":[{\"name\":\"group1\"}, {\"name\":\"group2\"}]}}","application/json")) .build(); HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted") .payload(payloadFromResourceWithContentType("/new_server.json","application/json; charset=UTF-8")).build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess) .put(extensionsOfNovaRequest, extensionsOfNovaResponse) .put(listDetail, listDetailResponse) .put(listFlavorsDetail, listFlavorsDetailResponse) .put(createServer, createServerResponse) .put(serverDetail, serverDetailResponse).build(); Injector forSecurityGroups = requestsSendResponses(requestResponseMap); Template template = forSecurityGroups.getInstance(TemplateBuilder.class).build(); template.getOptions().as(NovaTemplateOptions.class).securityGroupNames("group1", "group2"); NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class); NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getCredentials(), LoginCredentials.builder().password("ZWuHcmTMQ7eXoHeM").build()); }
@Override public Iterable<ServerInRegion> listNodesByIds(final Iterable<String> ids) { return filter(listNodes(), new Predicate<ServerInRegion>() { @Override public boolean apply(ServerInRegion server) { return contains(ids, server.slashEncode()); } }); }
public void testCreateNodeWithGroupEncodedIntoNameWhenSecurityGroupsArePresent() throws Exception { HttpRequest createServer = HttpRequest .builder() .method("POST") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken) .payload(payloadFromStringWithContentType( "{\"server\":{\"name\":\"test-e92\",\"imageRef\":\"2235\",\"flavorRef\":\"100\",\"security_groups\":[{\"name\":\"group1\"},{\"name\":\"group2\"}]}}", "application/json")) .build(); HttpResponse createServerResponse = HttpResponse.builder().statusCode(202).message("HTTP/1.1 202 Accepted") .payload(payloadFromResourceWithContentType("/new_server.json", "application/json; charset=UTF-8")).build(); Map<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess) .put(extensionsOfNovaRequest, extensionsOfNovaResponse) .put(listDetail, listDetailResponse) .put(listFlavorsDetail, listFlavorsDetailResponse) .put(createServer, createServerResponse) .put(serverDetail, serverDetailResponse).build(); Injector forSecurityGroups = requestsSendResponses(requestResponseMap); Template template = forSecurityGroups.getInstance(TemplateBuilder.class).build(); template.getOptions().as(NovaTemplateOptions.class).securityGroups("group1", "group2"); NovaComputeServiceAdapter adapter = forSecurityGroups.getInstance(NovaComputeServiceAdapter.class); NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server); assertEquals(server.getCredentials(), LoginCredentials.builder().password("ZWuHcmTMQ7eXoHeM").build()); }
NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server);
.privateKey("privateKey").build()); NodeAndInitialCredentials<ServerInZone> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server);
NodeAndInitialCredentials<ServerInRegion> server = adapter.createNodeWithGroupEncodedIntoName("test", "test-e92", template); assertNotNull(server);