public void testAllocateWhenAllocationReturnsIpIsAddedToServerAndUpdatesNodeMetadataButSavesCredentials() throws Exception { HttpResponse createFloatingIPResponse = HttpResponse.builder().statusCode(200).payload( payloadFromResource("/floatingip_details.json")).build(); HttpRequest addFloatingIPRequest = addFloatingIPForAddress("10.0.0.3"); AllocateAndAddFloatingIpToNode fn = requestsSendResponses( ImmutableMap.<HttpRequest, HttpResponse> builder().put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess).put(extensionsOfNovaRequest, extensionsOfNovaResponse).put( createFloatingIP, createFloatingIPResponse) .put(addFloatingIPRequest, addFloatingIPResponse).build()).getContext().utils().injector() .getInstance(AllocateAndAddFloatingIpToNode.class); AtomicReference<NodeMetadata> nodeRef = Atomics.newReference(node); fn.apply(nodeRef); NodeMetadata node1 = nodeRef.get(); assertNotNull(node1); assertEquals(node1.getPublicAddresses(), ImmutableSet.of("10.0.0.3")); assertEquals(node1.getCredentials(), node.getCredentials()); }
private HttpRequest addFloatingIPForAddress(String address) { HttpRequest addFloatingIPRequest = HttpRequest.builder().method("POST").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/71592/action")) .headers( ImmutableMultimap.<String, String> builder().put("Accept", "*/*") .put("X-Auth-Token", authToken).build()).payload( payloadFromStringWithContentType("{\"addFloatingIp\":{\"address\":\"" + address + "\"}}", "application/json")).build(); return addFloatingIPRequest; }
.statusCode(400) .payload( payloadFromStringWithContentType( "{\"badRequest\": {\"message\": \"AddressLimitExceeded: Address quota exceeded. You cannot create any more addresses\", \"code\": 400}}", "application/json")).build(); payloadFromResource("/floatingip_list.json")).build(); HttpRequest addFloatingIPRequest = addFloatingIPForAddress("10.0.0.5"); AllocateAndAddFloatingIpToNode fn = requestsSendResponses( ImmutableMap.<HttpRequest, HttpResponse> builder().put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess).put(extensionsOfNovaRequest, extensionsOfNovaResponse).put(
.statusCode(400) .payload( payloadFromStringWithContentType( "{\"badRequest\": {\"message\": \"AddressLimitExceeded: Address quota exceeded. You cannot create any more addresses\", \"code\": 400}}", "application/json")).build(); payloadFromResource("/availability_zone_list.json")).build(); payloadFromResource("/floatingip_list.json")).build(); HttpRequest addFloatingIPRequest = addFloatingIPForAddress("10.0.0.5"); AllocateAndAddFloatingIpToNode fn = requestsSendResponses( ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess)
.statusCode(404) .payload( payloadFromStringWithContentType( "{\"badRequest\": {\"message\": \"AddressLimitExceeded: Address quota exceeded. You cannot create any more addresses\", \"code\": 404}}", "application/json")).build(); payloadFromResource("/availability_zone_list.json")).build(); payloadFromResource("/floatingip_list.json")).build(); HttpRequest addFloatingIPRequest = addFloatingIPForAddress("10.0.0.5"); AllocateAndAddFloatingIpToNode fn = requestsSendResponses( ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess)
public void testAllocateWhenAllocationReturnsIpIsAddedToServerAndUpdatesNodeMetadataButSavesCredentials() throws Exception { HttpResponse createFloatingIPResponse = HttpResponse.builder().statusCode(200).payload( payloadFromResource("/floatingip_details.json")).build(); payloadFromResource("/availability_zone_list.json")).build(); HttpRequest addFloatingIPRequest = addFloatingIPForAddress("10.0.0.3"); AllocateAndAddFloatingIpToNode fn = requestsSendResponses( ImmutableMap.<HttpRequest, HttpResponse> builder() .put(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess)
private HttpRequest addFloatingIPForAddress(String address) { HttpRequest addFloatingIPRequest = HttpRequest.builder().method("POST").endpoint( URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/servers/71592/action")) .headers( ImmutableMultimap.<String, String> builder().put("Accept", "application/json") .put("X-Auth-Token", authToken).build()).payload( payloadFromStringWithContentType("{\"addFloatingIp\":{\"address\":\"" + address + "\"}}", "application/json")).build(); return addFloatingIPRequest; }