Files missing after cloudbridge-ec2-integration branch merge

This commit is contained in:
prachi 2012-04-30 16:52:09 -07:00
parent 9a4f5f90a2
commit 7140bab73c
26 changed files with 6928 additions and 0 deletions

View File

@ -0,0 +1,7 @@
host=http://localhost:8080/bridge
storage.root=c:\\temp\\s3repo
storage.multipartDir=__multipart__uploads__
bucket.dns=true
serviceEndpoint=s3.amazonaws.com

View File

@ -0,0 +1,122 @@
#!/usr/bin/env bash
# deploy.sh -- deploys a cloud-bridge
#
usage() {
printf "Usage: %s: -d [tomcat directory to deploy to] -z [zip file to use]\n" $(basename $0) >&2
}
dflag=
zflag=
tflag=
iflag=
deploydir=
typ=
#set -x
while getopts 'd:z:x:h:' OPTION
do
case "$OPTION" in
d) dflag=1
deploydir="$OPTARG"
;;
z) zflag=1
zipfile="$OPTARG"
;;
h) iflag="$OPTARG"
;;
?) usage
exit 2
;;
esac
done
if [ "$deploydir" == "" ]
then
if [ "$CATALINA_HOME" == "" ]
then
printf "Tomcat Directory to deploy to: "
read deploydir
else
deploydir="$CATALINA_HOME"
fi
fi
if [ "$deploydir" == "" ]
then
printf "Tomcat directory was not specified, please set CATALINA_HOME environment variable'\n";
exit 15;
fi
printf "Check to see if the Tomcat directory exist: $deploydir\n"
if [ ! -d $deploydir ]
then
printf "Tomcat directory does not exist\n";
exit 16;
fi
rm -rf $deploydir/webapps/bridge
mkdir "$CATALINA_HOME/temp"
mkdir "$CATALINA_HOME/webapps/bridge"
if ! unzip -o ./axis2.war -d $deploydir/webapps/bridge
then
exit 10;
fi
if ! cp -f services/* $deploydir/webapps/bridge/WEB-INF/services
then
exit 11;
fi
if ! cp -f modules/* $deploydir/webapps/bridge/WEB-INF/modules
then
exit 12;
fi
if ! cp -f rampart-lib/* $deploydir/webapps/bridge/WEB-INF/lib
then
exit 13;
fi
if ! cp -f cloud-bridge.jar $deploydir/webapps/bridge/WEB-INF/lib
then
exit 14;
fi
if ! cp -f lib/* $deploydir/lib
then
exit 17;
fi
if ! cp -n conf/* $deploydir/conf
then
exit 18;
fi
if ! cp -f classes/* $deploydir/webapps/bridge/WEB-INF/classes
then
exit 19;
fi
if ! cp -f web.xml $deploydir/webapps/bridge/WEB-INF
then
exit 20;
fi
if ! cp -f axis2.xml $deploydir/webapps/bridge/WEB-INF/conf
then
exit 21;
fi
if ! rm -rf $deploydir/webapps/bridge/WEB-INF/lib/dom4j-1.6.1.jar
then
exit 22;
fi
printf "Installation is now complete\n"
exit 0

View File

@ -0,0 +1,48 @@
1. Get the EC2 API tool
http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip. Install it by unzipping it
2. Prepare a API request certificate, if you have Amazon account, Amazon has the service to let you generate and download a X509 certificate and its associated private key
3. Prepare EC2 command running environment
Set following environment variables and make them point to the right location.
EC2_ACCESS_KEY=<CloudStack API key>
EC2_SECRET_KEY=<CloudStack Secret key>
EC2_HOME: <full path to your EC2 API tool installation directory>
EC2_CERT: <full path to your certficate file>
EC2_PRIVATE_KEY: <full path to your private key file for the certficate>
EC2_URL: http://<CloudBridge server address>/bridge/AmazonEC2
4. Generate CloudStack API key
Login to CloudStack management console, you can generate an API key and its secret key pair there.
5. Inform CloudBridge about the API/security key pair to use
http://<CloudBridge server address>/bridge/rest/AmazonEC2?Action=SetUserKeys&accesskey=<key>&secretkey=<key>
6. Upload certificate and associate it with the API key
There is not a convenient tool to do that, this has to be done in manual step. following HTML form can be used to submit the certificate, be sure to replace the content
matching with your setup though.
to ec2-service.properties
<HTML>
<BODY>
Save the cert into Cloud's EC2 Service:
<P>
<FORM name="setcert" action="http://<CloudBridge server address>/bridge/rest/AmazonEC2" method="get">
<input type="hidden" name="Action" value="SetCertificate"/>
<input type="hidden" name="AWSAccessKeyId" value="<your API key>" />
<input type="hidden" name="SignatureMethod" value="HmacSHA1" />
<input type="hidden" name="SignatureVersion" value="2" />
<input type="hidden" name="Expires" value="2010-11-15T10:10:10Z" />
<input type="hidden" name="Timestamp" value="2011-11-15T10:10:10Z" />
<input type="hidden" name="Version" value="2010-08-31" />
<input type="hidden" name="Signature" value="7KUYxW5YOpUZyZGCP49BudZraGU=" />
<TEXTAREA name="cert" cols=100 rows=20></TEXTAREA>
<P>
<input type="submit" value="Submit" />
</FORM>
</BODY>
</HTML>

View File

@ -0,0 +1,146 @@
<HTML>
<HEAD>
<TITLE>Cloud.com's EC2 API Implementation Guide</TITLE>
</HEAD>
<BODY>
<H1>Cloud.com's EC2 API Implementation Guide</H1>
3/24/2011
<H2>Table of Contents</H2>
<UL>
<LI><A href="#conf">1. Configuration Parameters</A></LI>
<LI><A href="#party">2. Required 3rd Party Software</A></LI>
<LI><A href="#maintenace">3. Maintenance</A></LI>
<LI><A href="#install">4. Installation Instructions</A></LI>
<LI><A href="#refs">5. References</A></LI>
</UL>
<P>
<H2 id="conf">1. Configuration Parameters</H2>
Several configuration parameters are required to make Cloud.com's EC2 service work properly.
The following parameters are defined in the file:</BR> &lt;install directory>"/apache-tomcat-6.0.18/conf/ec2-service.properties":
<pre>
managementServer=192.168.154.36
cloudAPIPort=8080
WSDLVersion=2010-08-31
keystore=xes.keystore
keystorePass=apache
dbName=cloudsbridge
dbUser=root
dbPassword=
pollInterval1=100
pollInterval2=100
pollInterval3=100
pollInterval4=1000
pollInterval5=100
pollInterval6=100
</pre>
<I>managementServer</I> - FQDN or IP address of a Cloud.com management server. This is the address that
the EC2 service makes Cloud.com REST API calls against.</BR>
<I>cloudAPIPort</I> - The TCP port that the CloudStack, User API is running on. If this property is not defined,
then no port is used by the EC2 service when it queries the CloudStack.</BR>
<I>WSDLVersion</I> - The string that defines the WSDL used by the SOAP API which the REST API also implements.
This string is compared to the "Version=" parameter on each and every authorized REST request.</BR>
<I>keystore</I> - The file name of the keystore used by EC2 which must be placed at the directory:
"../apache-tomcat-6.0.18/webapps/bridge/WEB-INF/classes"</BR>
<I>keystorePass</I> - The password to the EC2 keystore specified by the "keystore" parameter.</BR>
<I>dbName</I> - The MySql database name holding the EC2 service's required tables.</BR>
<I>dbUser=</I> - The user name used to access the "dbName" MySql database.</BR>
<I>dbPassword</I> - The password (if any) the "dbUser" needs to access the EC2 MySql database.</BR>
<I>pollInterval1</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API call: createTemplate. Default value is 100.</BR>
<I>pollInterval2</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API call: deployVirtualMachine. Default value is 100.</BR>
<I>pollInterval3</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API call: createVolume. Default value is 100.</BR>
<I>pollInterval4</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API call: createSnapshot. Default value is 1000.</BR>
<I>pollInterval5</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API calls: deleteSnapshot, deleteTemplate, deleteVolume, attachVolume, detachVolume, disassociateIpAddress, enableStaticNat, disableStaticNat. Default value is 100.</BR>
<I>pollInterval6</I> - Time in milliseconds between asynchronous job completion polling for the following Cloud.com
API calls: startVirtualMachine, destroyVirtualMachine, stopVirtualMachine. Default value is 100.</BR>
<P>
<BR>
The following REST calls are used to configure a mapping between Amazon's instance types and CloudStack service offerings:
<P>
http://&lt;fqdn-or-ip&gt;:&lt;port&gt;/bridge/rest/AmazonEC2?Action=SetOfferMapping&amazonoffer=m1.large&cloudoffer=1<BR>
<P>
The 'amazonoffer' parameter defines the standard Amazon instance types while the 'cloudoffer' parameter defines its associated
CloudStack service offering identifer. The result of this REST call is to save the defined relationship. A second call with the
same value for amazonoffer but with a different cloudoffer value will overwrite a previously saved setting.
<BR>
SetOfferMapping is an authenticated REST call using the same authentication scheme as all other EC2 REST calls. This means that the following standard EC2 REST paramters must also be part of the request: Signature, SignatureMethod, Version, SignatureVersion, and Expires.
A HTTP 200 result code is returned on success and a 404 on failure.
<P>
http://&lt;fqdn-or-ip&gt;:&lt;port&gt;/bridge/rest/AmazonEC2?Action=DeleteOfferMapping&amazonoffer=m1.large<BR>
<P>
The result of this REST call is to delete any relationship previously defined by a call to the SetOfferMapping call for the
value passed in the 'amazonoffer' parameter.<BR>
DeleteOfferMapping is an authenticated REST call using the same authentication scheme as all other EC2 REST calls. This means that the following standard EC2 REST paramters must also be part of the request: Signature, SignatureMethod, Version, SignatureVersion, and Expires.
A HTTP 200 result code is returned on success and a 404 on failure.
<P>
Examples of other Amazon instance types are:
{ "m1.small", "m1.large", "m1.xlarge", "c1.medium", "c1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge" }.</BR>
Service offering IDs can be obtained from the following Cloud.com API calls: listServiceOfferings.
Cloud.com's service offerings are configurable and thus can be different per installation, and they
can also be viewed from the Cloud.com's Admin UI.
<P>
<H2 id="party">2. Required 3rd Party Software</H2>
Cloud.com's EC2 service has been built and tested on the following set of 3rd party software:
<pre>
MySql
apache-tomcat 6.0.18
axis2 1.5.1
rampart 1.5 (installed into axis2 for WS-Security)
used for testing: ec2-api-tools-1.3-53907
</pre>
<P>
<H2 id="maintenace">3. Maintenance</H2>
As a result of the SetCertificate REST call <A href="#ref1">[1]</A>, X509 Certificates used for SOAP authentication are
stored in the following keystore:
<pre>
&lt;install directory>/apache-tomcat-6.0.18/webapps/bridge/WEB-INF/classes/xes.keystore
</pre>
The keytool <A href="#ref2">[2]</A> command line tool can be used to delete certificates no longer in use.
<P>
As a result of the SetUserKeys REST call <A href="#ref1">[1]</A>, entries are inserted into
the "usercredentials" table of the "cloudbridge" MySql database.
The MySql command line client can be used to delete usercredentials entries no longer in use.
<P>
<H2 id="install">4. Installation Instructions</H2>
<P>
On the very first install an EC2/S3 MySql database is created by running the following
scripts in the given order: cloudsbridge_db.sql, cloudsbridge_schema.sql, cloudbridge_index.sql
<P>
After a successful installation the following directory and file structure should exist:
<pre>
&lt;install directory>
apache-tomcat-6.0.18
conf
ec2-service.properties (EC2 service's configuration parameters)
server.xml
lib
&lt;many axis2 jar files>
webapps
bridge
WEB-INF
classes
crypto.properties
xes.keystore (holds X509 certificates for SOAP authentication)
modules
cloud-auth-ec2.mar
rampart-1.5.mar
rahas-1.5.mar
addressing-1.5.1.mar
services
cloud-ec2.aar (the Axis2 EC2 service)
</pre>
The "../modules/cloud-auth-ec2.mar" module performs a mapping from an X509 certificate appearing in a SOAP
request (since its signed via WS-Security) to a matching user's Cloud.com API access and secret keys. This association
is first created via the SetUserKeys and SetCertificate REST calls [1].
<P>
<H2 id="refs">5. References</H2>
<OL>
<LI id="ref1">Cloud.com's EC2 API User's Guide, 7/15/2010</LI>
<LI id="ref2"><A href="http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/tooldocs/windows/keytool.html">keytool - Key and Certificate Management Tool</A></LI>
</OL>
</BODY>
</HTML>

View File

@ -0,0 +1,74 @@
<HTML>
<HEAD>
<TITLE>Cloud.com's EC2 local deployment Guide</TITLE>
</HEAD>
<BODY>
<H1>Cloud.com's EC2 local deployment Guide</H1>
8/30/2010
8/25/2011 (updated)
<H2>Table of Contents</H2>
<UL>
<LI><A href="#prereq">1. Required 3rd Party Software</A></LI>
<LI><A href="#git">2. Clone repository</A></LI>
<LI><A href="#build">3. Build, deploy and run cloud-bridge with ant</A></LI>
</UL>
<P>
<H2 id="prereq">1. Required 3rd Party Software</H2>
1) Following software has to be installed in order to deploy and run cloud-bridge tool:
<pre>
apache-tomcat-6.0.32
axis2 1.5.1 (http://apache.imghat.com//ws/axis2/1_5/axis2-1.5-bin.zip)
ant
java
mysql
</pre>
2) Set following environment variables:
<pre>
ANT_HOME
CATALINA_HOME
export ANT_HOME
export JAVA_HOME
</pre>
3) Go to CATALINA_HOME directory and excute “mkdir temp” (this directory is used for storing temporary axis files)
<P>
<H2 id="git">2. Clone repository</H2>
Clone cloud-bridge repository:
<pre>
git clone git@github.com:alena11081/cloud-bridge.git
</pre>
<P>
<H2 id="build">3. Build, deploy and run cloud-bridge with ant</H2>
Deployment procedure using ant (build.xml and build-cloud-bridge.xml are config files), execute from cloned cloud-bridge directory:.
<pre>
* ant clean - removes dist directory
* ant clean-tomcat - cleans up $CATALINA_HOME/webapps/bridge directory
* ant build-cloud-bridge compiles and places the resulting jars into cloud-bridge/dist:
ls dist/
cloud-auth-ec2.mar cloud-auth-s3.mar cloud-bridge.jar cloud-ec2.aar cloud-s3.aar
* deploy-axis - copies and unwars cloud-bridge/lib/axis2.war to $CATALINA_HOME/webapps/bridge directory
<b>ant deploy-cloud-bridge</b> copies files to $CATALINA_HOME/webapps/bridge tomcat directory:
- copy cloud-bridge/dist/cloud-ec2.aar and cloud-s3.aar to $CATALINA_HOME/webapps/bridge/WEB-INF/services
- copy cloud-bridge/dist/cloud-auth-ec2.mar and cloud-auth-s3.mar to $CATALINA_HOME/webapps/bridge/WEB-INF/modules
- copy all .mar files from cloud-bridge/modules to $CATALINA_HOME/webapps/bridge/WEB-INF/modules
- copy cloud-bridge/dist/cloud-bridge.jar to $CATALINA_HOME/webapps/bridge/WEB-INF/lib
- copy all .jar files from cloud-bridge/lib directory to $CATALINA_HOME/webapps/bridge/WEB-INF/lib
- copy all .jar files from cloud-bridge/rampartlib directory to $CATALINA_HOME/webapps/bridge/WEB-INF/lib
<del>- copy all files from cloud-bridge/conf directory to $CATALINA_HOME/webapps/bridge/WEB-INF/conf</del>
- copy cloud-bridge/resource/Axis2/axis2.xml to $CATALINA_HOME/webapps/bridge/WEB-INF/conf
- copy cloud-bridge/web/web.xml to $CATALINA_HOME/webapps/bridge/WEB-INF
- copy cloud-bridge/resource/AmazonEC2/crypto.properties and xes.keystore to $CATALINA_HOME/webapps/bridge/WEB-INF/classes/
- remove $CATALINA_HOME/webapps/bridge/WEB-INF/lib/dom4j-1.6.1.jar
ant deploydb - execute cloud-bridge/db/mysql/deploy-db-bridge.sh (for Unix). If it's a windows deployment, execute db/mysql/init_db.bat script
5) Configure ec2-service.properties (see parameters descriptions in resource/AmazonEC2/docs/EC2-implementation-guide.html).
6) To run application execute "./catalina.sh run" from $CATALINA_HOME/bin directory.
</BODY>
</HTML>

View File

@ -0,0 +1,257 @@
<HTML>
<HEAD>
<TITLE>Cloud.com's EC2 API User's Guide</TITLE>
</HEAD>
<BODY>
<H1>Cloud.com's EC2 API User's Guide</H1>
4/17/2010
<H2>Table of Contents</H2>
<UL>
<LI><A href="#part1">Part 1. Cloud.com's Specific Implementation Details</A></LI>
<UL>
<LI><A href="#registration">1. User Registration</A></LI>
<UL>
<LI><A href="#cloudkeys">1.1 Setting Cloud.com API Keys</A></LI>
<LI><A href="#certifiates">1.2 Setting a User's X509 Certificate</A></LI>
</UL>
<LI><A href="#endpoints">2. Endpoints</LI>
<LI><A href="#differences">3. Differences between Amazon's and Cloud.com's EC2 Implementations</A></LI>
<LI><A href="#misc">4. Miscellaneous</A><P></LI>
</UL>
<LI><A href="#part2">Part 2. Generic EC2 Details</A></LI>
<UL>
<LI><A href="#functions">List of EC2 Functions Implemented</A></LI>
<LI><A href="#wsdl">Supported WSDL Version</A><P></LI>
</UL>
<LI><A href="#refs">References</A></LI>
</UL>
<P></BR>
<H2 id="part1">Part 1. Cloud.com's Specific Implementation Details</H2>
<H3 id="registration">1. User Registration</H3>
To access Cloud.com's EC2 service via REST follow the instructions in Section 1.1.
To access Cloud.com's EC2 service via SOAP follow instructions in both Section 1.1 and 1.2 below.
<P>
<H3 id="cloudkeys">1.1 Setting Cloud.com API Keys</H3>
The EC2 service needs to be given the user's Cloud.com API access and secret keys <A href="#ref2">[2]</A> so that it
can make Cloud.com API calls on the user's behalf. This is done by the following REST command.
<pre>
http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonEC2?Action=SetUserKeys&accesskey=&lt;key>&secretkey=&lt;key>
</pre>
SetUserKeys is an <I>unauthorized</I> REST call.</br>
A HTTP 200 result code is returned on success and a 401 on failure.
<P>
<H3 id="certifiates">1.2 Setting a User's X509 Certificate</H3>
EC2 uses WS-Security <A href="#ref4">[4]</A> for authentication on SOAP access. WS-Security signs the entire SOAP request
using a public/private key pair. The user of Cloud.com's EC2 service must
generate a public/private key pair with the public key defined in an X509
certificate. The private key is used by a SOAP client in generating
the WS-Security signature of a SOAP request. The matching public key is stored on
a server and is used to verify the signature on each request.
<P>
The following REST command must be used by a Cloud.com's EC2 service user to
load their certificate into the service. No access via the SOAP API is
possible until this step is performed. Also for this REST command to be
successful the instructions in Section 1.1 must be performed first.
<pre>
http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonEC2?Action=SetCertificate&AWSAccessKeyId=&lt;Cloud.com API AccessKey>&cert=&lt;pem encoded cert>
</pre>
SetCertificate is an <I>authenticated</I> REST call using the same authentication scheme as all other EC2 REST calls.
This means that the following standard EC2 REST paramters must also be part of the request: Signature, SignatureMethod, Version,
SignatureVersion, and Expires <A href="#ref3">[3]</A>.</br>
A HTTP 200 result code is returned on success and a 404 on failure.
<P>
An example of a PEM encoded X509 Certificate is <A href="#ref5">[5]</A>:
<pre>
-----BEGIN CERTIFICATE-----
MIICdzCCAeCgAwIBAgIGAPCRHu3UMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNVBAYT
AlVTMRMwEQYDVQQKEwpBbWF6b24uY29tMQwwCgYDVQQLEwNBV1MxITAfBgNVBAMT
GEFXUyBMaW1pdGVkLUFzc3VyYW5jZSBDQTAeFw0xMDA2MjMxODE4MTZaFw0xMTA2
MjMxODE4MTZaMFIxCzAJBgNVBAYTAlVTMRMwEQYDVQQKEwpBbWF6b24uY29tMRcw
FQYDVQQLEw5BV1MtRGV2ZWxvcGVyczEVMBMGA1UEAxMMZWZieDQ0eXF1d3E2MIGf
MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCw+RO1QV7t5EbluyAAD11SoZ4ats5t
DBSta/QB3G9T0y3p2gURrYMDYVJ1BZmyel/DuMANx6UG6Vw+0o0SXOS3mH8Yu/lO
OOH9WxWiXulGMIrpPCiUpnWMrWhIlHu8mqLLhBx+5k4I92plMfH97BySunbv9zaf
ZRKXX3cXIYbUMwIDAQABo1cwVTAOBgNVHQ8BAf8EBAMCBaAwFgYDVR0lAQH/BAww
CgYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUCzKwCQvocPYFki/9
NORZFTsjcZ8wDQYJKoZIhvcNAQEFBQADgYEAXmIe6+XsNHYIiLGQO6dh8nvHHzDw
3sltNa7z6BSdNr7WDxpJg9oFUcddQVca1LZsjsqx6dIc1WxQUjPE9oOfSYqQZuMD
/GOpWyXMb/oJ2MLI1Vp1ABKhHoHUJmPOrIou4UbCifMeD7MFZkezkKDqqH3jQMjA
4YDNkSWLnJ9xba8=
-----END CERTIFICATE-----
</pre>
<P>
To remove a previously loaded certificate the user can simply execute
the following REST command.
<pre>
http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonEC2?Action=DeleteCertificate&AWSAccessKeyId=&lt;Cloud.com API AccessKey>
where the same value for the 'AWSAccessKeyId' parameter as was used in a previous call to SetCertificate.
</pre>
DeleteCertificate is an <I>authenticated</I> REST call using the same authentication scheme (and having all the same
required parameters) as all other EC2 REST calls.</br>
A HTTP 200 result code is returned on success and a 404 on failure.
<P>
<H3 id="endpoints">2. Endpoints</H3>
For SOAP access the endpoint is:
<pre>http://&lt;fqdn-or-ip>:&lt;port>/bridge/services/AmazonEC2</pre>
For REST access the endpoint is:
<pre>http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonEC2</pre>
<P>
<H3 id="differences">3. Differences between Amazon's and Cloud.com's EC2 Implementations</H3>
<font size=+1><I>EC2's RegisterImage Function</I></font>
<P>
This function maps to the Cloud.com's API "registerTemplate" function <A href="#ref2">[2]</A>. However the registerTemplate function
requires the following additional parameters that are not present in the RegisterImage function:
<pre>
format - the format for the template. Possible values include QCOW2, RAW, and VHD.</br>
osTypeId - the ID of the OS Type that best represents the OS of this template.</br>
zoneId - the ID of the zone the template is to be hosted on.</br>
</pre>
These parameters must be provided for a successful registerTemplate call and thus a RegsiterImage call.
To accomidate these values we have redefined the "architecture" parameter defined for RegisterImage.
The Amazon defined valid values are: "i386 | x86_64" and it is of type xsd:string. Neither of these
defined values has any meaning in the context of the Cloud.com API.
The new definition of the architecture field is a three part value of the form:
"&lt;format>:&lt;zoneName>:&lt;osTypeName>", where ":" is the field delimitor. A valid example
would be: "VHD:ZONE1:Centos 4.5". Cloud.com's EC2 code translates the "zoneName" value into a valid zoneId,
and the "osTypeName" value into a matching osTypeId. In addition, whereas the architecture field
is optional in Amazon's definition of RegisterImage, it is required in Cloud.com's modified version.
<P>
Another difference for the RegisterImage function concerns the use of the "imageLocation" parameter.
As defined by Amazon <A href="#ref3">[3]</A>:
<pre>
imageLocation - a full path to your AMI manifest in Amazon S3 storage.
</pre>
As defined for Cloud.com's EC2 implementation:
<pre>
imageLocation - is a URL of where the template is hosted. Possible URL include http:// and https://
</pre>
<P>
<font size=+1><I>EC2's DescribeInstances Function</I></font>
<P>
Only the following list of filters are currently supported:
<pre>
availability-zone
hypervisor
image-id
instance-id
instance-type
instance-state-code
instance-state-name
ip-address
owner-id
root-device-name
</pre>
<P>
<font size=+1><I>EC2's DescribeVolumes Function</I></font>
<P>
Only the following list of filters are currently supported:
<pre>
attachment.attach-time
attachment.device
attachment.instance-id
availability-zone
create-time
size
snapshot-id
status
volume-id
</pre>
<P>
<font size=+1><I>EC2's DescribeSnapshots Function</I></font>
<P>
Only the following list of filters are currently supported:
<pre>
owner-alias
owner-id (here its the CloudStack API key)
snapshot-id
start-time
status
volume-id
volume-size
</pre>
<P>
<P>
<font size=+1><I>EC2's DescribeSecurityGroups Function</I></font>
<P>
Only the following list of filters are currently supported:
<pre>
description
group-id
group-name
ip-permission.cidr
ip-permission.from-port
ip-permission.to-port
ip-permission.protocol
owner-id
</pre>
<P>
<H3 id="misc">4. Miscellaneous</H3>
The EC2 service provides a Cloud.com extension to obtain the release version of the EC2 software.
<pre>
http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonEC2?Action=CloudEC2Version
</pre>
CloudEC2Version is an <I>unauthorized</I> REST call.</br>
An example of a valid response from this function is:
<pre>
&lt;CloudEC2Version>1.01&lt;/CloudEC2Version>
</pre>
<P></BR>
<H2 id="part2">Part 2. Generic EC2 Details</H2>
<H3 id="functions">List of EC2 Functions Implemented</H3>
Refer to the Amazon EC2 documentation <A href="#ref3">[3]</A> for a description of each function.
Also see Part1, section 3 above, for differences between Amazon's and Cloud.com's EC2 implementations.
<pre>
AllocateAddress
AssociateAddress
AttachVolume
AuthorizeSecurityGroupIngress
CreateImage
CreateSecurityGroup
CreateSnapshot
CreateVolume
DeleteSecurityGroup
DeleteSnapshot
DeleteVolume
DeregisterImage
DescribeAvailabilityZones
DescribeImageAttribute
DescribeImages
DescribeInstanceAttribute
DescribeInstances
DescribeSecurityGroups
DescribeSnapshots
DescribeVolumes
DetachVolume
DisassociateAddress
ModifyImageAttribute
RebootInstances
ReleaseAddress
RegisterImage
RevokeSecurityGroupIngress
ResetImageAttribute
RunInstances
StartInstances
StopInstances
TerminateInstances
</pre>
<P>
<H3 id="wsdl">Supported WSDL Version</H3>
<A href="http://ec2.amazonaws.com/doc/2010-08-31/">http://ec2.amazonaws.com/doc/2010-08-31/</A></BR>
Amazon EC2 Command Line Tool used for testing was version 1.3-57419.
<P>
</BR>
<H2 id="refs">References</H2>
<OL>
<LI id="ref1"><A href="http://en.wikipedia.org/wiki/Public_Key_Cryptography">Public-key cryptograph</A></LI>
<LI id="ref2"><A href="http://cloud.com/community/kb">Cloud.com's Developer API</A></LI>
<LI id="ref3"><A href="http://aws.amazon.com/documentation/ec2/">Amazon's EC2 API</A></LI>
<LI id="ref4"><A href="http://en.wikipedia.org/wiki/WS-Security">WS-Security</A></LI>
<LI id="ref5"><A href="http://en.wikipedia.org/wiki/X.509">X.509 Certificates</A></LI>
</OL>
</BODY>
</HTML>

View File

@ -0,0 +1,2 @@
To generate the Java AXIS2 classes from the Amazon EC2 wsdl use the following command line:
C:\axis2-1.5.1\bin>wsdl2java.bat -ss -sd -ssi -g -p com.amazon.ec2 -ns2p "http://ec2.amazonaws.com/doc/2010-08-31/"=com.amazon.ec2 -uri ec2.wsdl

View File

@ -0,0 +1,102 @@
<HTML>
<HEAD>
<TITLE>Cloud.com's S3 API User's Guide</TITLE>
</HEAD>
<BODY>
<H1>Cloud.com's S3 API User's Guide</H1>
3/4/2011
<H2>Table of Contents</H2>
<UL>
<LI><A href="#part1">Part 1. Cloud.com's Specific Implementation Details</A></LI>
<UL>
<LI><A href="#registration">User Registration</A></LI>
<LI><A href="#endpoints">Endpoints</LI>
</UL>
<LI><A href="#part2">Part 2. Generic S3 Details</A></LI>
<UL>
<LI><A href="#functions">List of S3 Functions Implemented</A></LI>
<LI><A href="#wsdl">Supported WSDL Version</A><P></LI>
</UL>
<LI><A href="#refs">References</A></LI>
</UL>
<P></BR>
<H2 id="part1">Part 1. Cloud.com's Specific Implementation Details</H2>
<H3 id="registration">User Registration</H3>
The S3 service uses the user's Cloud.com API access and secret keys <A href="#ref1">[1]</A> to implement both
the REST and SOAP authentication algorithms. This is done by re-using an EC2 provided REST command. Once
this URL is invoked the user has registered for both the S3 service and the EC2 REST service.
<pre>
http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonS3?Action=SetUserKeys&accesskey=&lt;key>&secretkey=&lt;key>
</pre>
SetUserKeys is an <I>unauthorized</I> REST call.</br>
A HTTP 200 result code is returned on success and a 401 on failure.
<P>
<P>
<H3 id="endpoints">Endpoints</H3>
For SOAP access the endpoint is:
<pre>http://&lt;fqdn-or-ip>:&lt;port>/bridge/services/AmazonS3</pre>
For the SOAP PutObject function with a DIME attachment <A href="#ref3">[3]</A>:
<pre>http://&lt;fqdn-or-ip>:&lt;port>/bridge/dime/AmazonS3</pre>
For REST access the endpoint is:
<pre>http://&lt;fqdn-or-ip>:&lt;port>/bridge/rest/AmazonS3</pre>
<P>
<H2 id="part2">Part 2. Generic S3 Details</H2>
<H3 id="functions">List of S3 Functions Implemented</H3>
Refer to the Amazon S3 documentation <A href="#ref2">[2]</A> for a description of each function.
Also see Part1, section 3 above, for a list of unsupported S3 features.
<pre>
REST calls:
GET Service
DELETE Bucket
GET Bucket
GET Bucket acl
GET Bucket versioning
PUT Bucket
PUT Bucket acl
PUT Bucket versioning
List Multipart Uploads
DELETE Object
GET Object
GET Object acl
HEAD Object
POST Object
PUT Object
PUT Object (Copy)
Initiate Multipart Upload
Upload Part
Complete Multipart Upload
Abort Multipart Upload
List Parts
SOAP calls:
ListAllMyBuckets
CreateBucket
DeleteBucket
ListBucket
GetBucketAccessControlPolicy
SetBucketAccessControlPolicy
PutObjectInline
PutObject
CopyObject
GetObject
GetObjectExtended
DeleteObject
GetObjectAccessControlPolicy
SetObjectAccessControlPolicy
</pre>
<P>
<H3 id="wsdl">Supported WSDL Version</H3>
<A href="http://s3.amazonaws.com/doc/2006-03-01/">http://s3.amazonaws.com/doc/2006-03-01/</A></BR>
<P>
</BR>
<H2 id="refs">References</H2>
<OL>
<LI id="ref1"><A href="http://cloud.com/community/kb">Cloud.com's Developer API</A></LI>
<LI id="ref2"><A href="http://aws.amazon.com/documentation/s3/">Amazon's S3 API</A></LI>
<LI id="ref3"><A href="http://msdn.microsoft.com/en-us/magazine/cc188797.aspx">DIME</A></LI>
</OL>
</BODY>
</HTML>

View File

@ -0,0 +1,10 @@
Example of headers for a rest call of copyObject
Authorization: AWS Mark:djdjdjdjdjdjdjdj\n
Host: Henry2.s3.amazonaws.com\n
x-amz-copy-source: /Henry1/test1\n
x-amz-metadata-directive: REPLACE\n
x-amz-meta-hight: 55 feet\n
x-amz-meta-width: 13 yards\n
x-amz-meta-weight: 4 tons\n
x-amz-acl: public-read\n

17
awsapi/install.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/bash
# install.sh -- deploys cloud-bridge and the corresponding DB
#set -x
set -e
#### deploying cloud-bridge
echo "Installing cloud-bridge..."
sh deploy-cloud-bridge.sh -d "$CATALINA_HOME"
echo "Deploying database..."
cd db && sh deploy-db-bridge.sh
#change port to 8090 in server.xml
#change ec2-service.properties file
exit 0

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,12 @@
cloud (1.0.0) unstable; urgency=low
* Bumped version up to 1.0.0
-- Cloud <cloud@cloud.com> Thu, 31 Jan 2011 08:33:25 -0700
cloud (0.9.0) unstable; urgency=low
* Initial entry
-- Cloud <cloud@cloud.com> Thu, 13 Jan 2011 10:05:11 -0700

View File

@ -0,0 +1,4 @@
/usr/share/cloud/bridge/*
/usr/share/cloud/setup/bridge/*
/usr/bin/*
/etc/init.d/*

View File

@ -0,0 +1,23 @@
#!/bin/sh -e
case "$1" in
configure)
if ! id cloud > /dev/null 2>&1 ; then
adduser --system --home /usr/share/cloud --no-create-home \
--group --disabled-password --shell /bin/sh cloud
fi
for i in /usr/share/cloud/bridge
do
chmod 0775 $i
chown -R cloud.cloud $i
done
if [ "$2" = "" ] ; then # no recently configured version, this is a first install
/usr/sbin/update-rc.d cloud-bridge defaults || true
fi
;;
esac
#DEBHELPER#

View File

@ -0,0 +1,13 @@
Source: cloud
Section: libs
Priority: extra
Maintainer: Cloud <cloud@cloud.com>
Build-Depends: debhelper (>= 7), openjdk-6-jdk, tomcat6
Package: cloud-bridge
Provides: cloud-bridge
Conflicts: cloud-bridge
Replaces: cloud-bridge
Architecture: any
Depends: openjdk-6-jre
Description: Cloud.com Bridge

View File

@ -0,0 +1,119 @@
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
#
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
#
# Modified to make a template file for a multi-binary package with separated
# build-arch and build-indep targets by Bill Allombert 2001
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
# This has to be exported to make some magic below work.
export DH_OPTIONS
configure: configure-stamp
configure-stamp:
dh_testdir
(cd ../..; ./waf configure --prefix=/usr --libdir=/usr/lib --bindir=/usr/bin --javadir=/usr/share/java --sharedstatedir=/var/lib --localstatedir=/var --sysconfdir=/etc --mandir=/usr/share/man --libexecdir=/usr/bin)
(cd ../..; ./waf showconfig)
#Architecture
# build: build-arch build-indep
build: build-arch
build-arch: build-arch-stamp
build-arch-stamp: configure-stamp
# build-indep: build-indep-stamp
# build-indep-stamp: configure-stamp
#
# # Add here commands to compile the indep part of the package.
# #$(MAKE) doc
# touch $@
#
clean:
dh_testdir
dh_testroot
(cd ../..; ./waf distclean)
dh_clean
install: install-arch
# install: install-indep install-arch
# install-indep:
# dh_testdir
# dh_testroot
# dh_prep -i
# dh_installdirs -i
#
# # Add here commands to install the indep part of the package into
# # debian/<package>-doc.
# #INSTALLDOC#
#
# dh_install -i
install-arch:
dh_testdir
dh_testroot
dh_prep -s
dh_installdirs -s
(cd ../..; ant deploy-debian-install)
chmod 755 debian/tmp/etc/init.d/cloud-bridge
chmod 755 debian/tmp/usr/bin/cloud-setup-bridge
chmod 755 debian/tmp/usr/bin/cloud-bridge-register
chmod 755 debian/tmp/usr/bin/cloud-setup-bridge-db
dh_install -s
# Must not depend on anything. This is to be called by
# binary-arch/binary-indep
# in another 'make' thread.
binary-common:
dh_testdir
dh_testroot
# dh_installchangelogs
# dh_installdocs -A README.html
# dh_installexamples
# dh_installmenu
# dh_installdebconf
# dh_installlogrotate
# dh_installemacsen
# dh_installpam
# dh_installmime
# dh_python
# dh_installinit
# dh_installcron
# dh_installinfo
# dh_installman
dh_link
dh_strip
dh_compress
dh_fixperms
# dh_perl
dh_makeshlibs
dh_installdeb
# dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
# Build architecture independant packages using the common target.
# binary-indep: build-indep install-indep
# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
# Build architecture dependant packages using the common target.
binary-arch: build-arch install-arch
$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
# binary: binary-arch binary-indep
binary: binary-arch
# .PHONY: build clean binary-indep binary-arch binary install install-indep install-arch configure
.PHONY: build clean binary-arch binary install install-arch configure

View File

@ -0,0 +1,81 @@
%define __os_install_post %{nil}
%global debug_package %{nil}
%define _rel 1
Name: cloud-bridge
Summary: CloudStack CloudBridge
Version: %{_ver}
#http://fedoraproject.org/wiki/PackageNamingGuidelines#Pre-Release_packages
%if "%{?_prerelease}" != ""
Release: 0.%{_build_number}%{_prerelease}
%else
Release: %{_rel}
%endif
License: GPLv3+ with exceptions or CSL 1.1
Vendor: Citrix Systems, Inc. <sqa@cloud.com>
Packager: Citrix Systems, Inc. <cloud@cloud.com>
Source0: cloud-bridge-%{_ver}.tar.bz2
Group: System Environment/Libraries
Requires: java >= 1.6.0
Requires: tomcat6
Obsoletes: cloud-bridge < %{version}-%{release}
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description
This is the CloudStack CloudBridge
%prep
%setup -q -n %{name}-%{_ver}
%build
%define _localstatedir /var
%define _sharedstatedir /usr/share
./waf configure --prefix=%{_prefix} --libdir=%{_libdir} --bindir=%{_bindir} --javadir=%{_javadir} --sharedstatedir=%{_sharedstatedir} --localstatedir=%{_localstatedir} --sysconfdir=%{_sysconfdir} --mandir=%{_mandir} --docdir=%{_docdir}/%{name}-%{version} --fast --package-version=%{_ver}
%install
[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
ant deploy-rpm-install -Dversion=%{version}
mv ../cloud-bridge-%{_ver}-1 ${RPM_BUILD_ROOT}
mkdir $RPM_BUILD_ROOT/usr/share/cloud/bridge/logs
mkdir $RPM_BUILD_ROOT/usr/share/cloud/bridge/work
mkdir $RPM_BUILD_ROOT/usr/share/cloud/bridge/temp
%clean
#[ ${RPM_BUILD_ROOT} != "/" ] && rm -rf ${RPM_BUILD_ROOT}
%preun
/sbin/service cloud-bridge stop || true
if [ "$1" == "0" ] ; then
/sbin/chkconfig --del cloud-bridge > /dev/null 2>&1 || true
/sbin/service cloud-bridge stop > /dev/null 2>&1 || true
fi
%pre
id cloud > /dev/null 2>&1 || /usr/sbin/useradd -M -c "CloudStack CloudBridge unprivileged user" \
-r -s /bin/sh -d %{_sharedstatedir}/cloud cloud|| true
# user harcoded here
%post
if [ "$1" == "1" ] ; then
/sbin/chkconfig --add cloud-bridge > /dev/null 2>&1 || true
/sbin/chkconfig --level 345 cloud-bridge on > /dev/null 2>&1 || true
fi
%files
%defattr(0644,cloud,cloud,0755)
/usr/share/cloud/bridge/conf/*
/usr/share/cloud/bridge/lib/*
/usr/share/cloud/bridge/webapps/*
%dir %attr(0775,cloud,cloud) /usr/share/cloud/bridge/logs
%dir %attr(0775,cloud,cloud) /usr/share/cloud/bridge/work
%dir %attr(0775,cloud,cloud) /usr/share/cloud/bridge/temp
%attr(0644,root,root) /usr/share/cloud/setup/bridge/db/*
%attr(0755,root,root) /etc/init.d/cloud-bridge
%attr(0755,root,root) /usr/bin/cloud-bridge-register
%attr(0755,root,root) /usr/bin/cloud-setup-bridge
%attr(0755,root,root) /usr/bin/cloud-setup-bridge-db

23
awsapi/release-notes.txt Normal file
View File

@ -0,0 +1,23 @@
1.0.2.RC6
=========
* ec2-allocate-address and ec2-run-instances should now work with CloudStack advanced network mode.
* findNetwork improved and now used with ec2-allocate-address.
* Support for string based id's (UUIDs) for all objects. Prior to this, CB used Long's to store objectIds returned from CloudStack.
1.0.2.RC5
=========
* Fixed ec2-register/registerTemplate calls
1.0.2.RC4
=========
* Bug 14037 CloudBridge deployment would overwrite files in /usr/share/cloud/bridge/conf, is now fixed
1.0.2.RC3
=========
* Bug 14015 When using cloudStackApi, we must be sure to reset access/secret keys on each call in e
* Better error error checking for bad json responses (empty lists) from CloudStack...
* Bug 13400: CloudBridge didn't honor free-form end-points (instead expecting hostnames). This change allows for free form end-points.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
org.apache.ws.security.crypto.merlin.keystore.type=jks
org.apache.ws.security.crypto.merlin.keystore.password=apache
org.apache.ws.security.crypto.merlin.keystore.alias=xeskey
org.apache.ws.security.crypto.merlin.alias.password=apache
org.apache.ws.security.crypto.merlin.file=xes.keystore

View File

@ -0,0 +1,377 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This file was auto-generated from WSDL -->
<!-- by the Apache Axis2 version: 1.5 Built on : Apr 30, 2009 (06:07:24 EDT) -->
<serviceGroup>
<service name="AmazonEC2" class="com.cloud.bridge.lifecycle.ServiceEngineLifecycle">
<messageReceivers>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="com.amazon.ec2.AmazonEC2MessageReceiverInOut"/>
</messageReceivers>
<parameter name="ServiceClass">com.cloud.bridge.service.EC2SoapService</parameter>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="modifyUserWSDLPortAddress">true</parameter>
<operation name="ModifyInstanceAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ModifyInstanceAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ModifyInstanceAttributeResponse</outputActionMapping>
</operation>
<operation name="CreateVolume" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateVolume</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateVolumeResponse</outputActionMapping>
</operation>
<operation name="StopInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>StopInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/StopInstancesResponse</outputActionMapping>
</operation>
<operation name="ConfirmProductInstance" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ConfirmProductInstance</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ConfirmProductInstanceResponse</outputActionMapping>
</operation>
<operation name="RequestSpotInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>RequestSpotInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/RequestSpotInstancesResponse</outputActionMapping>
</operation>
<operation name="DeleteSecurityGroup" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteSecurityGroup</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteSecurityGroupResponse</outputActionMapping>
</operation>
<operation name="CreateSpotDatafeedSubscription" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateSpotDatafeedSubscription</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateSpotDatafeedSubscriptionResponse</outputActionMapping>
</operation>
<operation name="RegisterImage" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>RegisterImage</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/RegisterImageResponse</outputActionMapping>
</operation>
<operation name="DeleteKeyPair" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteKeyPair</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteKeyPairResponse</outputActionMapping>
</operation>
<operation name="DeleteSubnet" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteSubnet</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteSubnetResponse</outputActionMapping>
</operation>
<operation name="ResetSnapshotAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ResetSnapshotAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ResetSnapshotAttributeResponse</outputActionMapping>
</operation>
<operation name="DeleteCustomerGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteCustomerGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteCustomerGatewayResponse</outputActionMapping>
</operation>
<operation name="DeleteVolume" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteVolume</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteVolumeResponse</outputActionMapping>
</operation>
<operation name="StartInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>StartInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/StartInstancesResponse</outputActionMapping>
</operation>
<operation name="DescribeAddresses" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeAddresses</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeAddressesResponse</outputActionMapping>
</operation>
<operation name="CreateSubnet" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateSubnet</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateSubnetResponse</outputActionMapping>
</operation>
<operation name="PurchaseReservedInstancesOffering" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>PurchaseReservedInstancesOffering</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/PurchaseReservedInstancesOfferingResponse</outputActionMapping>
</operation>
<operation name="DescribeDhcpOptions" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeDhcpOptions</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeDhcpOptionsResponse</outputActionMapping>
</operation>
<operation name="CreateVpnConnection" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateVpnConnection</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateVpnConnectionResponse</outputActionMapping>
</operation>
<operation name="DescribeImageAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeImageAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeImageAttributeResponse</outputActionMapping>
</operation>
<operation name="DescribeInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeInstancesResponse</outputActionMapping>
</operation>
<operation name="DeleteDhcpOptions" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteDhcpOptions</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteDhcpOptionsResponse</outputActionMapping>
</operation>
<operation name="CreateSnapshot" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateSnapshot</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateSnapshotResponse</outputActionMapping>
</operation>
<operation name="CreateDhcpOptions" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateDhcpOptions</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateDhcpOptionsResponse</outputActionMapping>
</operation>
<operation name="DescribeSpotPriceHistory" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSpotPriceHistory</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSpotPriceHistoryResponse</outputActionMapping>
</operation>
<operation name="DescribePlacementGroups" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribePlacementGroups</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribePlacementGroupsResponse</outputActionMapping>
</operation>
<operation name="DescribeLicenses" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeLicenses</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeLicensesResponse</outputActionMapping>
</operation>
<operation name="DescribeSpotInstanceRequests" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSpotInstanceRequests</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSpotInstanceRequestsResponse</outputActionMapping>
</operation>
<operation name="TerminateInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>TerminateInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/TerminateInstancesResponse</outputActionMapping>
</operation>
<operation name="RevokeSecurityGroupIngress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>RevokeSecurityGroupIngress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/RevokeSecurityGroupIngressResponse</outputActionMapping>
</operation>
<operation name="ImportKeyPair" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ImportKeyPair</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ImportKeyPairResponse</outputActionMapping>
</operation>
<operation name="CreatePlacementGroup" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreatePlacementGroup</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreatePlacementGroupResponse</outputActionMapping>
</operation>
<operation name="AllocateAddress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AllocateAddress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AllocateAddressResponse</outputActionMapping>
</operation>
<operation name="DescribeAvailabilityZones" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeAvailabilityZones</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeAvailabilityZonesResponse</outputActionMapping>
</operation>
<operation name="DeleteVpnGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteVpnGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteVpnGatewayResponse</outputActionMapping>
</operation>
<operation name="DeleteVpc" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteVpc</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteVpcResponse</outputActionMapping>
</operation>
<operation name="DeleteSnapshot" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteSnapshot</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteSnapshotResponse</outputActionMapping>
</operation>
<operation name="DescribeSubnets" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSubnets</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSubnetsResponse</outputActionMapping>
</operation>
<operation name="CreateVpc" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateVpc</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateVpcResponse</outputActionMapping>
</operation>
<operation name="ActivateLicense" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ActivateLicense</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ActivateLicenseResponse</outputActionMapping>
</operation>
<operation name="DescribeSnapshotAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSnapshotAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSnapshotAttributeResponse</outputActionMapping>
</operation>
<operation name="DescribeTags" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeTags</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeTagsResponse</outputActionMapping>
</operation>
<operation name="DescribeVpnConnections" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeVpnConnections</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeVpnConnectionsResponse</outputActionMapping>
</operation>
<operation name="AuthorizeSecurityGroupIngress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AuthorizeSecurityGroupIngress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AuthorizeSecurityGroupIngressResponse</outputActionMapping>
</operation>
<operation name="DescribeReservedInstancesOfferings" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeReservedInstancesOfferings</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeReservedInstancesOfferingsResponse</outputActionMapping>
</operation>
<operation name="DescribeVpcs" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeVpcs</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeVpcsResponse</outputActionMapping>
</operation>
<operation name="DeleteTags" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteTags</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteTagsResponse</outputActionMapping>
</operation>
<operation name="UnmonitorInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>UnmonitorInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/UnmonitorInstancesResponse</outputActionMapping>
</operation>
<operation name="RebootInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>RebootInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/RebootInstancesResponse</outputActionMapping>
</operation>
<operation name="AssociateDhcpOptions" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AssociateDhcpOptions</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AssociateDhcpOptionsResponse</outputActionMapping>
</operation>
<operation name="DescribeInstanceAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeInstanceAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeInstanceAttributeResponse</outputActionMapping>
</operation>
<operation name="DeletePlacementGroup" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeletePlacementGroup</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeletePlacementGroupResponse</outputActionMapping>
</operation>
<operation name="CreateKeyPair" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateKeyPair</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateKeyPairResponse</outputActionMapping>
</operation>
<operation name="BundleInstance" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>BundleInstance</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/BundleInstanceResponse</outputActionMapping>
</operation>
<operation name="AttachVpnGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AttachVpnGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AttachVpnGatewayResponse</outputActionMapping>
</operation>
<operation name="DescribeKeyPairs" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeKeyPairs</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeKeyPairsResponse</outputActionMapping>
</operation>
<operation name="ResetImageAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ResetImageAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ResetImageAttributeResponse</outputActionMapping>
</operation>
<operation name="CreateTags" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateTags</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateTagsResponse</outputActionMapping>
</operation>
<operation name="DescribeVolumes" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeVolumes</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeVolumesResponse</outputActionMapping>
</operation>
<operation name="DetachVpnGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DetachVpnGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DetachVpnGatewayResponse</outputActionMapping>
</operation>
<operation name="CancelBundleTask" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CancelBundleTask</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CancelBundleTaskResponse</outputActionMapping>
</operation>
<operation name="GetConsoleOutput" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>GetConsoleOutput</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/GetConsoleOutputResponse</outputActionMapping>
</operation>
<operation name="DetachVolume" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DetachVolume</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DetachVolumeResponse</outputActionMapping>
</operation>
<operation name="RunInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>RunInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/RunInstancesResponse</outputActionMapping>
</operation>
<operation name="ResetInstanceAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ResetInstanceAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ResetInstanceAttributeResponse</outputActionMapping>
</operation>
<operation name="DescribeCustomerGateways" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeCustomerGateways</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeCustomerGatewaysResponse</outputActionMapping>
</operation>
<operation name="AssociateAddress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AssociateAddress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AssociateAddressResponse</outputActionMapping>
</operation>
<operation name="ReleaseAddress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ReleaseAddress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ReleaseAddressResponse</outputActionMapping>
</operation>
<operation name="DeleteSpotDatafeedSubscription" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteSpotDatafeedSubscription</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteSpotDatafeedSubscriptionResponse</outputActionMapping>
</operation>
<operation name="DescribeSecurityGroups" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSecurityGroups</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSecurityGroupsResponse</outputActionMapping>
</operation>
<operation name="CreateImage" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateImage</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateImageResponse</outputActionMapping>
</operation>
<operation name="GetPasswordData" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>GetPasswordData</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/GetPasswordDataResponse</outputActionMapping>
</operation>
<operation name="DescribeBundleTasks" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeBundleTasks</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeBundleTasksResponse</outputActionMapping>
</operation>
<operation name="AttachVolume" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>AttachVolume</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/AttachVolumeResponse</outputActionMapping>
</operation>
<operation name="DisassociateAddress" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DisassociateAddress</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DisassociateAddressResponse</outputActionMapping>
</operation>
<operation name="DeregisterImage" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeregisterImage</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeregisterImageResponse</outputActionMapping>
</operation>
<operation name="DeleteVpnConnection" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeleteVpnConnection</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeleteVpnConnectionResponse</outputActionMapping>
</operation>
<operation name="DescribeImages" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeImages</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeImagesResponse</outputActionMapping>
</operation>
<operation name="CreateSecurityGroup" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateSecurityGroup</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateSecurityGroupResponse</outputActionMapping>
</operation>
<operation name="CreateVpnGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateVpnGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateVpnGatewayResponse</outputActionMapping>
</operation>
<operation name="ModifySnapshotAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ModifySnapshotAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ModifySnapshotAttributeResponse</outputActionMapping>
</operation>
<operation name="CancelSpotInstanceRequests" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CancelSpotInstanceRequests</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CancelSpotInstanceRequestsResponse</outputActionMapping>
</operation>
<operation name="DeactivateLicense" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DeactivateLicense</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DeactivateLicenseResponse</outputActionMapping>
</operation>
<operation name="MonitorInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>MonitorInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/MonitorInstancesResponse</outputActionMapping>
</operation>
<operation name="ModifyImageAttribute" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>ModifyImageAttribute</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/ModifyImageAttributeResponse</outputActionMapping>
</operation>
<operation name="DescribeSnapshots" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSnapshots</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSnapshotsResponse</outputActionMapping>
</operation>
<operation name="CreateCustomerGateway" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>CreateCustomerGateway</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/CreateCustomerGatewayResponse</outputActionMapping>
</operation>
<operation name="DescribeSpotDatafeedSubscription" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeSpotDatafeedSubscription</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeSpotDatafeedSubscriptionResponse</outputActionMapping>
</operation>
<operation name="DescribeReservedInstances" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeReservedInstances</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeReservedInstancesResponse</outputActionMapping>
</operation>
<operation name="DescribeRegions" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeRegions</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeRegionsResponse</outputActionMapping>
</operation>
<operation name="DescribeVpnGateways" mep="http://www.w3.org/ns/wsdl/in-out" namespace="http://ec2.amazonaws.com/doc/2010-11-15/">
<actionMapping>DescribeVpnGateways</actionMapping>
<outputActionMapping>http://ec2.amazonaws.com/doc/2010-11-15/AmazonEC2PortType/DescribeVpnGatewaysResponse</outputActionMapping>
</operation>
</service>
</serviceGroup>

Binary file not shown.

View File

@ -0,0 +1,561 @@
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you 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.
-->
<axisconfig name="AxisJava2.0">
<!-- ================================================= -->
<!-- Parameters -->
<!-- ================================================= -->
<parameter name="hotdeployment">true</parameter>
<parameter name="hotupdate">false</parameter>
<parameter name="enableMTOM">false</parameter>
<parameter name="enableSwA">false</parameter>
<!--Uncomment if you want to enable file caching for attachments -->
<!--parameter name="cacheAttachments">true</parameter>
<parameter name="attachmentDIR"></parameter>
<parameter name="sizeThreshold">4000</parameter-->
<!--Uncomment if you want to plugin your own attachments lifecycle implementation -->
<!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
<!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
<!--In some server environments, the available memory heap is limited and can fill up under load -->
<!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
<!--to reduce the memory needed for the cached WSDL definitions. -->
<!--parameter name="reduceWSDLMemoryCache">true</parameter-->
<!--This will give out the timout of the configuration contexts, in milliseconds-->
<parameter name="ConfigContextTimeoutInterval">30000</parameter>
<!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
<!--that behavior.-->
<parameter name="sendStacktraceDetailsWithFaults">false</parameter>
<!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
<!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
<!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
<!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
<parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
<parameter name="userName">admin</parameter>
<parameter name="password">axis2</parameter>
<!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
<!--ServicesDirectory only works on the following cases-->
<!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
<!---When creating URL Based configurator with URL file:// -->
<!--- War based configurator with expanded case , -->
<!--All the other scenarios it will be ignored.-->
<!--<parameter name="ServicesDirectory">service</parameter>-->
<!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
<!--<parameter name="ModulesDirectory">modules</parameter>-->
<!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
<!--root which can configured using the following contextRoot parameter-->
<!--<parameter name="contextRoot">axis2</parameter>-->
<!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
<!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
<!--context path to proper Axis2 servlets-->
<!--<parameter name="servicePath">services</parameter>-->
<!--<parameter name="restPath">rest</parameter>-->
<!-- Following parameter will completely disable REST handling in Axis2-->
<parameter name="disableREST" locked="false">false</parameter>
<!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
<parameter name="disableSOAP12" locked="true">false</parameter>
<!--POJO deployer , this will alow users to drop .class file and make that into a service-->
<deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
<deployer extension=".jar" directory="servicejars"
class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
<deployer extension=".jar" directory="transports"
class="org.apache.axis2.deployment.TransportDeployer"/>
<!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2-->
<!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>-->
<!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
<!-- Following parameter will set the host name for the epr-->
<!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
<!-- If you have a front end host which exposes this webservice using a different public URL -->
<!-- use this parameter to override autodetected url -->
<!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
<!-- The way of adding listener to the system-->
<!-- <listener class="org.apache.axis2.ObserverIMPL">-->
<!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
<!-- </listener>-->
<threadContextMigrators>
<threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
</threadContextMigrators>
<!-- ================================================= -->
<!-- Message Receivers -->
<!-- ================================================= -->
<!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for -->
<!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
<!--any operation -->
<!--Note : You can override this for a particular service by adding the same element with your requirement-->
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</messageReceivers>
<!-- ================================================= -->
<!-- Message Formatter -->
<!-- ================================================= -->
<!--Following content type to message formatter mapping can be used to implement support for different message -->
<!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
<messageFormatters>
<messageFormatter contentType="application/x-www-form-urlencoded"
class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
<messageFormatter contentType="multipart/form-data"
class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
<messageFormatter contentType="application/xml"
class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
<messageFormatter contentType="text/xml"
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
<messageFormatter contentType="application/soap+xml"
class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
</messageFormatters>
<!-- ================================================= -->
<!-- Message Builders -->
<!-- ================================================= -->
<!--Following content type to builder mapping can be used to implement support for different message -->
<!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
<messageBuilders>
<messageBuilder contentType="application/xml"
class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
<messageBuilder contentType="application/x-www-form-urlencoded"
class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
<messageBuilder contentType="multipart/form-data"
class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
</messageBuilders>
<!-- ================================================= -->
<!-- Transport Ins -->
<!-- ================================================= -->
<transportReceiver name="http"
class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="port">8080</parameter>
<!-- Here is the complete list of supported parameters (see example settings further below):
port: the port to listen on (default 6060)
hostname: if non-null, url prefix used in reply-to endpoint references (default null)
originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
requestTimeout: value in millis of time that requests can wait for data (default 20000)
requestTcpNoDelay: true to maximize performance and minimize latency (default true)
false to minimize bandwidth consumption by combining segments
requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
note that default queue never fills up: see HttpFactory
threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
note that no such threads can exist with default unbounded request queue
threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
-->
<!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
<!-- <parameter name="originServer">My-Server/1.1</parameter> -->
<!-- <parameter name="requestTimeout">10000</parameter> -->
<!-- <parameter name="requestTcpNoDelay">false</parameter> -->
<!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
<!-- <parameter name="requestMaxThreadPoolSize">100</parameter> -->
<!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
<!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
</transportReceiver>
<!--Uncomment if you want to have TCP transport support-->
<!--transportReceiver name="tcp"
class="org.apache.axis2.transport.tcp.TCPServer">
<parameter name="port">6060</parameter-->>
<!--If you want to give your own host address for EPR generation-->
<!--uncomment the following paramter , and set it as you required.-->
<!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
<!-- /transportReceiver -->
<!-- ================================================= -->
<!-- Transport Outs -->
<!-- ================================================= -->
<!--Uncomment if you want to have TCP transport support-->
<!--
<transportSender name="tcp"
class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
-->
<transportSender name="local"
class="org.apache.axis2.transport.local.LocalTransportSender"/>
<transportSender name="http"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding">chunked</parameter>
<!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
<!-- <parameter name="OmitSOAP12Action">true</parameter> -->
</transportSender>
<transportSender name="https"
class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
<parameter name="PROTOCOL">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding">chunked</parameter>
</transportSender>
<!-- Please enable this if you need the java transport -->
<!-- <transportSender name="java"
class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
<!-- ================================================= -->
<!-- Global Modules -->
<!-- ================================================= -->
<!-- Comment this to disable Addressing -->
<!-- <module ref="addressing"/> -->
<!--Configuring module , providing parameters for modules whether they refer or not-->
<!--<moduleConfig name="addressing">-->
<!--<parameter name="addressingPara">N/A</parameter>-->
<!--</moduleConfig>-->
<!-- ================================================= -->
<!-- Clustering -->
<!-- ================================================= -->
<!--
To enable clustering for this node, set the value of "enable" attribute of the "cluster"
element to "true". The initilization of a node in the cluster is handled by the class
corresponding to the "class" attribute of the "cluster" element. It is also responsible for
getting this node to join the cluster.
-->
<cluster class="org.apache.axis2.clustering.tribes.TribesClusterManager" enable="false">
<!--
This parameter indicates whther the cluster has to be automatically initalized
when the AxisConfiguration is built. If set to "true" the initialization will not be
done at that stage, and some other party will have to explictly initialize the cluster.
-->
<parameter name="AvoidInitiation">true</parameter>
<!--
Indicates whether this member is active or not. This will be useful in a setup where
members are deployed in ACTIVE and/or PASSIVE configuration
-->
<parameter name="isActive">true</parameter>
<!--
An implementation of org.apache.axis2.clustering.MembershipListener
which will be called on membership changes
-->
<!--
<parameter name="membershipListener">
<class>org.apache.axis2.clustering.MembershipListenerImpl</class>
<properties>
<property name="foo">bar</property>
</properties>
</parameter>
-->
<!--
The membership scheme used in this setup. The only values supported at the moment are
"multicast" and "wka"
1. multicast - membership is automatically discovered using multicasting
2. wka - Well-Known Address based multicasting. Membership is discovered with the help
of one or more nodes running at a Well-Known Address. New members joining a
cluster will first connect to a well-known node, register with the well-known node
and get the membership list from it. When new members join, one of the well-known
nodes will notify the others in the group. When a member leaves the cluster or
is deemed to have left the cluster, it will be detected by the Group Membership
Service (GMS) using a TCP ping mechanism.
-->
<parameter name="membershipScheme">multicast</parameter>
<!--
The clustering domain/group. Nodes in the same group will belong to the same multicast
domain. There will not be interference between nodes in different groups.
-->
<parameter name="domain">apache.axis2.domain</parameter>
<!--
This parameter is only valid when the "mode" parameter is set to application. This indicates
the domain in which the the applications being load balanced are deployed.
-->
<parameter name="applicationDomain">apache.axis2.application.domain</parameter>
<!--
When a Web service request is received, and processed, before the response is sent to the
client, should we update the states of all members in the cluster? If the value of
this parameter is set to "true", the response to the client will be sent only after
all the members have been updated. Obviously, this can be time consuming. In some cases,
such this overhead may not be acceptable, in which case the value of this parameter
should be set to "false"
-->
<parameter name="synchronizeAll">true</parameter>
<!--
The maximum number of times we need to retry to send a message to a particular node
before giving up and considering that node to be faulty
-->
<parameter name="maxRetries">10</parameter>
<!-- The multicast address to be used -->
<parameter name="mcastAddress">228.0.0.4</parameter>
<!-- The multicast port to be used -->
<parameter name="mcastPort">45564</parameter>
<!-- The frequency of sending membership multicast messages (in ms) -->
<parameter name="mcastFrequency">500</parameter>
<!-- The time interval within which if a member does not respond, the member will be
deemed to have left the group (in ms)
-->
<parameter name="memberDropTime">3000</parameter>
<!--
The IP address of the network interface to which the multicasting has to be bound to.
Multicasting would be done using this interface.
-->
<parameter name="mcastBindAddress">127.0.0.1</parameter>
<!-- The host name or IP address of this member -->
<parameter name="localMemberHost">127.0.0.1</parameter>
<!--
The TCP port used by this member. This is the port through which other nodes will
contact this member
-->
<parameter name="localMemberPort">4000</parameter>
<!--
Preserve message ordering. This will be done according to sender order.
-->
<parameter name="preserveMessageOrder">true</parameter>
<!--
Maintain atmost-once message processing semantics
-->
<parameter name="atmostOnceMessageSemantics">true</parameter>
<!--
The list of static or well-known members. These entries will only be valid if the
"membershipScheme" above is set to "wka"
-->
<members>
<member>
<hostName>127.0.0.1</hostName>
<port>4000</port>
</member>
<member>
<hostName>127.0.0.1</hostName>
<port>4001</port>
</member>
</members>
<!--
Enable the load balancer entry if you need to run this node as a load balancer.
Multiple application domains with different LoadBalanceEventHandler implementations
can be defined in this section.
-->
<loadBalancer enable="false">
<applicationDomain name="apache.axis2.application.domain"
handler="org.apache.axis2.clustering.DefaultLoadBalanceEventHandler"/>
</loadBalancer>
<!--
This interface is responsible for handling configuration management.
Configuraion changes include:
1. Rebooting an entire cluster, in which case, all nodes have to load the new
Axis2 configuration in a consistent manner
2. Deploying a new service to a cluster or undeploying a service from a cluster
3. Changing the policies of a service deployed on the cluster
The "enable" attribute indicates whether Configuration management has been enabled
-->
<configurationManager
class="org.apache.axis2.clustering.configuration.DefaultConfigurationManager"
enable="true">
<listener
class="org.apache.axis2.clustering.configuration.DefaultConfigurationManagerListener"/>
</configurationManager>
<!--
This interface is responsible for handling context replication. The property changes in
the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.
The "excludes" patterns can be used to specify the prefixes (e.g. local_*) or
suffixes (e.g. *_local) of the properties to be excluded from replication. The pattern
"*" indicates that all properties in a particular context should not be replicated.
The "enable" attribute indicates whether context replication has been enabled
-->
<contextManager class="org.apache.axis2.clustering.context.DefaultContextManager"
enable="true">
<listener class="org.apache.axis2.clustering.context.DefaultContextManagerListener"/>
<replication>
<defaults>
<exclude name="local_*"/>
<exclude name="LOCAL_*"/>
</defaults>
<context class="org.apache.axis2.context.ConfigurationContext">
<exclude name="UseAsyncOperations"/>
<exclude name="SequencePropertyBeanMap"/>
</context>
<context class="org.apache.axis2.context.ServiceGroupContext">
<exclude name="my.sandesha.*"/>
</context>
<context class="org.apache.axis2.context.ServiceContext">
<exclude name="my.sandesha.*"/>
</context>
</replication>
</contextManager>
</cluster>
<!-- ================================================= -->
<!-- Phases -->
<!-- ================================================= -->
<phaseOrder type="InFlow">
<!-- System predefined phases -->
<phase name="Transport">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
<order phase="Transport"/>
</handler>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
<order phase="Transport"/>
</handler>
</phase>
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<!-- needs to be before the X509 cert is removed -->
<phase name="ec2authentication">
<handler name="InFlowEC2Auth"
class="com.cloud.bridge.auth.ec2.AuthenticationHandler">
<order phase="ec2authentication"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- System predefined phases -->
<!-- After Postdispatch phase module author or service author can add any phase he want -->
<phase name="OperationInPhase">
<handler name="MustUnderstandChecker"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
<order phase="OperationInPhase"/>
</handler>
</phase>
<phase name="s3authentication">
<handler name="InFlowS3Auth"
class="com.cloud.bridge.auth.s3.AuthenticationHandler">
<order phase="s3authentication"/>
</handler>
</phase>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutPhase"/>
<!--system predefined phase-->
<!--these phase will run irrespective of the service-->
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
<phaseOrder type="InFaultFlow">
<phase name="Addressing">
<handler name="AddressingBasedDispatcher"
class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
<order phase="Addressing"/>
</handler>
</phase>
<phase name="Security"/>
<phase name="PreDispatch"/>
<phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
<handler name="RequestURIBasedDispatcher"
class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
<handler name="SOAPActionBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
<handler name="RequestURIOperationDispatcher"
class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
<handler name="SOAPMessageBodyBasedDispatcher"
class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
<handler name="HTTPLocationBasedDispatcher"
class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
<handler name="GenericProviderDispatcher"
class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
<handler name="MustUnderstandValidationDispatcher"
class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
</phase>
<phase name="RMPhase"/>
<!-- user can add his own phases to this area -->
<phase name="OperationInFaultPhase"/>
<phase name="soapmonitorPhase"/>
</phaseOrder>
<phaseOrder type="OutFaultFlow">
<!-- user can add his own phases to this area -->
<phase name="soapmonitorPhase"/>
<phase name="OperationOutFaultPhase"/>
<phase name="RMPhase"/>
<phase name="PolicyDetermination"/>
<phase name="MessageOut"/>
<phase name="Security"/>
</phaseOrder>
</axisconfig>

1
awsapi/scripts/run.bat Normal file
View File

@ -0,0 +1 @@
java -cp cloud-tool.jar;./lib/XmlSchema-1.4.3.jar;./lib/antlr-2.7.6.jar;./lib/apache-log4j-extras-1.0.jar;./lib/axiom-api-1.2.8.jar;./lib/axiom-impl-1.2.8.jar;./lib/axis2-adb-1.5.1.jar;./lib/axis2-ant-plugin-1.5.1.jar;./lib/axis2-jaxbri-1.5.1.jar;./lib/axis2-jaxws-1.5.1.jar;./lib/axis2-jibx-1.5.1.jar;./lib/axis2-json-1.5.1.jar;./lib/axis2-kernel-1.5.1.jar;./lib/axis2-transport-http-1.5.1.jar;./lib/axis2-transport-local-1.5.1.jar;./lib/commons-codec-1.3.jar;./lib/commons-collections-3.1.jar;./lib/commons-fileupload-1.2.jar;./lib/commons-httpclient-3.1.jar;./lib/commons-io-1.4.jar;./lib/commons-logging-1.1.1.jar;./lib/dom4j-1.6.1.jar;./lib/hibernate3.jar;./lib/httpcore-4.0.jar;./lib/javassist-3.9.0.GA.jar;./lib/jta-1.1.jar;./lib/junit-4.8.1.jar;./lib/log4j-1.2.15.jar;./lib/mail-1.4.jar;./lib/mysql-connector-java-5.1.7-bin.jar;./lib/neethi-2.0.4.jar;./lib/servlet-api.jar;./lib/slf4j-api-1.5.11.jar;./lib/slf4j-simple-1.5.11.jar;./lib/wsdl4j-1.6.2.jar com.cloud.gate.tool.CloudS3CmdTool %*

7
awsapi/scripts/run.sh Normal file
View File

@ -0,0 +1,7 @@
CP=.
for file in lib/*.jar
do
CP=${CP}:$file
done
java -cp $CP:./cloud-tool.jar com.cloud.gate.tool.CloudS3CmdTool $@