| <!-- |
| |
| |
| Copyright (C) 2010 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-SNAPSHOT" /> |
| <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://opensource.become.com/apache//maven/binaries/maven-ant-tasks-2.1.1.jar" dest="build/maven-ant-tasks.jar"/> |
| |
| <input |
| message="Which provider would you like to use (ec2, cloudservers, vcloud, terremark, rimuhosting)?" |
| validargs="ec2,cloudservers,vcloud,trmk-ecloud,trmk-vcloudexpress,eucalyptus,bluelock-vcdirector,gogrid,rimuhosting" |
| addproperty="provider" |
| /> |
| |
| <input |
| message="Which driver does ${provider} use?" |
| validargs="aws,rackspace,vcloud,bluelock,gogrid,terremark,ibmdev,rimuhosting" |
| addproperty="driver" |
| /> |
| |
| <path id="maven-ant-tasks.classpath" path="build/maven-ant-tasks.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="https://oss.sonatype.org/content/repositories/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 identity on ${provider}?" |
| addproperty="identity" |
| /> |
| |
| <input |
| message="What is the credential for ${identity}?" |
| addproperty="credential" |
| /> |
| |
| <property name="jclouds.compute.url" value="compute://${identity}:${credential}@${provider}" /> |
| |
| <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-hardwares" description="list the hardwares supported"> |
| <compute actions="list-hardwares" 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-hardwares,list-images,list-details" provider="${jclouds.compute.url}" /> |
| </target> |
| |
| <target name="reboot" depends="reboot-id,reboot-tag" /> |
| |
| <target name="reboot-id" description="reboot the node ${id}" unless="tag"> |
| |
| <input |
| message="Which node do you wish to reboot" |
| addproperty="id" |
| /> |
| |
| <compute actions="reboot" provider="${jclouds.compute.url}"> |
| <nodes id="${id}" /> |
| </compute> |
| </target> |
| |
| <target name="reboot-tag" description="reboot the nodes with tag ${tag}" unless="id" > |
| |
| <input |
| message="Which tag do you wish to reboot" |
| addproperty="tag" |
| /> |
| |
| <compute actions="reboot" provider="${jclouds.compute.url}"> |
| <nodes tag="${tag}" /> |
| </compute> |
| </target> |
| |
| <target name="destroy" depends="destroy-id,destroy-tag" /> |
| |
| <target name="destroy-id" description="destroy the node ${id}" unless="tag"> |
| |
| <input |
| message="Which node do you wish to destroy" |
| addproperty="id" |
| /> |
| |
| <compute actions="destroy" provider="${jclouds.compute.url}"> |
| <nodes id="${id}" /> |
| </compute> |
| </target> |
| |
| <target name="destroy-tag" description="destroy the nodes with tag ${tag}" unless="id" > |
| |
| <input |
| message="Which tag do you wish to destroy" |
| addproperty="tag" |
| /> |
| |
| <compute actions="destroy" provider="${jclouds.compute.url}"> |
| <nodes tag="${tag}" /> |
| </compute> |
| </target> |
| |
| <target name="get" depends="get-tag,get-id" /> |
| |
| <target name="get-id" description="get the node ${id}" unless="tag"> |
| |
| <input |
| message="Which node do you wish to get" |
| addproperty="id" |
| /> |
| |
| <compute actions="get" provider="${jclouds.compute.url}"> |
| <nodes id="${id}" /> |
| </compute> |
| </target> |
| |
| <target name="get-tag" description="get the nodes with tag ${tag}" unless="id" > |
| |
| <input |
| message="Which tag do you wish to get" |
| addproperty="tag" |
| /> |
| |
| <compute actions="get" provider="${jclouds.compute.url}"> |
| <nodes tag="${tag}" /> |
| </compute> |
| </target> |
| |
| <property name="location" value="" /> |
| <target name="create" description="create the node ${tag}"> |
| <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="tag" |
| /> |
| |
| <compute actions="create" provider="${jclouds.compute.url}"> |
| <nodes privatekeyfile="${privatekeyfile}" publickeyfile="${publickeyfile}" tag="${tag}" count="${count}" os="${os}" hardware="SMALLEST" hostproperty="host" usernameproperty="username" passwordproperty="password" /> |
| </compute> |
| </target> |
| |
| </project> |