Issue 130: added size and image to ant config

git-svn-id: http://jclouds.googlecode.com/svn/trunk@2723 3d8758e0-26b5-11de-8745-db77d3ebf521
This commit is contained in:
adrian.f.cole 2010-01-22 21:15:19 +00:00
parent aa41f4512b
commit b7f9426a02
5 changed files with 42 additions and 7 deletions

View File

@ -33,7 +33,7 @@ import com.google.common.base.CaseFormat;
* @author Adrian Cole * @author Adrian Cole
*/ */
public enum OsFamily { public enum OsFamily {
CENTOS, RHEL, FEDORA, DEBIAN, UBUNTU, JEOS, WINDOWS; CENTOS, RHEL, FEDORA, DEBIAN, UBUNTU, JEOS, ARCH, GENTOO, WINDOWS;
public String value() { public String value() {
return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name()); return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_HYPHEN, name());
} }

View File

@ -91,8 +91,8 @@ public class CloudServersComputeServiceContextModule extends CloudServersContext
holder.logger.debug(">> providing sizes"); holder.logger.debug(">> providing sizes");
for (final Flavor from : sync.listFlavors(ListOptions.Builder.withDetails())) { for (final Flavor from : sync.listFlavors(ListOptions.Builder.withDetails())) {
sizes.add(new CloudServersSize(from, from.getId() + "", from.getDisk() / 10, sizes.add(new CloudServersSize(from, from.getId() + "", from.getDisk() / 10,
from .getRam(), from.getDisk(), ImmutableSet.<Architecture> of(Architecture.X86_32, from.getRam(), from.getDisk(), ImmutableSet.<Architecture> of(
Architecture.X86_64))); Architecture.X86_32, Architecture.X86_64)));
} }
holder.logger.debug("<< sizes(%d)", sizes.size()); holder.logger.debug("<< sizes(%d)", sizes.size());
return sizes; return sizes;
@ -121,10 +121,12 @@ public class CloudServersComputeServiceContextModule extends CloudServersContext
String version = ""; String version = "";
Matcher matcher = RACKSPACE_PATTERN.matcher(from.getName()); Matcher matcher = RACKSPACE_PATTERN.matcher(from.getName());
if (matcher.find()) { osDescription = from.getName();
if (from.getName().indexOf("Red Hat EL") != -1) {
os = OsFamily.RHEL;
} else if (matcher.find()) {
try { try {
os = OsFamily.fromValue(matcher.group(2).toLowerCase()); os = OsFamily.fromValue(matcher.group(2).toLowerCase());
osDescription = matcher.group(1);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
holder.logger.debug("<< didn't match os(%s)", matcher.group(2)); holder.logger.debug("<< didn't match os(%s)", matcher.group(2));
} }

View File

@ -72,7 +72,7 @@
<target name="create" description="create the node ${nodename}" depends="destroy" > <target name="create" description="create the node ${nodename}" depends="destroy" >
<compute action="create" provider="${url}"> <compute action="create" provider="${url}">
<node name="${nodename}" os="JEOS" size="SMALLEST" <node name="${nodename}" os="UBUNTU" size="SMALLEST"
runscript="runscript.sh" openports="22,${listenport}" runscript="runscript.sh" openports="22,${listenport}"
hostproperty="host" usernameproperty="username" passwordproperty="password" /> hostproperty="host" usernameproperty="username" passwordproperty="password" />
</compute> </compute>

View File

@ -69,6 +69,14 @@
<compute action="list-details" provider="${jclouds.compute.url}" /> <compute action="list-details" provider="${jclouds.compute.url}" />
</target> </target>
<target name="list-images" description="list the images supported">
<compute action="list-images" provider="${jclouds.compute.url}" />
</target>
<target name="list-sizes" description="list the sizes supported">
<compute action="list-sizes" provider="${jclouds.compute.url}" />
</target>
<target name="destroy" description="destroy the node ${nodename}"> <target name="destroy" description="destroy the node ${nodename}">
<input <input

View File

@ -40,7 +40,9 @@ import org.jclouds.compute.ComputeService;
import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.domain.ComputeMetadata; import org.jclouds.compute.domain.ComputeMetadata;
import org.jclouds.compute.domain.CreateNodeResponse; import org.jclouds.compute.domain.CreateNodeResponse;
import org.jclouds.compute.domain.Image;
import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.compute.domain.Size;
import org.jclouds.compute.domain.Template; import org.jclouds.compute.domain.Template;
import org.jclouds.compute.options.RunNodeOptions; import org.jclouds.compute.options.RunNodeOptions;
import org.jclouds.http.HttpUtils; import org.jclouds.http.HttpUtils;
@ -80,7 +82,7 @@ public class ComputeTask extends Task {
} }
public static enum Action { public static enum Action {
CREATE, GET, LIST, LIST_DETAILS, DESTROY CREATE, GET, LIST, LIST_DETAILS, DESTROY, LIST_IMAGES, LIST_SIZES
} }
/** /**
@ -124,6 +126,12 @@ public class ComputeTask extends Task {
case LIST_DETAILS: case LIST_DETAILS:
listDetails(computeService); listDetails(computeService);
break; break;
case LIST_IMAGES:
listImages(computeService);
break;
case LIST_SIZES:
listSizes(computeService);
break;
default: default:
this.log("bad action: " + action, Project.MSG_ERR); this.log("bad action: " + action, Project.MSG_ERR);
} }
@ -137,6 +145,23 @@ public class ComputeTask extends Task {
} }
} }
private void listImages(ComputeService computeService) {
log("list images");
for (Image image : computeService.listImages()) {// TODO
log(String.format(" image location=%s, id=%s, version=%s, arch=%s, osfam=%s, desc=%s",
image.getLocation(), image.getId(), image.getVersion(), image.getArchitecture(),
image.getOsFamily(), image.getOsDescription()));
}
}
private void listSizes(ComputeService computeService) {
log("list sizes");
for (Size size : computeService.listSizes()) {// TODO
log(String.format(" size id=%s, cores=%s, ram=%s, disk=%s", size.getId(), size
.getCores(), size.getRam(), size.getDisk()));
}
}
private void list(ComputeService computeService) { private void list(ComputeService computeService) {
log("list"); log("list");
for (ComputeMetadata node : computeService.listNodes()) { for (ComputeMetadata node : computeService.listNodes()) {