mirror of https://github.com/apache/jclouds.git
Making more OpenStack Nova APIs extensible using generic return values
This commit is contained in:
parent
c679e73ce1
commit
8c544ddef0
|
@ -159,12 +159,12 @@ public class NovaComputeServiceAdapter implements
|
|||
Set<String> zones = zoneIds.get();
|
||||
checkState(zones.size() > 0, "no zones found in supplier %s", zoneIds);
|
||||
for (final String zoneId : zones) {
|
||||
Set<Image> images = novaApi.getImageApiForZone(zoneId).listImagesInDetail();
|
||||
Set<? extends Image> images = novaApi.getImageApiForZone(zoneId).listImagesInDetail();
|
||||
if (images.size() == 0) {
|
||||
logger.debug("no images found in zone %s", zoneId);
|
||||
continue;
|
||||
}
|
||||
Iterable<Image> active = filter(images, ImagePredicates.statusEquals(Image.Status.ACTIVE));
|
||||
Iterable<? extends Image> active = filter(images, ImagePredicates.statusEquals(Image.Status.ACTIVE));
|
||||
if (images.size() == 0) {
|
||||
logger.debug("no images with status active in zone %s; non-active: %s", zoneId,
|
||||
transform(active, new Function<Image, String>() {
|
||||
|
|
|
@ -50,7 +50,7 @@ public interface FlavorApi {
|
|||
*
|
||||
* @return all flavors (all details)
|
||||
*/
|
||||
Set<Flavor> listFlavorsInDetail();
|
||||
Set<? extends Flavor> listFlavorsInDetail();
|
||||
|
||||
/**
|
||||
* List details of the specified flavor
|
||||
|
|
|
@ -71,7 +71,7 @@ public interface FlavorAsyncApi {
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/flavors/detail")
|
||||
@ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
|
||||
ListenableFuture<Set<Flavor>> listFlavorsInDetail();
|
||||
ListenableFuture<? extends Set<? extends Flavor>> listFlavorsInDetail();
|
||||
|
||||
/**
|
||||
* @see FlavorApi#getFlavor
|
||||
|
@ -81,6 +81,6 @@ public interface FlavorAsyncApi {
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/flavors/{id}")
|
||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||
ListenableFuture<Flavor> getFlavor(@PathParam("id") String id);
|
||||
ListenableFuture<? extends Flavor> getFlavor(@PathParam("id") String id);
|
||||
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ public interface ImageApi {
|
|||
*
|
||||
* @return all images (all details)
|
||||
*/
|
||||
Set<Image> listImagesInDetail();
|
||||
Set<? extends Image> listImagesInDetail();
|
||||
|
||||
/**
|
||||
* List details of the specified image
|
||||
|
|
|
@ -69,7 +69,7 @@ public interface ImageAsyncApi {
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/images/detail")
|
||||
@ExceptionParser(ReturnEmptySetOnNotFoundOr404.class)
|
||||
ListenableFuture<Set<Image>> listImagesInDetail();
|
||||
ListenableFuture<? extends Set<? extends Image>> listImagesInDetail();
|
||||
|
||||
/**
|
||||
* @see ImageApi#getImage
|
||||
|
@ -79,7 +79,7 @@ public interface ImageAsyncApi {
|
|||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Path("/images/{id}")
|
||||
@ExceptionParser(ReturnNullOnNotFoundOr404.class)
|
||||
ListenableFuture<Image> getImage(@PathParam("id") String id);
|
||||
ListenableFuture<? extends Image> getImage(@PathParam("id") String id);
|
||||
|
||||
/**
|
||||
* @see ImageApi#deleteImage
|
||||
|
|
|
@ -66,7 +66,7 @@ public class FlavorApiLiveTest extends BaseNovaApiLiveTest {
|
|||
public void testListFlavorsInDetail() throws Exception {
|
||||
for (String zoneId : novaContext.getApi().getConfiguredZones()) {
|
||||
FlavorApi api = novaContext.getApi().getFlavorApiForZone(zoneId);
|
||||
Set<Flavor> response = api.listFlavorsInDetail();
|
||||
Set<? extends Flavor> response = api.listFlavorsInDetail();
|
||||
assert null != response;
|
||||
assertTrue(response.size() >= 0);
|
||||
for (Flavor flavor : response) {
|
||||
|
|
|
@ -58,7 +58,7 @@ public class ImageApiLiveTest extends BaseNovaApiLiveTest {
|
|||
public void testListImagesInDetail() throws Exception {
|
||||
for (String zoneId : novaContext.getApi().getConfiguredZones()) {
|
||||
ImageApi api = novaContext.getApi().getImageApiForZone(zoneId);
|
||||
Set<Image> response = api.listImagesInDetail();
|
||||
Set<? extends Image> response = api.listImagesInDetail();
|
||||
assertNotNull(response);
|
||||
assertTrue(response.size() >= 0);
|
||||
for (Image image : response) {
|
||||
|
|
Loading…
Reference in New Issue