public void testListInstances() { URI endpoint = URI.create("http://172.16.0.1:8776/v1/3456/instances"); InstanceApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/instance_list.json")).build() ).getInstanceApi("RegionOne"); Set<? extends Instance> instances = api.list().toSet(); assertEquals(instances.size(), 2); assertEquals(instances.iterator().next().getSize(), 2); }
public void testDetachVolume() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/instance-1/os-volume_attachments/1"); VolumeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); assertTrue(api.detachVolumeFromServer("1", "instance-1")); }
public void testListSnapshots() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-snapshots"); VolumeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_list.json")).build() ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); Set<? extends VolumeSnapshot> snapshots = api.listSnapshots().toSet(); assertEquals(snapshots, ImmutableSet.of(testSnapshot())); }
public void testDeleteSnapshot() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-snapshots/1"); VolumeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/snapshot_details.json")).build() ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); assertTrue(api.deleteSnapshot("1")); }
public void testListVolumes() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-volumes"); VolumeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list.json")).build() ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); Set<? extends Volume> volumes = api.list().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); }
public void testDetachVolume() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/instance-1/os-volume_attachments/1"); VolumeAttachmentApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).method("DELETE").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/attachment_details.json")).build() ).getVolumeAttachmentExtensionForZone("az-1.region-a.geo-1").get(); assertTrue(api.detachVolumeFromServer("1", "instance-1")); }
public void testListVolumesInDetail() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-volumes/detail"); VolumeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_list_detail.json")).build() ).getVolumeExtensionForZone("az-1.region-a.geo-1").get(); Set<? extends Volume> volumes = api.listInDetail().toSet(); assertEquals(volumes, ImmutableSet.of(testVolume())); }
public void testStartupHost() { HostAdministrationApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, HttpRequest.builder().method("GET") .endpoint("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-hosts/ubuntu/startup") .addHeader("Accept", "application/json") .addHeader("X-Auth-Token", authToken).build(), HttpResponse.builder().statusCode(200) .payload(payloadFromStringWithContentType("{\"host\":\"ubuntu\",\"power_action\":\"startup\"}", MediaType.APPLICATION_JSON)) .build()).getHostAdministrationExtensionForZone("az-1.region-a.geo-1").get(); assertTrue(api.startup("ubuntu")); }
public void testListVolumeTypes() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-volume-types"); VolumeTypeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_list.json")).build() ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); Set<? extends VolumeType> types = api.list().toSet(); assertEquals(types, ImmutableSet.of(testVolumeType())); }
public void testDeleteDomainRecordsWhenResponseIs2xx() throws Exception { DomainApi api = requestSendsResponse( HttpRequest.builder().method("POST").endpoint("https://api.glesys.com/domain/deleterecord/format/json") .addHeader("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==") .addFormParam("recordid", "256151").build(), HttpResponse.builder().statusCode(200) .payload(payloadFromResourceWithContentType("/domain_record.json", MediaType.APPLICATION_JSON)).build()) .getDomainApi(); api.deleteRecord("256151"); }
public void testGetAllExtraSpecs() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/flavors/9/os-extra_specs"); FlavorExtraSpecsApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_extra_specs.json")).build() ).getFlavorExtraSpecsExtensionForZone("az-1.region-a.geo-1").get(); assertEquals(api.getMetadata("9"), ImmutableMap.of("test", "value1")); }
public void testGetServerLimitsWhenResponseIs2xx() throws Exception { ServerApi api = requestSendsResponse( HttpRequest.builder().method("POST").endpoint("https://api.glesys.com/server/limits/format/json") .addHeader("Accept", "application/json") .addHeader("Authorization", "Basic aWRlbnRpdHk6Y3JlZGVudGlhbA==") .addFormParam("serverid", "server321").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_limits.json")).build()) .getServerApi(); api.getLimits("server321"); }
public void testGetAllExtraSpecs() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-volume-types/9/extra_specs"); VolumeTypeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_extra_specs.json")).build() ).getVolumeTypeExtensionForZone("az-1.region-a.geo-1").get(); assertEquals(api.getExtraSpecs("9"), ImmutableMap.of("test", "value1")); }
@Test public void testJAXBResponseParserAnnotationWithCustomValue() throws SecurityException, NoSuchMethodException { TestJAXBApi api = requestSendsResponse( // HttpRequest.builder().method("GET").endpoint("http://mock/jaxb/custom").build(), // HttpResponse.builder().statusCode(200).payload("<test><elem>Hello World</elem></test>").build()); Object result = api.jaxbGetWithAnnotationAndCustomClass(); assertTrue(result instanceof TestJAXBDomain); assertEquals(TestJAXBDomain.class.cast(result).getElem(), "Hello World"); }
public void testListVolumeTypes() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v2/3456/os-volume-types"); VolumeTypeApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/volume_type_list.json")).build() ).getVolumeTypeApi("az-1.region-a.geo-1").get(); Set<? extends VolumeType> types = api.list().toSet(); assertEquals(types, ImmutableSet.of(testVolumeType())); }
public void testGetServerWithSecurityGroups() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-create-server-ext/8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); ServerWithSecurityGroupsApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/server_with_security_groups.json")).build() ).getServerWithSecurityGroupsExtensionForZone("az-1.region-a.geo-1").get(); ServerWithSecurityGroups server = api.get("8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); assertEquals(server.getId(), "8d0a6ca5-8849-4b3d-b86e-f24c92490ebb"); assertEquals(server.getSecurityGroupNames(), ImmutableSet.of("default", "group1")); }
public void testListVirtualInterfaces() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/servers/1/os-virtual-interfaces"); VirtualInterfaceApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/virtual_interfaces_list.json")).build() ).getVirtualInterfaceExtensionForZone("az-1.region-a.geo-1").get(); VirtualInterface vif = Iterables.getOnlyElement(api.listOnServer("1")); assertEquals(vif.getId(), "02315827-b05c-4668-9c05-75c68838074a"); assertEquals(vif.getMacAddress(), "fa:16:3e:09:71:34"); }
@Test public void testListClustersEmptyOn404() { HttpRequest request = HttpRequest.builder() .method("GET") .endpoint("http://localhost:8080/client/api?response=json&command=listClusters&listAll=true&apiKey=identity&signature=lbimqg0OKIq8sgQBpNmi4oQNFog%3D") .addHeader("Accept", "application/json").build(); HttpResponse response = HttpResponse.builder().statusCode(404).build(); GlobalHostClient client = requestSendsResponse(request, response); assertEquals(client.listClusters(), ImmutableSet.of()); }
public void testList() { URI endpoint = URI.create("https://az-1.region-a.geo-1.compute.hpcloudsvc.com/v1.1/3456/os-aggregates"); HostAggregateApi api = requestsSendResponses(keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, extensionsOfNovaRequest, extensionsOfNovaResponse, authenticatedGET().endpoint(endpoint).build(), HttpResponse.builder().statusCode(200).payload(payloadFromResource("/host_aggregate_list.json")).build()) .getHostAggregateExtensionForZone("az-1.region-a.geo-1").get(); HostAggregate result = Iterables.getOnlyElement(api.list()); assertEquals(result, exampleHostAggregate()); }
public void testListRolesOfUser() { UserApi api = requestsSendResponses( keystoneAuthWithUsernameAndPasswordAndTenantName, responseWithKeystoneAccess, authenticatedGET().endpoint(endpoint + "/v2.0/users/3f6c1c9ba993495ead7d2eb2192e284f/roles").build(), HttpResponse.builder().statusCode(200).payload(payloadFromResourceWithContentType("/user_role_list.json", APPLICATION_JSON)).build()) .getUserApi().get(); Set<? extends Role> roles = api.listRolesOfUser("3f6c1c9ba993495ead7d2eb2192e284f"); assertNotNull(roles); assertFalse(roles.isEmpty()); assertEquals(roles, ImmutableSet.of( Role.builder().id("79cada5c02814b57a52e0eed4dd388cb").name("admin").build() )); }