All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jclouds.trystack.nova.TryStackNovaServiceAdapter Maven / Gradle / Ivy

The newest version!
package org.jclouds.trystack.nova;

import java.util.Set;

import javax.inject.Inject;

import org.jclouds.location.Zone;
import org.jclouds.openstack.nova.v2_0.NovaApi;
import org.jclouds.openstack.nova.v2_0.compute.NovaComputeServiceAdapter;
import org.jclouds.openstack.nova.v2_0.compute.functions.RemoveFloatingIpFromNodeAndDeallocate;
import org.jclouds.openstack.nova.v2_0.domain.KeyPair;
import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ImageInZone;
import org.jclouds.openstack.nova.v2_0.domain.zonescoped.ZoneAndName;

import com.google.common.base.Predicate;
import com.google.common.base.Supplier;
import com.google.common.cache.LoadingCache;
import com.google.common.collect.Iterables;

/**
 * 
 * @author Adrian Cole
 */
public class TryStackNovaServiceAdapter extends NovaComputeServiceAdapter {

   @Inject
   public TryStackNovaServiceAdapter(NovaApi novaApi, @Zone Supplier> zoneIds,
            RemoveFloatingIpFromNodeAndDeallocate removeFloatingIpFromNodeAndDeallocate, LoadingCache keyPairCache) {
      super(novaApi, zoneIds, removeFloatingIpFromNodeAndDeallocate, keyPairCache);
   }

   @Override
   public Iterable listImages() {
      return Iterables.filter(super.listImages(), new Predicate() {

         @Override
         public boolean apply(ImageInZone arg0) {
            String imageName = arg0.getImage().getName();
            return imageName.indexOf("kernel") == -1;
         }

         @Override
         public String toString() {
            return "notKernel";
         }
      });
   }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy