<!-- | |
Copyright (C) 2009 Cloud Conscious, LLC. <info@cloudconscious.com> | |
==================================================================== | |
Licensed under the Apache License, Version 2.0 (the "License"); | |
you may not use this file except in compliance with the License. | |
You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, software | |
distributed under the License is distributed on an "AS IS" BASIS, | |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
See the License for the specific language governing permissions and | |
limitations under the License. | |
==================================================================== | |
--> | |
<project name="compute" default="dump" basedir="." xmlns:artifact="urn:maven-artifact-ant"> | |
<property file="build.properties" /> | |
<property name="jclouds.version" value="1.0-beta-6" /> | |
<property name="privatekeyfile" value="${user.home}/.ssh/id_rsa" /> | |
<property name="publickeyfile" value="${user.home}/.ssh/id_rsa.pub" /> | |
<mkdir dir="build" /> | |
<get src="http://apache.imghat.com/maven/binaries/maven-ant-tasks-2.1.0.jar" dest="build/maven-ant-tasks-2.1.0.jar"/> | |
<input | |
message="Which service would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting, hostingdotcom)?" | |
validargs="ec2,cloudservers,vcloud,terremark,rimuhosting,hostingdotcom" | |
addproperty="service" | |
/> | |
<input | |
message="Which driver does ${service} use?" | |
validargs="aws,rackspace,vcloud,bluelock,gogrid,terremark,rimuhosting,hostingdotcom" | |
addproperty="driver" | |
/> | |
<path id="maven-ant-tasks.classpath" path="build/maven-ant-tasks-2.1.0.jar" /> | |
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath" /> | |
<artifact:localRepository id="local.repository" path="${user.home}/.m2/repository" /> | |
<artifact:remoteRepository id="jclouds.repository" url="http://jclouds.googlecode.com/svn/repo" /> | |
<artifact:remoteRepository id="jclouds-snapshot.repository" url="http://jclouds.rimuhosting.com/maven2/snapshots" /> | |
<artifact:dependencies pathId="jclouds.classpath"> | |
<dependency groupId="org.jclouds" artifactId="jclouds-antcontrib" version="${jclouds.version}" /> | |
<dependency groupId="org.jclouds" artifactId="jclouds-${driver}" version="${jclouds.version}" /> | |
<localRepository refid="local.repository" /> | |
<remoteRepository refid="jclouds.repository" /> | |
<remoteRepository refid="jclouds-snapshot.repository" /> | |
</artifact:dependencies> | |
<typedef name="compute" classname="org.jclouds.tools.ant.taskdefs.compute.ComputeTask" classpathref="jclouds.classpath" /> | |
<input | |
message="What is your account on ${service}?" | |
addproperty="account" | |
/> | |
<input | |
message="What is the key for ${account}?" | |
addproperty="key" | |
/> | |
<property name="jclouds.compute.url" value="compute://${account}:${key}@${service}" /> | |
<target name="list" description="list the identity of all nodes"> | |
<compute actions="list" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="list-details" description="list the details of all nodes"> | |
<compute actions="list-details" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="list-images" description="list the images supported"> | |
<compute actions="list-images" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="list-sizes" description="list the sizes supported"> | |
<compute actions="list-sizes" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="list-locations" description="list the locations supported"> | |
<compute actions="list-locations" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="dump" description="list all information we can obtain about the cloud"> | |
<compute actions="list-locations,list-sizes,list-images,list-details" provider="${jclouds.compute.url}" /> | |
</target> | |
<target name="reboot" description="reboot the node ${nodetag}"> | |
<input | |
message="Which node do you wish to reboot" | |
addproperty="nodetag" | |
/> | |
<compute actions="reboot" provider="${jclouds.compute.url}"> | |
<nodes tag="${nodetag}" /> | |
</compute> | |
</target> | |
<target name="destroy" description="destroy the node ${nodetag}"> | |
<input | |
message="Which node do you wish to destroy" | |
addproperty="nodetag" | |
/> | |
<compute actions="destroy" provider="${jclouds.compute.url}"> | |
<nodes tag="${nodetag}" /> | |
</compute> | |
</target> | |
<target name="get" description="get the node ${nodetag}"> | |
<input | |
message="Which node do you wish to describe?" | |
addproperty="nodetag" | |
/> | |
<compute actions="get" provider="${jclouds.compute.url}"> | |
<nodes tag="${nodetag}" /> | |
</compute> | |
</target> | |
<property name="location" value="" /> | |
<target name="create" description="create the node ${nodetag}"> | |
<property name="privatekeyfile" value="${user.home}/.ssh/id_rsa" /> | |
<property name="publickeyfile" value="${user.home}/.ssh/id_rsa.pub" /> | |
<property name="os" value="UBUNTU" /> | |
<property name="count" value="1" /> | |
<input | |
message="What do you want to tag your nodes with?" | |
addproperty="nodetag" | |
/> | |
<compute actions="create" provider="${jclouds.compute.url}"> | |
<nodes privatekeyfile="${privatekeyfile}" publickeyfile="${publickeyfile}" tag="${nodetag}" count="${count}" os="${os}" size="SMALLEST" hostproperty="host" usernameproperty="username" passwordproperty="password" /> | |
</compute> | |
</target> | |
</project> |