package com.cattles.cloudplatforms.openstack;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.io.Closeables;
import com.google.inject.Module;
import org.jclouds.ContextBuilder;
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
import org.jclouds.openstack.nova.v2_0.NovaApi;
import org.jclouds.openstack.nova.v2_0.domain.Flavor;
import org.jclouds.openstack.nova.v2_0.domain.Image;
import org.jclouds.openstack.nova.v2_0.domain.Server;
import org.jclouds.openstack.nova.v2_0.extensions.AvailabilityZoneApi;
import org.jclouds.openstack.nova.v2_0.features.FlavorApi;
import org.jclouds.openstack.nova.v2_0.features.ImageApi;
import org.jclouds.openstack.nova.v2_0.features.ServerApi;
import java.io.Closeable;
import java.io.IOException;
import java.util.Set;
public class JCloudsNova implements Closeable {
public OpenStackConfigOperation openStackConfigOperation=new OpenStackConfigOperation();
private final NovaApi novaApi=openStackConfigOperation.initNovaApi();
private final Set<String> zones=novaApi.getConfiguredZones();
public static void main(String[] args) throws IOException {
JCloudsNova jcloudsNova = new JCloudsNova();
try {
jcloudsNova.listServers();
jcloudsNova.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
jcloudsNova.close();
}
System.out.println("nihao");
}
public void listServers() {
for (String zone : zones) {
ServerApi serverApi = novaApi.getServerApiForZone(zone);
System.out.println("Servers in " + zone);
if(serverApi.listInDetail().size()>0){
for (Server server : serverApi.listInDetail().concat()) {
System.out.println(zone+"*#*#*#" + server);
}
}
}
}
public void listImages(){
ImageApi imageApi=novaApi.getImageApiForZone("GrizzlyDemo");
for (Image image : imageApi.listInDetail().concat()) {
System.out.println(" " +image);
}
}
public void listFlavors(){
FlavorApi flavorApi=novaApi.getFlavorApiForZone("GrizzlyDemo");
for (Flavor flavor : flavorApi.listInDetail().concat()) {
System.out.println(" " +flavor);
}
}
public void close() throws IOException {
Closeables.close(novaApi, true);
}
}