mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
merge from master
This commit is contained in:
commit
5fee891162
9
.gitignore
vendored
9
.gitignore
vendored
@ -45,10 +45,13 @@ deps/awsapi-lib/
|
||||
git-remote-https.exe.stackdump
|
||||
*.swp
|
||||
tools/devcloud/devcloudbox/.vagrant
|
||||
deps/*.jar
|
||||
deps/*.war
|
||||
deps/*.mar
|
||||
*.jar
|
||||
*.war
|
||||
*.mar
|
||||
*.zip
|
||||
*.iso
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
awsapi/modules/*
|
||||
!.gitignore
|
||||
.classpath
|
||||
|
||||
143
INSTALL.md
Normal file
143
INSTALL.md
Normal file
@ -0,0 +1,143 @@
|
||||
This document describes how to set up and configure a single server CloudStack
|
||||
development environment. If you aren't looking for a development environment,
|
||||
the easiest way to deploy CloudStack is by using RPM or DEB packages from:
|
||||
|
||||
- http://cloudstack.org/download.html
|
||||
- http://jenkins.cloudstack.org (CI/Build server)
|
||||
- http://cloudstack.apt-get.eu (Debian repository)
|
||||
|
||||
CloudStack developers use various platforms for development, this guide will
|
||||
focus on CentOS and was tested against a CentOS 6.2 x86_64 setup.
|
||||
|
||||
Refer to the [wiki](http://cwiki.apache.org/confluence/display/CLOUDSTACK/Index)
|
||||
for the latest information, especially:
|
||||
|
||||
- [Setting up development environment](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Setting+up+CloudStack+Development+Environment) for CloudStack.
|
||||
- [Building](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Building+with+Maven) CloudStack.
|
||||
|
||||
## Setting up Development Environment
|
||||
|
||||
### Installing Tools and Dependencies
|
||||
|
||||
Install tools and dependencies used for development:
|
||||
|
||||
$ yum install git ant ant-devel java-1.6.0-openjdk java-1.6.0-openjdk-devel
|
||||
mysql mysql-server tomcat6 mkisofs gcc python MySQL-python openssh-clients wget
|
||||
|
||||
Set up Maven (3.0.4):
|
||||
|
||||
$ wget http://www.us.apache.org/dist/maven/maven-3/3.0.4/binaries/apache-maven-3.0.4-bin.tar.gz
|
||||
$ cd /usr/local/ # or any path
|
||||
$ tar -zxvf apache-maven-3.0.4-bin.tar.gz
|
||||
$ echo export M2_HOME=/usr/local/apache-maven-3.0.4 >> ~/.bashrc # or .zshrc or .profile
|
||||
$ echo export PATH=${M2_HOME}/bin:${PATH} >> ~/.bashrc # or .zshrc or .profile
|
||||
|
||||
Note: Tomcat 6.0.35 has some known issue with CloudStack, please use Tomcat
|
||||
6.0.33 from http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.33/bin
|
||||
|
||||
### Configure Environment
|
||||
|
||||
Set CATALINA_HOME to path where you extract/install tomcat, put them in your
|
||||
.bashrc or .zshrc or .profile:
|
||||
|
||||
$ echo export CATALINA_HOME=/usr/share/tomcat6/ >> ~/.bashrc
|
||||
|
||||
Fix permissions on CATALINA_HOME:
|
||||
|
||||
$ chown -R <you>:<your-group> $CATALINA_HOME
|
||||
|
||||
Generate you ssh keys, useful for ssh-ing to your hosts and vm etc.:
|
||||
|
||||
$ ssh-keygen -t rsa -q
|
||||
|
||||
CloudStack uses some ports, make sure at least those used by the management
|
||||
server are available and not blocked by any local firewall. Following ports are
|
||||
used by CloudStack and its entities:
|
||||
|
||||
8787: CloudStack (Tomcat) debug socket
|
||||
9090, 8250: CloudStack Management Server, User/Client API
|
||||
8096: User/Client to CloudStack Management Server (unauthenticated)
|
||||
3306: MySQL Server
|
||||
3922, 8250, 80/443, 111/2049, 53: Secondary Storage VM
|
||||
3922, 8250, 53: Console Proxy VM
|
||||
3922, 8250, 53: Virtual Router
|
||||
22, 80, 443: XenServer, XAPI
|
||||
22: KVM
|
||||
443: vCenter
|
||||
DNS: 53
|
||||
NFS: 111/2049
|
||||
|
||||
### Configuring MySQL Server
|
||||
|
||||
Start the MySQL service:
|
||||
|
||||
$ service mysqld start
|
||||
|
||||
### Getting the Source Code
|
||||
|
||||
You may get the source code from the repository hosted on Apache:
|
||||
|
||||
$ git clone https://git-wip-us.apache.org/repos/asf/incubator-cloudstack.git
|
||||
|
||||
Or, you may fork a repository from the official Apache CloudStack mirror by
|
||||
Apache on [Github](https://github.com/apache/incubator-cloudstack)
|
||||
|
||||
To keep yourself updated on a branch, do:
|
||||
|
||||
$ git pull <origin> <branch>
|
||||
|
||||
For example, for master:
|
||||
|
||||
$ git pull origin master
|
||||
|
||||
## Building
|
||||
|
||||
Populate the dependencies using Maven:
|
||||
|
||||
$ mvn -P deps
|
||||
|
||||
Clean previous build, if needed:
|
||||
|
||||
$ mvn clean
|
||||
$ ant clean-all
|
||||
$ ant clean-tomcat
|
||||
|
||||
Build all sub-modules:
|
||||
|
||||
$ ant build-all
|
||||
|
||||
Deploy the built project on tomcat:
|
||||
|
||||
$ ant deploy-server
|
||||
|
||||
Clear old database (if any) and deploy the database schema:
|
||||
|
||||
$ ant deploydb
|
||||
|
||||
Start the management server in debug mode:
|
||||
|
||||
$ ant debug
|
||||
|
||||
If this works, you've successfully setup a single server CloudStack installation.
|
||||
|
||||
Open the following URL on your browser to access the Management Server UI:
|
||||
|
||||
http://localhost:8080/client/
|
||||
|
||||
Or,
|
||||
|
||||
http://management-server-ip-address:8080/client
|
||||
|
||||
The default credentials are; user: admin, password: password and the domain
|
||||
field should be left blank which is defaulted to the ROOT domain.
|
||||
|
||||
## Packaging
|
||||
|
||||
To create rpms:
|
||||
|
||||
$ mvn -P deps && ./waf rpm
|
||||
|
||||
To create debs:
|
||||
|
||||
$ mvn -P deps && dpkg-buildpackage
|
||||
|
||||
70
INSTALL.txt
70
INSTALL.txt
@ -1,70 +0,0 @@
|
||||
This document describes how to set up and configure a single server CloudStack development environment. If you aren't looking for a development environment The easiest way is to deploy CloudStack from RPM package, building CloudStack from source is for developers. This guide is all about building CloudStack from the source and installing directly from there . This guide is suitable for you if you want to develop the CloudStack.
|
||||
|
||||
I have tested this procedure on Fedora Core 14
|
||||
|
||||
Step 1: Install the tools and dependencies:
|
||||
For fedora the package names are ant ant-devel, openjdk, openjdk-devel
|
||||
|
||||
Tools:
|
||||
yum install ant ant-devel openjdk openjdk-devel mysql mysql-server tomcat
|
||||
|
||||
Dependencies:
|
||||
yum install jakarta-commons-collections jakarta-commons-dbcp.noarch apache-commons-logging.noarch jakarta-commons-pool jakarta-commons-httpclient.noarch ws-commons-util.noarch glibc-devel gcc python MySQL-python openssh-clients
|
||||
|
||||
Tomcat:
|
||||
Download tomcat6.0.33 from http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.33/bin/ instead of using distribution's default tomcat. Set CATALINA_HOME and CATALINA_BASE to path where you extract tomcat in environment variable, it would be better off setting them in .bashrc as it will take effect every time you log in.
|
||||
|
||||
Note: Tomcat6.0.35 has some known issue with CloudStack, please avoid it
|
||||
|
||||
SSHKEY:
|
||||
Run:
|
||||
sh-keygen -t rsa -q
|
||||
to create sshkey for your account if you don't have one
|
||||
|
||||
Step 2: Configuration
|
||||
|
||||
Start the MySQL service :
|
||||
|
||||
# service mysqld start
|
||||
|
||||
Step 3: Get the source
|
||||
|
||||
$ git clone https://github.com/CloudStack/CloudStack.git
|
||||
|
||||
For subsequent pulls, do:
|
||||
$ git pull
|
||||
|
||||
Step 4: Building, testing, and deploying CloudStack using Ant :
|
||||
|
||||
Ant is a Java-based build tool designed to be cross-platform, easy to use, extensible, and scalable. Ant is controlled by providing a text file that tells how to perform all the stages of building, testing, and deploying a project. These files are build files, and every project that uses Ant must have at least one named as build.xml. You can see build.xml in your CloudStack source.
|
||||
|
||||
Type to build CloudStack :
|
||||
$ ant clean-all build-all
|
||||
|
||||
Type to deploy mgt server :
|
||||
$ ant deploy-server
|
||||
|
||||
Type to deploy database :
|
||||
$ ant deploydb
|
||||
|
||||
Type to run mgt server:
|
||||
$ ant debug
|
||||
|
||||
If all of the above process is successful. You are done the single server CloudStack installation.Now your CloudStack Management Server is running.
|
||||
|
||||
Open your browser and type the bellow url in address bar:
|
||||
|
||||
http://localhost:8080/client/
|
||||
|
||||
OR
|
||||
|
||||
http://management-server-ip-address:8080/client
|
||||
|
||||
You can see CloudStack Management Console page via a web browser. It will show you management consle login page. You can use the default username and password and leave domain as blank.
|
||||
|
||||
The default credentials are “admin” for user and “password” for password. The domain field should be left blank. A blank
|
||||
domain field is defaulted to the ROOT domain.
|
||||
|
||||
NOTE : This document is very basic CloudStack development installation. If you are very new to CloudStack and want to feel the power of CloudStack very quickly in RPM based distro, this document will guide very clear step to get it done. Since I am new to CloudStack, I doing this documentation by learning from community. I will keet update new information in this guide to make it more valuable resource.
|
||||
|
||||
|
||||
163
LICENSE
163
LICENSE
@ -184,7 +184,7 @@ This distribution contains third party resources.
|
||||
Within the . directory
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2005-2010 Thomas Nagy
|
||||
Copyright (c) 2005-2010 Thomas Nagy
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -217,7 +217,7 @@ Within the . directory
|
||||
Within the awsapi directory
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2005-2010 Thomas Nagy
|
||||
Copyright (c) 2005-2010 Thomas Nagy
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -250,7 +250,7 @@ Within the awsapi directory
|
||||
Within the console-proxy/js directory
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2009, John Resig
|
||||
Copyright (c) 2009, John Resig
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -312,7 +312,7 @@ Within the deps directory
|
||||
Within the deps/awsapi-lib directory
|
||||
licensed under the ANTLR 2 License http://www.antlr2.org/license.html (as follows)
|
||||
|
||||
|
||||
|
||||
ANTLR 2 License
|
||||
|
||||
We reserve no legal rights to the ANTLR--it is fully in the public domain. An
|
||||
@ -328,17 +328,17 @@ Within the deps/awsapi-lib directory
|
||||
remain intact in our source code. As long as these guidelines are kept, we
|
||||
expect to continue enhancing this system and expect to make other tools
|
||||
available as they are completed.
|
||||
|
||||
|
||||
from ANTLR Translator Generator Project http://www.antlr2.org/
|
||||
antlr-2.7.6.jar http://repo1.maven.org/maven2/antlr/antlr/2.7.6/antlr-2.7.6-sources.jar
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2004-2008 The Apache Software Foundation
|
||||
Copyright (c) 2004-2008 The Apache Software Foundation
|
||||
from The Apache Software Foundation http://www.apache.org/
|
||||
XmlSchema-1.4.3.jar
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2004-2012 The Apache Software Foundation
|
||||
Copyright (c) 2004-2012 The Apache Software Foundation
|
||||
from The Apache Software Foundation http://www.apache.org/
|
||||
apache-log4j-extras-1.0.jar http://logging.apache.org/log4j/companions/extras/
|
||||
axiom-api-1.2.8.jar http://ws.apache.org/axiom/source-repository.html
|
||||
@ -370,7 +370,7 @@ Within the deps/awsapi-lib directory
|
||||
xml-apis.jar http://repo1.maven.org/maven2/xml-apis/xml-apis/1.3.04/xml-apis-1.3.04-sources.jar
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2009 Google Inc.
|
||||
Copyright (c) 2009 Google Inc.
|
||||
from Google Inc. http://google.com
|
||||
cloud-gson.jar http://code.google.com/p/google-gson/
|
||||
|
||||
@ -381,7 +381,7 @@ Within the deps/awsapi-lib directory
|
||||
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2002-2011 Atsuhiko Yamanaka, JCraft,Inc.
|
||||
Copyright (c) 2002-2011 Atsuhiko Yamanaka, JCraft,Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -412,7 +412,7 @@ Within the deps/awsapi-lib directory
|
||||
|
||||
licensed under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 http://www.opensource.org/licenses/CDDL-1.0 (as follows)
|
||||
|
||||
Copyright © 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
|
||||
@ -802,7 +802,7 @@ Within the deps/awsapi-lib directory
|
||||
|
||||
licensed under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 http://www.opensource.org/licenses/CDDL-1.0 (as follows)
|
||||
|
||||
Copyright © 2006 Sun Microsystems, Inc. All rights reserved.
|
||||
Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
|
||||
@ -1190,7 +1190,7 @@ Within the deps/awsapi-lib directory
|
||||
|
||||
licensed under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 http://www.opensource.org/licenses/CDDL-1.0 (as follows)
|
||||
|
||||
Copyright © 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
|
||||
@ -1839,13 +1839,13 @@ Within the deps/awsapi-lib directory
|
||||
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
from DOM4J Project http://dom4j.sourceforge.net/
|
||||
dom4j-1.6.1.jar http://dom4j.sourceforge.net/source-repository.html
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2004-2011 QOS.ch
|
||||
Copyright (c) 2004-2011 QOS.ch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -2343,21 +2343,79 @@ Within the deps/awsapi-lib directory
|
||||
use the text of this Exhibit A rather than the text found in the
|
||||
Original Code Source Code for Your Modifications.]
|
||||
|
||||
|
||||
|
||||
from Shigeru Chiba http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/
|
||||
javassist-3.9.0.GA.jar http://sourceforge.net/projects/jboss/files/Javassist/
|
||||
|
||||
|
||||
Within the patches/systemvm/debian/config/etc directory
|
||||
placed in the public domain
|
||||
by Adiscon GmbH http://www.adiscon.com/
|
||||
rsyslog.conf
|
||||
by Simon Kelley
|
||||
dnsmasq.conf
|
||||
vpcdnsmasq.conf
|
||||
|
||||
|
||||
Within the patches/systemvm/debian/config/etc/apache2 directory
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright (c) 2012 The Apache Software Foundation
|
||||
from The Apache Software Foundation http://www.apache.org/
|
||||
httpd.conf
|
||||
ports.conf
|
||||
sites-available/default
|
||||
sites-available/default-ssl
|
||||
vhostexample.conf
|
||||
|
||||
|
||||
Within the patches/systemvm/debian/config/etc/ssh/ directory
|
||||
licensed under the BSD (2-clause) http://www.opensource.org/licenses/BSD-2-Clause (as follows)
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this list
|
||||
of conditions and the following disclaimer. Redistributions in binary form must
|
||||
reproduce the above copyright notice, this list of conditions and the following
|
||||
disclaimer in the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
|
||||
Neither the name of the author nor the names of contributors may be used to
|
||||
endorse or promote products derived from this software without specific prior
|
||||
written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
from OpenSSH Project http://www.openssh.org/
|
||||
sshd_config
|
||||
|
||||
|
||||
Within the patches/systemvm/debian/config/root/redundant_router directory
|
||||
placed in the public domain
|
||||
by The netfilter.org project http://www.netfilter.org/
|
||||
conntrackd.conf.templ
|
||||
|
||||
|
||||
Within the scripts/storage/secondary directory
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2010-2011 OpenStack, LLC.
|
||||
Copyright (c) 2010-2011 OpenStack, LLC.
|
||||
from OpenStack, LLC http://www.openstack.org
|
||||
swift
|
||||
|
||||
|
||||
Within the scripts/vm/hypervisor/xenserver directory
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2010-2011 OpenStack, LLC.
|
||||
Copyright (c) 2010-2011 OpenStack, LLC.
|
||||
from OpenStack, LLC http://www.openstack.org
|
||||
swift
|
||||
|
||||
@ -2369,7 +2427,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the Apache License, Version 1.1 http://www.apache.org/licenses/LICENSE-1.1 (as follows)
|
||||
|
||||
Copyright © 2012 The Apache Software Foundation
|
||||
Copyright (c) 2012 The Apache Software Foundation
|
||||
|
||||
/* ====================================================================
|
||||
* The Apache Software License, Version 1.1
|
||||
@ -2429,7 +2487,7 @@ Within the target/jar directory
|
||||
cloud-commons-discovery.jar http://commons.apache.org/discovery/
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2012 The Apache Software Foundation
|
||||
Copyright (c) 2012 The Apache Software Foundation
|
||||
from The Apache Software Foundation http://www.apache.org/
|
||||
cloud-axis.jar http://axis.apache.org/axis/
|
||||
cloud-cglib.jar http://cglib.sourceforge.net/
|
||||
@ -2453,12 +2511,12 @@ Within the target/jar directory
|
||||
cloud-jasypt-1.9.jar http://www.jasypt.org
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2003-2007 Luck Consulting Pty Ltd
|
||||
Copyright (c) 2003-2007 Luck Consulting Pty Ltd
|
||||
from Luck Consulting Pty Ltd http://gregluck.com/blog/about/
|
||||
cloud-ehcache.jar http://ehcache.org/
|
||||
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2009 Google Inc.
|
||||
Copyright (c) 2009 Google Inc.
|
||||
from Google Inc. http://google.com
|
||||
cloud-google-gson-1.7.1.jar http://code.google.com/p/google-gson/
|
||||
|
||||
@ -2470,7 +2528,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2009, Caringo, Inc.
|
||||
Copyright (c) 2009, Caringo, Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -2501,7 +2559,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2002-2011 Atsuhiko Yamanaka, JCraft,Inc.
|
||||
Copyright (c) 2002-2011 Atsuhiko Yamanaka, JCraft,Inc.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
@ -2532,7 +2590,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the BSD (3-clause) http://www.opensource.org/licenses/BSD-3-Clause (as follows)
|
||||
|
||||
Copyright © 2007-2008 Trilead AG (http://www.trilead.com)
|
||||
Copyright (c) 2007-2008 Trilead AG (http://www.trilead.com)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
@ -2593,7 +2651,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 http://www.opensource.org/licenses/CDDL-1.0 (as follows)
|
||||
|
||||
Copyright © 2006 Sun Microsystems, Inc. All rights reserved.
|
||||
Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
|
||||
@ -2982,7 +3040,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 http://www.opensource.org/licenses/CDDL-1.0 (as follows)
|
||||
|
||||
Copyright © 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
|
||||
|
||||
@ -3370,7 +3428,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the Common Public License - v 1.0 http://opensource.org/licenses/cpl1.0 (as follows)
|
||||
|
||||
Copyright © IBM Corp 2006
|
||||
Copyright (c) IBM Corp 2006
|
||||
|
||||
Common Public License Version 1.0 (CPL)
|
||||
|
||||
@ -3812,7 +3870,7 @@ Within the target/jar directory
|
||||
|
||||
licensed under the Eclipse Distribution License Version 1.0 http://www.eclipse.org/org/documents/edl-v10.php (as follows)
|
||||
|
||||
Copyright © 2012 The Eclipse Foundation.
|
||||
Copyright (c) 2012 The Eclipse Foundation.
|
||||
|
||||
Eclipse Distribution License Version 1.0
|
||||
|
||||
@ -3845,6 +3903,34 @@ Within the target/jar directory
|
||||
from The Eclipse Foundation http://www.eclipse.org
|
||||
cloud-javax.persistence-2.0.0.jar http://wiki.eclipse.org/EclipseLink/Release/2.0.0
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright (C) 2008 Tóth István <stoty@tvnet.hu>
|
||||
2008-2012 Daniel Veillard <veillard@redhat.com>
|
||||
2009-2011 Bryan Kearney <bkearney@redhat.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
from The libvirt project http://libvirt.org/
|
||||
libvirt-java-0.4.9
|
||||
|
||||
licensed under the XStream BSD Style License https://fisheye.codehaus.org/browse/xstream/trunk/LICENSE.txt?hb=true (as follows)
|
||||
|
||||
|
||||
@ -3881,13 +3967,6 @@ Within the target/jar directory
|
||||
cloud-xstream-1.3.1.jar http://xstream.codehaus.org/repository.html
|
||||
|
||||
|
||||
Within the tools/gcc directory
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2009 Google Inc.
|
||||
from Google Inc. http://google.com
|
||||
compiler.jar
|
||||
|
||||
|
||||
Within the ui/lib directory
|
||||
placed in the public domain
|
||||
by Eric Meyer http://meyerweb.com/eric/
|
||||
@ -3895,7 +3974,7 @@ Within the ui/lib directory
|
||||
|
||||
licensed under the BSD (2-clause) http://www.opensource.org/licenses/BSD-2-Clause (as follows)
|
||||
|
||||
Copyright © 2008 George McGinley Smith
|
||||
Copyright (c) 2008 George McGinley Smith
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
@ -3927,7 +4006,7 @@ Within the ui/lib directory
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2011, John Resig
|
||||
Copyright (c) 2011, John Resig
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -3953,7 +4032,7 @@ Within the ui/lib directory
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2006 - 2011 Jörn Zaefferer
|
||||
Copyright (c) 2006 - 2011 Jörn Zaefferer
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -3979,7 +4058,7 @@ Within the ui/lib directory
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2010, Sebastian Tschan
|
||||
Copyright (c) 2010, Sebastian Tschan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -4005,7 +4084,7 @@ Within the ui/lib directory
|
||||
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2006 Klaus Hartl (stilbuero.de)
|
||||
Copyright (c) 2006 Klaus Hartl (stilbuero.de)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -4151,7 +4230,7 @@ Within the ui/lib/jquery-ui directory
|
||||
Within the ui/lib/qunit directory
|
||||
licensed under the MIT License http://www.opensource.org/licenses/mit-license.php (as follows)
|
||||
|
||||
Copyright © 2012 John Resig, Jörn Zaefferer
|
||||
Copyright (c) 2012 John Resig, Jörn Zaefferer
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
@ -4179,7 +4258,7 @@ Within the ui/lib/qunit directory
|
||||
|
||||
Within the utils/src/com/cloud/utils/db directory
|
||||
licensed under the Apache License, Version 2 http://www.apache.org/licenses/LICENSE-2.0.txt (as above)
|
||||
Copyright © 2004 Clinton Begin
|
||||
Copyright (c) 2004 Clinton Begin
|
||||
from Clinton Begin http://code.google.com/p/mybatis/
|
||||
ScriptRunner.java http://code.google.com/p/mybatis/
|
||||
|
||||
|
||||
@ -53,7 +53,7 @@ Software License Version 2.
|
||||
|
||||
To build the default build target, use maven3 and execute:
|
||||
|
||||
maven install
|
||||
mvn install
|
||||
|
||||
## Including optional third party libraries in your build
|
||||
|
||||
|
||||
@ -19,21 +19,7 @@ package com.cloud.agent.manager;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.CheckVirtualMachineCommand;
|
||||
import com.cloud.agent.api.CleanupNetworkRulesCmd;
|
||||
import com.cloud.agent.api.GetDomRVersionAnswer;
|
||||
import com.cloud.agent.api.GetDomRVersionCmd;
|
||||
import com.cloud.agent.api.GetVmStatsCommand;
|
||||
import com.cloud.agent.api.GetVncPortCommand;
|
||||
import com.cloud.agent.api.MigrateAnswer;
|
||||
import com.cloud.agent.api.MigrateCommand;
|
||||
import com.cloud.agent.api.NetworkUsageCommand;
|
||||
import com.cloud.agent.api.RebootCommand;
|
||||
import com.cloud.agent.api.SecurityGroupRuleAnswer;
|
||||
import com.cloud.agent.api.SecurityGroupRulesCmd;
|
||||
import com.cloud.agent.api.StartCommand;
|
||||
import com.cloud.agent.api.StopCommand;
|
||||
import com.cloud.agent.api.*;
|
||||
import com.cloud.agent.api.check.CheckSshAnswer;
|
||||
import com.cloud.agent.api.check.CheckSshCommand;
|
||||
import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand;
|
||||
@ -90,5 +76,8 @@ public interface MockVmManager extends Manager {
|
||||
MigrateAnswer Migrate(MigrateCommand cmd, SimulatorInfo info);
|
||||
GetDomRVersionAnswer getDomRVersion(GetDomRVersionCmd cmd);
|
||||
Map<String, MockVMVO> getVms(String hostGuid);
|
||||
|
||||
|
||||
CheckRouterAnswer checkRouter(CheckRouterCommand cmd);
|
||||
|
||||
Answer bumpPriority(BumpUpPriorityCommand cmd);
|
||||
}
|
||||
|
||||
@ -25,43 +25,15 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.agent.api.*;
|
||||
import com.cloud.agent.api.routing.*;
|
||||
import com.cloud.network.router.VirtualRouter;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.CheckVirtualMachineAnswer;
|
||||
import com.cloud.agent.api.CheckVirtualMachineCommand;
|
||||
import com.cloud.agent.api.CleanupNetworkRulesCmd;
|
||||
import com.cloud.agent.api.GetDomRVersionAnswer;
|
||||
import com.cloud.agent.api.GetDomRVersionCmd;
|
||||
import com.cloud.agent.api.GetVmStatsAnswer;
|
||||
import com.cloud.agent.api.GetVmStatsCommand;
|
||||
import com.cloud.agent.api.GetVncPortAnswer;
|
||||
import com.cloud.agent.api.GetVncPortCommand;
|
||||
import com.cloud.agent.api.MigrateAnswer;
|
||||
import com.cloud.agent.api.MigrateCommand;
|
||||
import com.cloud.agent.api.NetworkUsageAnswer;
|
||||
import com.cloud.agent.api.NetworkUsageCommand;
|
||||
import com.cloud.agent.api.RebootAnswer;
|
||||
import com.cloud.agent.api.RebootCommand;
|
||||
import com.cloud.agent.api.SecurityGroupRuleAnswer;
|
||||
import com.cloud.agent.api.SecurityGroupRulesCmd;
|
||||
import com.cloud.agent.api.StartAnswer;
|
||||
import com.cloud.agent.api.StartCommand;
|
||||
import com.cloud.agent.api.StopAnswer;
|
||||
import com.cloud.agent.api.StopCommand;
|
||||
import com.cloud.agent.api.VmStatsEntry;
|
||||
import com.cloud.agent.api.check.CheckSshAnswer;
|
||||
import com.cloud.agent.api.check.CheckSshCommand;
|
||||
import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand;
|
||||
import com.cloud.agent.api.proxy.WatchConsoleProxyLoadCommand;
|
||||
import com.cloud.agent.api.routing.DhcpEntryCommand;
|
||||
import com.cloud.agent.api.routing.IpAssocCommand;
|
||||
import com.cloud.agent.api.routing.LoadBalancerConfigCommand;
|
||||
import com.cloud.agent.api.routing.SavePasswordCommand;
|
||||
import com.cloud.agent.api.routing.SetFirewallRulesCommand;
|
||||
import com.cloud.agent.api.routing.SetPortForwardingRulesCommand;
|
||||
import com.cloud.agent.api.routing.SetStaticNatRulesCommand;
|
||||
import com.cloud.agent.api.routing.VmDataCommand;
|
||||
import com.cloud.agent.api.to.NicTO;
|
||||
import com.cloud.agent.api.to.VirtualMachineTO;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
@ -262,8 +234,37 @@ public class MockVmManagerImpl implements MockVmManager {
|
||||
txn.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@Override
|
||||
public CheckRouterAnswer checkRouter(CheckRouterCommand cmd) {
|
||||
String router_name = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
|
||||
int router_id = Integer.parseInt(router_name.split("-")[1]);
|
||||
if (router_id % 2 == 0) {
|
||||
s_logger.debug("Found even routerId, making it MASTER in RvR");
|
||||
CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: MASTER & Bumped: NO", true);
|
||||
ans.setState(VirtualRouter.RedundantState.MASTER);
|
||||
return ans;
|
||||
} else {
|
||||
s_logger.debug("Found odd routerId, making it BACKUP in RvR");
|
||||
CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: MASTER & Bumped: NO", true);
|
||||
ans.setState(VirtualRouter.RedundantState.BACKUP);
|
||||
return ans;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Answer bumpPriority(BumpUpPriorityCommand cmd) {
|
||||
String router_name = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
|
||||
int router_id = Integer.parseInt(router_name.split("-")[1]);
|
||||
if (router_id % 2 == 0) {
|
||||
return new Answer(cmd, true, "Status: MASTER & Bumped: YES");
|
||||
} else {
|
||||
return new Answer(cmd, true, "Status: BACKUP & Bumped: YES");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, State> getVmStates(String hostGuid) {
|
||||
Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
|
||||
try {
|
||||
|
||||
@ -24,45 +24,9 @@ import java.util.Map;
|
||||
import javax.ejb.Local;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.agent.api.*;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.agent.api.Answer;
|
||||
import com.cloud.agent.api.AttachIsoCommand;
|
||||
import com.cloud.agent.api.AttachVolumeCommand;
|
||||
import com.cloud.agent.api.BackupSnapshotCommand;
|
||||
import com.cloud.agent.api.CheckHealthCommand;
|
||||
import com.cloud.agent.api.CheckNetworkCommand;
|
||||
import com.cloud.agent.api.CheckVirtualMachineCommand;
|
||||
import com.cloud.agent.api.CleanupNetworkRulesCmd;
|
||||
import com.cloud.agent.api.ClusterSyncAnswer;
|
||||
import com.cloud.agent.api.ClusterSyncCommand;
|
||||
import com.cloud.agent.api.Command;
|
||||
import com.cloud.agent.api.ComputeChecksumCommand;
|
||||
import com.cloud.agent.api.CreatePrivateTemplateFromSnapshotCommand;
|
||||
import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand;
|
||||
import com.cloud.agent.api.CreateStoragePoolCommand;
|
||||
import com.cloud.agent.api.CreateVolumeFromSnapshotCommand;
|
||||
import com.cloud.agent.api.DeleteSnapshotBackupCommand;
|
||||
import com.cloud.agent.api.DeleteStoragePoolCommand;
|
||||
import com.cloud.agent.api.GetDomRVersionCmd;
|
||||
import com.cloud.agent.api.GetHostStatsCommand;
|
||||
import com.cloud.agent.api.GetStorageStatsCommand;
|
||||
import com.cloud.agent.api.GetVmStatsCommand;
|
||||
import com.cloud.agent.api.GetVncPortCommand;
|
||||
import com.cloud.agent.api.MaintainCommand;
|
||||
import com.cloud.agent.api.ManageSnapshotCommand;
|
||||
import com.cloud.agent.api.MigrateCommand;
|
||||
import com.cloud.agent.api.ModifyStoragePoolCommand;
|
||||
import com.cloud.agent.api.NetworkUsageCommand;
|
||||
import com.cloud.agent.api.PingTestCommand;
|
||||
import com.cloud.agent.api.PrepareForMigrationCommand;
|
||||
import com.cloud.agent.api.RebootCommand;
|
||||
import com.cloud.agent.api.SecStorageSetupCommand;
|
||||
import com.cloud.agent.api.SecStorageVMSetupCommand;
|
||||
import com.cloud.agent.api.SecurityGroupRulesCmd;
|
||||
import com.cloud.agent.api.StartCommand;
|
||||
import com.cloud.agent.api.StopCommand;
|
||||
import com.cloud.agent.api.StoragePoolInfo;
|
||||
import com.cloud.agent.api.check.CheckSshCommand;
|
||||
import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand;
|
||||
import com.cloud.agent.api.proxy.WatchConsoleProxyLoadCommand;
|
||||
@ -292,13 +256,17 @@ public class SimulatorManagerImpl implements SimulatorManager {
|
||||
return _mockAgentMgr.maintain((MaintainCommand)cmd);
|
||||
} else if (cmd instanceof GetVmStatsCommand) {
|
||||
return _mockVmMgr.getVmStats((GetVmStatsCommand)cmd);
|
||||
} else if (cmd instanceof CheckRouterCommand) {
|
||||
return _mockVmMgr.checkRouter((CheckRouterCommand) cmd);
|
||||
} else if (cmd instanceof BumpUpPriorityCommand) {
|
||||
return _mockVmMgr.bumpPriority((BumpUpPriorityCommand) cmd);
|
||||
} else if (cmd instanceof GetDomRVersionCmd) {
|
||||
return _mockVmMgr.getDomRVersion((GetDomRVersionCmd)cmd);
|
||||
return _mockVmMgr.getDomRVersion((GetDomRVersionCmd) cmd);
|
||||
} else if (cmd instanceof ClusterSyncCommand) {
|
||||
return new Answer(cmd);
|
||||
//return new ClusterSyncAnswer(((ClusterSyncCommand) cmd).getClusterId(), this.getVmStates(hostGuid));
|
||||
} else if (cmd instanceof CopyVolumeCommand) {
|
||||
return _mockStorageMgr.CopyVolume((CopyVolumeCommand)cmd);
|
||||
return _mockStorageMgr.CopyVolume((CopyVolumeCommand) cmd);
|
||||
} else {
|
||||
return Answer.createUnsupportedCommandAnswer(cmd);
|
||||
}
|
||||
|
||||
@ -1,3 +1,20 @@
|
||||
// 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.
|
||||
|
||||
package com.cloud.simulator;
|
||||
|
||||
import com.cloud.utils.SerialVersionUID;
|
||||
@ -21,4 +38,4 @@ public class SimulatorRuntimeException extends RuntimeCloudException {
|
||||
protected SimulatorRuntimeException() {
|
||||
super();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -16,15 +16,14 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-agent</artifactId>
|
||||
<name>Apache CloudStack Agents</name>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@ -16,15 +16,14 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-api</artifactId>
|
||||
<name>Apache CloudStack API</name>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
||||
@ -45,6 +45,10 @@ public class SetupGuestNetworkCommand extends NetworkElementCommand{
|
||||
return networkDomain;
|
||||
}
|
||||
|
||||
public boolean isAdd() {
|
||||
return add;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean executeInSequence() {
|
||||
return true;
|
||||
|
||||
@ -120,7 +120,7 @@ public class AddVpnUserCmd extends BaseAsyncCreateCmd {
|
||||
public void execute(){
|
||||
VpnUser vpnUser = _entityMgr.findById(VpnUser.class, getEntityId());
|
||||
Account account = _entityMgr.findById(Account.class, vpnUser.getAccountId());
|
||||
if (!_ravService.applyVpnUsers(vpnUser.getAccountId())) {
|
||||
if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add vpn user");
|
||||
}
|
||||
|
||||
|
||||
@ -63,9 +63,15 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
description = "the protocol for the port fowarding rule. Valid values are TCP or UDP.")
|
||||
private String protocol;
|
||||
|
||||
@Parameter(name = ApiConstants.PRIVATE_END_PORT, type = CommandType.INTEGER, required = false, description = "the ending port of port forwarding rule's private port range")
|
||||
private Integer privateEndPort;
|
||||
|
||||
@Parameter(name = ApiConstants.PUBLIC_START_PORT, type = CommandType.INTEGER, required = true,
|
||||
description = "the starting port of port forwarding rule's public port range")
|
||||
private Integer publicStartPort;
|
||||
|
||||
@Parameter(name = ApiConstants.PUBLIC_END_PORT, type = CommandType.INTEGER, required = false, description = "the ending port of port forwarding rule's private port range")
|
||||
private Integer publicEndPort;
|
||||
|
||||
@IdentityMapper(entityTableName = "vm_instance")
|
||||
@Parameter(name = ApiConstants.VIRTUAL_MACHINE_ID, type = CommandType.LONG, required = true,
|
||||
@ -93,7 +99,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
// ///////////////////////////////////////////////////
|
||||
|
||||
public String getEntityTable() {
|
||||
return "firewall_rules";
|
||||
return "firewall_rules";
|
||||
}
|
||||
|
||||
public Long getIpAddressId() {
|
||||
@ -117,7 +123,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public Boolean getOpenFirewall() {
|
||||
boolean isVpc = getVpcId() == null ? false : true;
|
||||
if (openFirewall != null) {
|
||||
@ -154,6 +160,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
return s_name;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void execute() throws ResourceUnavailableException {
|
||||
UserContext callerContext = UserContext.current();
|
||||
@ -161,16 +168,16 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
PortForwardingRule rule = null;
|
||||
try {
|
||||
UserContext.current().setEventDetails("Rule Id: " + getEntityId());
|
||||
|
||||
|
||||
if (getOpenFirewall()) {
|
||||
success = success && _firewallService.applyFirewallRules(ipAddressId, callerContext.getCaller());
|
||||
}
|
||||
|
||||
|
||||
success = success && _rulesService.applyPortForwardingRules(ipAddressId, callerContext.getCaller());
|
||||
|
||||
// State is different after the rule is applied, so get new object here
|
||||
rule = _entityMgr.findById(PortForwardingRule.class, getEntityId());
|
||||
FirewallRuleResponse fwResponse = new FirewallRuleResponse();
|
||||
FirewallRuleResponse fwResponse = new FirewallRuleResponse();
|
||||
if (rule != null) {
|
||||
fwResponse = _responseGenerator.createPortForwardingRuleResponse(rule);
|
||||
setResponseObject(fwResponse);
|
||||
@ -178,13 +185,13 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
fwResponse.setResponseName(getCommandName());
|
||||
} finally {
|
||||
if (!success || rule == null) {
|
||||
|
||||
|
||||
if (getOpenFirewall()) {
|
||||
_firewallService.revokeRelatedFirewallRule(getEntityId(), true);
|
||||
}
|
||||
|
||||
|
||||
_rulesService.revokePortForwardingRule(getEntityId(), true);
|
||||
|
||||
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to apply port forwarding rule");
|
||||
}
|
||||
}
|
||||
@ -213,7 +220,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
|
||||
@Override
|
||||
public Integer getSourcePortEnd() {
|
||||
return publicStartPort.intValue();
|
||||
return (publicEndPort == null)? publicStartPort.intValue() : publicEndPort.intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -265,10 +272,10 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
public Ip getDestinationIpAddress() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void setDestinationIpAddress(Ip destinationIpAddress) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -278,7 +285,7 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
|
||||
@Override
|
||||
public int getDestinationPortEnd() {
|
||||
return privateStartPort.intValue();
|
||||
return (privateEndPort == null)? privateStartPort.intValue() : privateEndPort.intValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -287,12 +294,12 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
if (cidrlist != null) {
|
||||
throw new InvalidParameterValueException("Parameter cidrList is deprecated; if you need to open firewall rule for the specific cidr, please refer to createFirewallRule command");
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
PortForwardingRule result = _rulesService.createPortForwardingRule(this, virtualMachineId, getOpenFirewall());
|
||||
setEntityId(result.getId());
|
||||
} catch (NetworkRuleConflictException ex) {
|
||||
s_logger.info("Network rule conflict: ", ex);
|
||||
s_logger.info("Network rule conflict: " , ex);
|
||||
s_logger.trace("Network Rule Conflict: ", ex);
|
||||
throw new ServerApiException(BaseCmd.NETWORK_RULE_CONFLICT_ERROR, ex.getMessage());
|
||||
}
|
||||
@ -332,27 +339,27 @@ public class CreatePortForwardingRuleCmd extends BaseAsyncCreateCmd implements P
|
||||
}
|
||||
return ip;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Integer getIcmpCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Integer getIcmpType() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Long getRelated() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FirewallRuleType getType() {
|
||||
return FirewallRuleType.User;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FirewallRuleType getType() {
|
||||
return FirewallRuleType.User;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncJob.Type getInstanceType() {
|
||||
return AsyncJob.Type.FirewallRule;
|
||||
|
||||
@ -113,7 +113,7 @@ public class RemoveVpnUserCmd extends BaseAsyncCmd {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to remove vpn user");
|
||||
}
|
||||
|
||||
if (!_ravService.applyVpnUsers(owner.getId())) {
|
||||
if (!_ravService.applyVpnUsers(owner.getId(), userName)) {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to apply vpn user removal");
|
||||
}
|
||||
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||
|
||||
@ -22,11 +22,9 @@ import org.apache.log4j.Logger;
|
||||
|
||||
import com.cloud.api.ApiConstants;
|
||||
import com.cloud.api.BaseAsyncCmd;
|
||||
import com.cloud.api.BaseCmd;
|
||||
import com.cloud.api.IdentityMapper;
|
||||
import com.cloud.api.Implementation;
|
||||
import com.cloud.api.Parameter;
|
||||
import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.PhysicalNetworkResponse;
|
||||
import com.cloud.async.AsyncJob;
|
||||
import com.cloud.event.EventTypes;
|
||||
@ -99,13 +97,9 @@ public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd {
|
||||
@Override
|
||||
public void execute(){
|
||||
PhysicalNetwork result = _networkService.updatePhysicalNetwork(getId(),getNetworkSpeed(), getTags(), getVlan(), getState());
|
||||
if (result != null) {
|
||||
PhysicalNetworkResponse response = _responseGenerator.createPhysicalNetworkResponse(result);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
}else {
|
||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update physical network");
|
||||
}
|
||||
PhysicalNetworkResponse response = _responseGenerator.createPhysicalNetworkResponse(result);
|
||||
response.setResponseName(getCommandName());
|
||||
this.setResponseObject(response);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -35,7 +35,7 @@ public interface RemoteAccessVpnService {
|
||||
VpnUser addVpnUser(long vpnOwnerId, String userName, String password);
|
||||
boolean removeVpnUser(long vpnOwnerId, String userName);
|
||||
List<? extends VpnUser> listVpnUsers(long vpnOwnerId, String userName);
|
||||
boolean applyVpnUsers(long vpnOwnerId);
|
||||
boolean applyVpnUsers(long vpnOwnerId, String userName);
|
||||
|
||||
List<? extends RemoteAccessVpn> searchForRemoteAccessVpns(ListRemoteAccessVpnsCmd cmd);
|
||||
List<? extends VpnUser> searchForVpnUsers(ListVpnUsersCmd cmd);
|
||||
|
||||
@ -93,4 +93,6 @@ public interface ProjectService {
|
||||
Project enableProject(long projectId);
|
||||
|
||||
boolean deleteProjectInvitation(long invitationId);
|
||||
|
||||
Project findByProjectAccountIdIncludingRemoved(long projectAccountId);
|
||||
}
|
||||
|
||||
@ -113,6 +113,7 @@ public enum ResourceState {
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.Disable, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.DeleteHost, ResourceState.Disabled);
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.InternalEnterMaintenance, ResourceState.Maintenance);
|
||||
s_fsm.addTransition(ResourceState.ErrorInMaintenance, Event.AdminCancelMaintenance, ResourceState.Enabled);
|
||||
s_fsm.addTransition(ResourceState.Error, Event.InternalCreated, ResourceState.Error);
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,4 +56,6 @@ public interface UserAccount {
|
||||
String getRegistrationToken();
|
||||
|
||||
boolean isRegistered();
|
||||
|
||||
int getLoginAttempts();
|
||||
}
|
||||
|
||||
@ -1,203 +0,0 @@
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
=========================================================================
|
||||
== NOTICE file corresponding to the section 4 d of ==
|
||||
== the Apache License, Version 2.0, ==
|
||||
== in this case for the Apache Axis2 distribution. ==
|
||||
=========================================================================
|
||||
|
||||
This product includes software developed by
|
||||
The Apache Software Foundation (http://www.apache.org/).
|
||||
Portions Copyright 2006 International Business Machines Corp.
|
||||
Portions Copyright 2005-2007 WSO2, Inc.
|
||||
|
||||
This product also includes schemas and specification developed by:
|
||||
- the W3C consortium (http://www.w3c.org)
|
||||
|
||||
This product also includes WS-* schemas developed by International
|
||||
Business Machines Corporation, Microsoft Corporation, BEA Systems,
|
||||
TIBCO Software, SAP AG, Sonic Software, and VeriSign
|
||||
|
||||
This product also includes a WSDL developed by salesforce.com
|
||||
- Copyright 1999-2006 salesforce.com, inc.
|
||||
|
||||
Portions of the included xmlbeans library were originally based on the following:
|
||||
- software copyright (c) 2000-2003, BEA Systems, <http://www.bea.com/>.
|
||||
|
||||
Please read the different LICENSE files present in the lib directory of
|
||||
this distribution.
|
||||
@ -1,25 +1,25 @@
|
||||
# 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.
|
||||
|
||||
host=http://localhost:7080/awsapi
|
||||
storage.root=/Users/john1/S3-Mount
|
||||
storage.multipartDir=__multipart__uploads__
|
||||
bucket.dns=false
|
||||
serviceEndpoint=localhost:7080
|
||||
|
||||
|
||||
|
||||
# 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.
|
||||
|
||||
host=http://localhost:7080/awsapi
|
||||
storage.root=/Users/john1/S3-Mount
|
||||
storage.multipartDir=__multipart__uploads__
|
||||
bucket.dns=false
|
||||
serviceEndpoint=localhost:7080
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,68 +0,0 @@
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
|
||||
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>
|
||||
|
||||
@ -1,164 +0,0 @@
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<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> <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://<fqdn-or-ip>:<port>/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://<fqdn-or-ip>:<port>/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>
|
||||
<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>
|
||||
<install directory>
|
||||
apache-tomcat-6.0.18
|
||||
conf
|
||||
ec2-service.properties (EC2 service's configuration parameters)
|
||||
server.xml
|
||||
lib
|
||||
<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>
|
||||
@ -1,92 +0,0 @@
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<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-webapp-1.5.1.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>
|
||||
@ -1,275 +0,0 @@
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<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://<fqdn-or-ip>:<port>/bridge/rest/AmazonEC2?Action=SetUserKeys&accesskey=<key>&secretkey=<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://<fqdn-or-ip>:<port>/bridge/rest/AmazonEC2?Action=SetCertificate&AWSAccessKeyId=<Cloud.com API AccessKey>&cert=<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://<fqdn-or-ip>:<port>/bridge/rest/AmazonEC2?Action=DeleteCertificate&AWSAccessKeyId=<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://<fqdn-or-ip>:<port>/bridge/services/AmazonEC2</pre>
|
||||
For REST access the endpoint is:
|
||||
<pre>http://<fqdn-or-ip>:<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:
|
||||
"<format>:<zoneName>:<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://<fqdn-or-ip>:<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>
|
||||
<CloudEC2Version>1.01</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>
|
||||
@ -1,21 +0,0 @@
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
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
|
||||
@ -1,120 +0,0 @@
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<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://<fqdn-or-ip>:<port>/bridge/rest/AmazonS3?Action=SetUserKeys&accesskey=<key>&secretkey=<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://<fqdn-or-ip>:<port>/bridge/services/AmazonS3</pre>
|
||||
|
||||
For the SOAP PutObject function with a DIME attachment <A href="#ref3">[3]</A>:
|
||||
<pre>http://<fqdn-or-ip>:<port>/bridge/dime/AmazonS3</pre>
|
||||
|
||||
For REST access the endpoint is:
|
||||
<pre>http://<fqdn-or-ip>:<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>
|
||||
@ -1,29 +0,0 @@
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
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
|
||||
@ -1,66 +0,0 @@
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
To generate the Java AXIS2 classes from the Amazon EC2 wsdl use the following command line, assuming source definitions in the local directory:
|
||||
$ wsdl2java.sh -ss -sd -ssi -g -p com.amazon.s3 -ns2p "http://s3.amazonaws.com/doc/2006-03-01/"=com.amazon.s3 -uri cloud-AmazonS3.wsdl
|
||||
|
||||
This runs the wsdl2java code generation tool to produce stubs with asynchronous invocation methods, such as those useful for REST using the com.amazon.s3 package.
|
||||
|
||||
This creates the following java source files in the src/com/amazon/s3 subdirectory …
|
||||
|
||||
AccessControlList.java ListAllMyBucketsResponse.java
|
||||
AccessControlPolicy.java ListAllMyBucketsResult.java
|
||||
AmazonCustomerByEmail.java ListBucket.java
|
||||
AmazonS3CallbackHandler.java ListBucketResponse.java
|
||||
AmazonS3MessageReceiverInOut.java ListBucketResult.java
|
||||
AmazonS3Skeleton.java ListEntry.java
|
||||
AmazonS3SkeletonInterface.java ListVersionsResponse.java
|
||||
AmazonS3Stub.java ListVersionsResult.java
|
||||
BucketLoggingStatus.java ListVersionsResultChoice_type0.java
|
||||
CanonicalUser.java LocationConstraint.java
|
||||
CopyObject.java LoggingSettings.java
|
||||
CopyObjectResponse.java MetadataDirective.java
|
||||
CopyObjectResult.java MetadataEntry.java
|
||||
CreateBucket.java MfaDeleteStatus.java
|
||||
CreateBucketConfiguration.java NotificationConfiguration.java
|
||||
CreateBucketResponse.java Payer.java
|
||||
CreateBucketResult.java Permission.java
|
||||
DeleteBucket.java PostResponse.java
|
||||
DeleteBucketResponse.java PrefixEntry.java
|
||||
DeleteMarkerEntry.java PutObject.java
|
||||
DeleteObject.java PutObjectInline.java
|
||||
DeleteObjectResponse.java PutObjectInlineResponse.java
|
||||
ExtensionMapper.java PutObjectResponse.java
|
||||
GetBucketAccessControlPolicy.java PutObjectResult.java
|
||||
GetBucketAccessControlPolicyResponse.java RequestPaymentConfiguration.java
|
||||
GetBucketLoggingStatus.java Result.java
|
||||
GetBucketLoggingStatusResponse.java SetBucketAccessControlPolicy.java
|
||||
GetObject.java SetBucketAccessControlPolicyResponse.java
|
||||
GetObjectAccessControlPolicy.java SetBucketLoggingStatus.java
|
||||
GetObjectAccessControlPolicyResponse.java SetBucketLoggingStatusResponse.java
|
||||
GetObjectExtended.java SetObjectAccessControlPolicy.java
|
||||
GetObjectExtendedResponse.java SetObjectAccessControlPolicyResponse.java
|
||||
GetObjectResponse.java Status.java
|
||||
GetObjectResult.java StorageClass.java
|
||||
Grant.java TopicConfiguration.java
|
||||
Grantee.java User.java
|
||||
Group.java VersionEntry.java
|
||||
ListAllMyBuckets.java VersioningConfiguration.java
|
||||
ListAllMyBucketsEntry.java VersioningStatus.java
|
||||
ListAllMyBucketsList.java
|
||||
157
awsapi/pom.xml
157
awsapi/pom.xml
@ -16,16 +16,15 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-awsapi</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<name>Apache CloudStack AWS API Bridge</name>
|
||||
<packaging>war</packaging>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -38,6 +37,11 @@
|
||||
<artifactId>axis2</artifactId>
|
||||
<version>${cs.axis2.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.axis2</groupId>
|
||||
<artifactId>axis2-adb</artifactId>
|
||||
<version>${cs.axis2.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.axis2</groupId>
|
||||
<artifactId>axis2-webapp</artifactId>
|
||||
@ -46,7 +50,7 @@
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ws.commons.axiom</groupId>
|
||||
<artifactId>axiom-api</artifactId>
|
||||
<artifactId>axiom-impl</artifactId>
|
||||
<version>${cs.axiom.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -58,6 +62,16 @@
|
||||
<groupId>org.apache.neethi</groupId>
|
||||
<artifactId>neethi</artifactId>
|
||||
<version>${cs.neethi.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.ws.commons.axiom</groupId>
|
||||
<artifactId>axiom-api</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.apache.ws.commons.axiom</groupId>
|
||||
<artifactId>axiom-impl</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
@ -100,6 +114,10 @@
|
||||
<groupId>bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk14</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.apache.xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -112,6 +130,10 @@
|
||||
<groupId>bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk14</artifactId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<groupId>org.apache.xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -119,35 +141,53 @@
|
||||
<artifactId>rampart-core</artifactId>
|
||||
<version>${cs.rampart.version}</version>
|
||||
<scope>runtime</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.rampart</groupId>
|
||||
<artifactId>rampart-policy</artifactId>
|
||||
<version>${cs.rampart.version}</version>
|
||||
<scope>runtime</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.rampart</groupId>
|
||||
<artifactId>rampart-trust</artifactId>
|
||||
<version>${cs.rampart.version}</version>
|
||||
<scope>runtime</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>org.apache.xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-jdk14</artifactId>
|
||||
<version>1.5.11</version>
|
||||
<version>1.6.1</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.5.11</version>
|
||||
<version>1.6.1</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ws.security</groupId>
|
||||
<artifactId>wss4j</artifactId>
|
||||
<version>1.5.8</version>
|
||||
<version>1.6.1</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
@ -192,6 +232,12 @@
|
||||
<version>1.45</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.21</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
@ -203,6 +249,9 @@
|
||||
<exclude>**/*.java</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>../utils/conf/</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
@ -254,6 +303,22 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.26</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>7080</port>
|
||||
<maxIdleTime>60000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<contextPath>/awsapi</contextPath>
|
||||
<webXml>${basedir}/web/web.xml</webXml>
|
||||
<webAppSourceDirectory>${basedir}/target/cloud-awsapi-${project.version}</webAppSourceDirectory>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<!--
|
||||
<testSourceDirectory>test</testSourceDirectory>
|
||||
@ -273,39 +338,49 @@
|
||||
</plugins>
|
||||
-->
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-dependency-plugin
|
||||
</artifactId>
|
||||
<versionRange>
|
||||
[2.5.1,)
|
||||
</versionRange>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore></ignore>
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.eclipse.m2e</groupId>
|
||||
<artifactId>lifecycle-mapping</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<configuration>
|
||||
<lifecycleMappingMetadata>
|
||||
<pluginExecutions>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>
|
||||
org.apache.maven.plugins
|
||||
</groupId>
|
||||
<artifactId>
|
||||
maven-antrun-plugin
|
||||
</artifactId>
|
||||
<versionRange>[1.7,)</versionRange>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<versionRange>[2.0,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<execute />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
</lifecycleMappingMetadata>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
@ -1,24 +1,24 @@
|
||||
# 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.
|
||||
|
||||
|
||||
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
|
||||
# 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.
|
||||
|
||||
|
||||
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
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,18 +1,18 @@
|
||||
rem Licensed to the Apache Software Foundation (ASF) under one
|
||||
rem or more contributor license agreements. See the NOTICE file
|
||||
rem distributed with this work for additional information
|
||||
rem regarding copyright ownership. The ASF licenses this file
|
||||
rem to you under the Apache License, Version 2.0 (the
|
||||
rem "License"); you may not use this file except in compliance
|
||||
rem with the License. You may obtain a copy of the License at
|
||||
rem
|
||||
rem http://www.apache.org/licenses/LICENSE-2.0
|
||||
rem
|
||||
rem Unless required by applicable law or agreed to in writing,
|
||||
rem software distributed under the License is distributed on an
|
||||
rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
rem KIND, either express or implied. See the License for the
|
||||
rem specific language governing permissions and limitations
|
||||
rem under the License.
|
||||
|
||||
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 %*
|
||||
rem Licensed to the Apache Software Foundation (ASF) under one
|
||||
rem or more contributor license agreements. See the NOTICE file
|
||||
rem distributed with this work for additional information
|
||||
rem regarding copyright ownership. The ASF licenses this file
|
||||
rem to you under the Apache License, Version 2.0 (the
|
||||
rem "License"); you may not use this file except in compliance
|
||||
rem with the License. You may obtain a copy of the License at
|
||||
rem
|
||||
rem http://www.apache.org/licenses/LICENSE-2.0
|
||||
rem
|
||||
rem Unless required by applicable law or agreed to in writing,
|
||||
rem software distributed under the License is distributed on an
|
||||
rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
rem KIND, either express or implied. See the License for the
|
||||
rem specific language governing permissions and limitations
|
||||
rem under the License.
|
||||
|
||||
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 %*
|
||||
|
||||
@ -52,7 +52,12 @@ public class CloudStackConfigurationDaoImpl extends GenericDaoBase<CloudStackCon
|
||||
txn.start();
|
||||
SearchCriteria<CloudStackConfigurationVO> sc = NameSearch.create();
|
||||
sc.setParameters("name", name);
|
||||
return findOneBy(sc).getValue();
|
||||
CloudStackConfigurationVO configItem = findOneBy(sc);
|
||||
if (configItem == null) {
|
||||
s_logger.warn("No configuration item found with name " + name);
|
||||
return null;
|
||||
}
|
||||
return configItem.getValue();
|
||||
}finally {
|
||||
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ public class EC2MainServlet extends HttpServlet{
|
||||
}
|
||||
logger.info("Value of EC2 API Flag ::" + value);
|
||||
}catch(Exception e){
|
||||
throw new ServletException("Error initializing awsapi: " + e.getMessage());
|
||||
throw new ServletException("Error initializing awsapi: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,37 +1,37 @@
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<BODY>
|
||||
Save the cert into Cloud's EC2 Service:
|
||||
<P>
|
||||
<FORM name="setcert" action="http://172.16.1.227:8080/bridge/rest/AmazonEC2" method="get">
|
||||
<input type="hidden" name="Action" value="SetCertificate"/>
|
||||
<input type="hidden" name="AWSAccessKeyId" value="NYDSzzt1Vk02-NAnjNiJES2l_ijibmRZC8t2E27TZ2pkLz62V3lRHxP1-hJQKWLiFF0ooCIEXeJZqjFvCg9VwQ" />
|
||||
<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>
|
||||
<HTML>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<BODY>
|
||||
Save the cert into Cloud's EC2 Service:
|
||||
<P>
|
||||
<FORM name="setcert" action="http://172.16.1.227:8080/bridge/rest/AmazonEC2" method="get">
|
||||
<input type="hidden" name="Action" value="SetCertificate"/>
|
||||
<input type="hidden" name="AWSAccessKeyId" value="NYDSzzt1Vk02-NAnjNiJES2l_ijibmRZC8t2E27TZ2pkLz62V3lRHxP1-hJQKWLiFF0ooCIEXeJZqjFvCg9VwQ" />
|
||||
<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>
|
||||
|
||||
@ -1,44 +1,44 @@
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
http://localhost:8080/gate/rest/AmazonEC2?Action=DescribeInstances&SignatureVersion=2&SignatureMethod=HmacSHA256&Version=2009-11-30&Timestamp=2010-01-07T15%3A23%3A03Z&Expires=2010-11-07T15%3A23%3A03Z&AWSAccessKeyId=O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYwpLySev4Hi03_YXiHz4gGg&Signature=lyHOvu2LNxjLHIAlQo3F0JNSDtuCtqHtAX786cCZDFI=
|
||||
|
||||
|
||||
|
||||
10:44:35,804 INFO EC2RestServlet:? - Request parameter Expires:2010-11-07T15:23
|
||||
:03Z
|
||||
10:44:36,197 ERROR RestAuth:? - Signature mismatch, [+fhKzW5k+O33zWoJ6dUmmo9ycZi
|
||||
td62M0Lwicz2jT2s=] [lyHOvu2LNxjLHIAlQo3F0JNSDtuCtqHtAX786cCZDFI=] over [GET
|
||||
localhost:8080
|
||||
/gate/rest/AmazonEC2
|
||||
AWSAccessKeyId=O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYw
|
||||
pLySev4Hi03_YXiHz4gGg&Action=DescribeInstances&Expires=2010-11-07T15%3A23%3A03Z&
|
||||
SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2010-01-07T15%3A23%3A03Z
|
||||
&Version=2009-11-30]
|
||||
|
||||
|
||||
From usercredentials table:
|
||||
-----------------------+
|
||||
| 4 | O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYwpLySev4H
|
||||
i03_YXiHz4gGg | EmskZDLp5EmwPQDzHtA2CK3heW12keN-YTTrO39Iz2Qfk8fmtkFih95B7xexhAat
|
||||
rlQ5ioNns4iT9qav3WzmrQ | CN=AWS Limited-Assurance CA, OU=AWS, O=Amazon.com, C=US
|
||||
, serial=1033226874324 |
|
||||
+----+--------------------------------------------------------------------------
|
||||
|
||||
EmskZDLp5EmwPQDzHtA2CK3heW12keN-YTTrO39Iz2Qfk8fmtkFih95B7xexhAatrlQ5ioNns4iT9qav3WzmrQ
|
||||
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.
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
http://localhost:8080/gate/rest/AmazonEC2?Action=DescribeInstances&SignatureVersion=2&SignatureMethod=HmacSHA256&Version=2009-11-30&Timestamp=2010-01-07T15%3A23%3A03Z&Expires=2010-11-07T15%3A23%3A03Z&AWSAccessKeyId=O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYwpLySev4Hi03_YXiHz4gGg&Signature=lyHOvu2LNxjLHIAlQo3F0JNSDtuCtqHtAX786cCZDFI=
|
||||
|
||||
|
||||
|
||||
10:44:35,804 INFO EC2RestServlet:? - Request parameter Expires:2010-11-07T15:23
|
||||
:03Z
|
||||
10:44:36,197 ERROR RestAuth:? - Signature mismatch, [+fhKzW5k+O33zWoJ6dUmmo9ycZi
|
||||
td62M0Lwicz2jT2s=] [lyHOvu2LNxjLHIAlQo3F0JNSDtuCtqHtAX786cCZDFI=] over [GET
|
||||
localhost:8080
|
||||
/gate/rest/AmazonEC2
|
||||
AWSAccessKeyId=O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYw
|
||||
pLySev4Hi03_YXiHz4gGg&Action=DescribeInstances&Expires=2010-11-07T15%3A23%3A03Z&
|
||||
SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2010-01-07T15%3A23%3A03Z
|
||||
&Version=2009-11-30]
|
||||
|
||||
|
||||
From usercredentials table:
|
||||
-----------------------+
|
||||
| 4 | O4O0Niu98EvraLKH2o8SFNMQlXZvuE5ueMDR9CHU5WA2-qv4PEQkgMcrtrNs6eHYwpLySev4H
|
||||
i03_YXiHz4gGg | EmskZDLp5EmwPQDzHtA2CK3heW12keN-YTTrO39Iz2Qfk8fmtkFih95B7xexhAat
|
||||
rlQ5ioNns4iT9qav3WzmrQ | CN=AWS Limited-Assurance CA, OU=AWS, O=Amazon.com, C=US
|
||||
, serial=1033226874324 |
|
||||
+----+--------------------------------------------------------------------------
|
||||
|
||||
EmskZDLp5EmwPQDzHtA2CK3heW12keN-YTTrO39Iz2Qfk8fmtkFih95B7xexhAatrlQ5ioNns4iT9qav3WzmrQ
|
||||
|
||||
@ -1,145 +1,145 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
|
||||
|
||||
<web-app>
|
||||
<display-name>CloudBridge</display-name>
|
||||
<servlet>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<display-name>EC2 Main Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.EC2MainServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<display-name>Apache-Axis Servlet</display-name>
|
||||
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
|
||||
<!--<init-param>-->
|
||||
<!--<param-name>axis2.xml.path</param-name>-->
|
||||
<!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
|
||||
<!--<param-name>axis2.xml.url</param-name>-->
|
||||
<!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
|
||||
<!--<param-name>axis2.repository.path</param-name>-->
|
||||
<!--<param-value>/WEB-INF</param-value>-->
|
||||
<!--<param-name>axis2.repository.url</param-name>-->
|
||||
<!--<param-value>http://localhost/myrepo</param-value>-->
|
||||
<!--</init-param>-->
|
||||
<load-on-startup>2</load-on-startup>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>AxisAdminServlet</servlet-name>
|
||||
<display-name>Apache-Axis AxisAdmin Servlet (Web Admin)</display-name>
|
||||
<servlet-class>
|
||||
org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<display-name>Cloud.com Bridge S3 Service REST Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.S3RestServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>readonly</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<display-name>Cloud.com Bridge EC2 Service REST Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.EC2RestServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonS3</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonS3/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/dime/AmazonS3</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- EC2 examples are using that last '/' -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonEC2/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- handle the common error of leaving off the last '/' -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonEC2</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>/servlet/AxisServlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>*.jws</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>/services/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisAdminServlet</servlet-name>
|
||||
<url-pattern>/axis2-admin/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<url-pattern>/</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<mime-mapping>
|
||||
<extension>inc</extension>
|
||||
<mime-type>text/plain</mime-type>
|
||||
</mime-mapping>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.jsp</welcome-file>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
<welcome-file>/axis2-web/index.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<error-page>
|
||||
<error-code>404</error-code>
|
||||
<location>/axis2-web/Error/error404.jsp</location>
|
||||
</error-page>
|
||||
|
||||
<error-page>
|
||||
<error-code>500</error-code>
|
||||
<location>/axis2-web/Error/error500.jsp</location>
|
||||
</error-page>
|
||||
</web-app>
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
|
||||
<!--
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
|
||||
|
||||
<web-app>
|
||||
<display-name>CloudBridge</display-name>
|
||||
<servlet>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<display-name>EC2 Main Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.EC2MainServlet</servlet-class>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<display-name>Apache-Axis Servlet</display-name>
|
||||
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
|
||||
<!--<init-param>-->
|
||||
<!--<param-name>axis2.xml.path</param-name>-->
|
||||
<!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
|
||||
<!--<param-name>axis2.xml.url</param-name>-->
|
||||
<!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
|
||||
<!--<param-name>axis2.repository.path</param-name>-->
|
||||
<!--<param-value>/WEB-INF</param-value>-->
|
||||
<!--<param-name>axis2.repository.url</param-name>-->
|
||||
<!--<param-value>http://localhost/myrepo</param-value>-->
|
||||
<!--</init-param>-->
|
||||
<load-on-startup>2</load-on-startup>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>AxisAdminServlet</servlet-name>
|
||||
<display-name>Apache-Axis AxisAdmin Servlet (Web Admin)</display-name>
|
||||
<servlet-class>
|
||||
org.apache.axis2.webapp.AxisAdminServlet</servlet-class>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<display-name>Cloud.com Bridge S3 Service REST Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.S3RestServlet</servlet-class>
|
||||
<init-param>
|
||||
<param-name>readonly</param-name>
|
||||
<param-value>false</param-value>
|
||||
</init-param>
|
||||
</servlet>
|
||||
<servlet>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<display-name>Cloud.com Bridge EC2 Service REST Servlet</display-name>
|
||||
<servlet-class>com.cloud.bridge.service.EC2RestServlet</servlet-class>
|
||||
</servlet>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonS3</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonS3/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeS3Servlet</servlet-name>
|
||||
<url-pattern>/dime/AmazonS3</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- EC2 examples are using that last '/' -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonEC2/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<!-- handle the common error of leaving off the last '/' -->
|
||||
<servlet-mapping>
|
||||
<servlet-name>CloudBridgeEC2Servlet</servlet-name>
|
||||
<url-pattern>/rest/AmazonEC2</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>/servlet/AxisServlet</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>*.jws</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisServlet</servlet-name>
|
||||
<url-pattern>/services/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>AxisAdminServlet</servlet-name>
|
||||
<url-pattern>/axis2-admin/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<servlet-mapping>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<url-pattern>/</url-pattern>
|
||||
</servlet-mapping>
|
||||
<servlet-mapping>
|
||||
<servlet-name>EC2MainServlet</servlet-name>
|
||||
<url-pattern>/*</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<mime-mapping>
|
||||
<extension>inc</extension>
|
||||
<mime-type>text/plain</mime-type>
|
||||
</mime-mapping>
|
||||
|
||||
<welcome-file-list>
|
||||
<welcome-file>index.jsp</welcome-file>
|
||||
<welcome-file>index.html</welcome-file>
|
||||
<welcome-file>/axis2-web/index.jsp</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<error-page>
|
||||
<error-code>404</error-code>
|
||||
<location>/axis2-web/Error/error404.jsp</location>
|
||||
</error-page>
|
||||
|
||||
<error-page>
|
||||
<error-code>500</error-code>
|
||||
<location>/axis2-web/Error/error500.jsp</location>
|
||||
</error-page>
|
||||
</web-app>
|
||||
|
||||
@ -225,7 +225,7 @@
|
||||
<copy todir="${server.deploy.to.dir}/webapps7080/awsapi/WEB-INF/lib">
|
||||
<fileset dir="${jar.dir}">
|
||||
<include name="cloud-awsapi.jar" />
|
||||
<include name="cloud-jasypt-1.8.jar" />
|
||||
<include name="jasypt-1.9.0.jar" />
|
||||
<include name="cloud-utils.jar" />
|
||||
</fileset>
|
||||
</copy>
|
||||
@ -299,7 +299,7 @@
|
||||
</fileset>
|
||||
<fileset dir="${jar.dir}">
|
||||
<include name="cloud-awsapi.jar" />
|
||||
<include name="cloud-jasypt-1.8.jar" />
|
||||
<include name="jasypt-1.9.0.jar" />
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="${debian.tomcat.dir}/lib">
|
||||
@ -374,7 +374,7 @@
|
||||
</fileset> -->
|
||||
<fileset dir="${jar.dir}">
|
||||
<include name="cloud-awsapi.jar" />
|
||||
<include name="cloud-jasypt-1.8.jar" />
|
||||
<include name="jasypt-1.9.0.jar" />
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="${rpm.tomcat.dir}/lib">
|
||||
|
||||
@ -17,8 +17,8 @@
|
||||
|
||||
|
||||
#new labels (begin) **********************************************************************************************
|
||||
|
||||
|
||||
label.isolation.uri=Isolation URI
|
||||
label.broadcast.uri=Broadcast URI
|
||||
#new labels (end) ************************************************************************************************
|
||||
|
||||
|
||||
|
||||
@ -16,8 +16,7 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-client-ui</artifactId>
|
||||
<name>Apache CloudStack Client UI</name>
|
||||
@ -25,7 +24,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -152,15 +151,15 @@
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<copy todir="${basedir}/target/generated-webapp/WEB-INF/classes" >
|
||||
<fileset dir="${basedir}/WEB-INF/classes" >
|
||||
<copy todir="${basedir}/target/generated-webapp/WEB-INF/classes">
|
||||
<fileset dir="${basedir}/WEB-INF/classes">
|
||||
<include name="resources/**/*" />
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="${basedir}/target/generated-webapp/WEB-INF/classes/scripts" >
|
||||
<copy todir="${basedir}/target/generated-webapp/WEB-INF/classes/scripts">
|
||||
<fileset dir="${basedir}/../scripts" />
|
||||
</copy>
|
||||
<copy todir="${basedir}/target/generated-webapp" >
|
||||
<copy todir="${basedir}/target/generated-webapp">
|
||||
<fileset dir="${basedir}/../ui" />
|
||||
</copy>
|
||||
<copy overwrite="true" todir="${basedir}/target/generated-webapp/WEB-INF/classes">
|
||||
@ -204,7 +203,7 @@
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore></ignore>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
@ -214,4 +213,86 @@
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>netapp</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-netapp</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>f5</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-network-f5</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>netscaler</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-network-netscaler</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>srx</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-network-srx</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>vmware</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-hypervisor-vmware</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-vmware-base</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
||||
@ -71,10 +71,10 @@ class CloudAPI:
|
||||
requests = zip(requests.keys(), requests.values())
|
||||
requests.sort(key=lambda x: str.lower(x[0]))
|
||||
|
||||
requestUrl = "&".join(["=".join([request[0], urllib.quote_plus(str(request[1]))]) for request in requests])
|
||||
hashStr = "&".join(["=".join([str.lower(request[0]), urllib.quote_plus(str.lower(str(request[1])))]) for request in requests])
|
||||
requestUrl = "&".join(["=".join([request[0], urllib.quote(str(request[1],""))]) for request in requests])
|
||||
hashStr = "&".join(["=".join([str.lower(request[0]), urllib.quote(str.lower(str(request[1])),"")]) for request in requests])
|
||||
|
||||
sig = urllib.quote_plus(base64.encodestring(hmac.new(self.securityKey, hashStr, hashlib.sha1).digest()).strip())
|
||||
sig = urllib.quote_plus(base64.encodestring(hmac.new(self.securityKey, str.lower(hashStr), hashlib.sha1).digest()).strip())
|
||||
|
||||
requestUrl += "&signature=%s"%sig
|
||||
|
||||
|
||||
56
cloud.spec
56
cloud.spec
@ -76,7 +76,7 @@ CloudStack management server.
|
||||
Summary: CloudStack server library
|
||||
Requires: java >= 1.6.0
|
||||
Obsoletes: vmops-server < %{version}-%{release}
|
||||
Requires: %{name}-utils = %{version}, %{name}-core = %{version}, %{name}-deps = %{version}, tomcat6-servlet-2.5-api
|
||||
Requires: %{name}-utils = %{version}, %{name}-core = %{version}, %{name}-deps = %{version}, %{name}-scripts = %{version}, tomcat6-servlet-2.5-api
|
||||
Group: System Environment/Libraries
|
||||
%description server
|
||||
The CloudStack server libraries provide a set of Java classes for CloudStack.
|
||||
@ -95,6 +95,7 @@ Requires: nfs-utils
|
||||
Requires: wget
|
||||
# there is a fsimage.so in the source code, which adds xen-libs as a dependence, needs to supress it, as rhel doesn't have this pacakge
|
||||
AutoReqProv: no
|
||||
Provides: cloud-agent-scripts = %{version}-%{release}
|
||||
Obsoletes: cloud-agent-scripts < %{version}-%{release}
|
||||
Group: System Environment/Libraries
|
||||
%description scripts
|
||||
@ -274,7 +275,7 @@ Requires: %{name}-utils = %{version}, %{name}-core = %{version}, %{name}-deps =
|
||||
Requires: %{name}-setup = %{version}
|
||||
Requires: %{name}-client = %{version}
|
||||
Requires: jsvc
|
||||
License: GPLv3+
|
||||
License: Apache License 2.0
|
||||
Group: System Environment/Libraries
|
||||
%description usage
|
||||
The CloudStack usage monitor provides usage accounting across the entire cloud for
|
||||
@ -387,18 +388,20 @@ else
|
||||
/sbin/service %{name}-agent condrestart >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
%post client
|
||||
if [ "$1" == "1" ] ; then
|
||||
/sbin/chkconfig --add %{name}-management > /dev/null 2>&1 || true
|
||||
/sbin/chkconfig --level 345 %{name}-management on > /dev/null 2>&1 || true
|
||||
if [ -x /etc/sysconfig/modules/kvm.modules ] ; then
|
||||
/bin/sh /etc/sysconfig/modules/kvm.modules
|
||||
fi
|
||||
|
||||
if [ "$1" == "1" ] ; then
|
||||
%post client
|
||||
/sbin/chkconfig --add %{name}-management > /dev/null 2>&1 || true
|
||||
/sbin/chkconfig --level 345 %{name}-management on > /dev/null 2>&1 || true
|
||||
|
||||
root=/usr/share/cloud/bridge
|
||||
target=/usr/share/cloud/management/
|
||||
|
||||
if [ ! -e $target/webapps/awsapi ]; then
|
||||
ln -s $root/webapps/awsapi $target/webapps/awsapi
|
||||
mkdir -p $target/webapps7080
|
||||
if [ ! -e $target/webapps7080/awsapi ]; then
|
||||
ln -s $root/webapps/awsapi $target/webapps7080/awsapi
|
||||
fi
|
||||
|
||||
jars=`ls $root/lib`
|
||||
@ -412,7 +415,6 @@ if [ "$1" == "1" ] ; then
|
||||
do
|
||||
cp -f $root/conf/$c $target/conf
|
||||
done
|
||||
fi
|
||||
|
||||
%files utils
|
||||
%defattr(0644,root,root,0755)
|
||||
@ -423,12 +425,14 @@ fi
|
||||
%doc %{_docdir}/%{name}-%{version}/version-info
|
||||
%doc %{_docdir}/%{name}-%{version}/sccs-info
|
||||
%doc %{_docdir}/%{name}-%{version}/configure-info
|
||||
%doc README.html
|
||||
%doc debian/copyright
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files client-ui
|
||||
%defattr(0644,root,root,0755)
|
||||
%{_datadir}/%{name}/management/webapps/client/*
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files server
|
||||
%defattr(0644,root,root,0755)
|
||||
@ -446,6 +450,8 @@ fi
|
||||
%{_javadir}/%{name}-plugin-elb.jar
|
||||
%{_javadir}/%{name}-plugin-nicira-nvp.jar
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/server/*
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files scripts
|
||||
%defattr(-,root,root,-)
|
||||
@ -453,7 +459,8 @@ fi
|
||||
# maintain the following list in sync with files scripts
|
||||
%{_libdir}/%{name}/common/vms/systemvm.zip
|
||||
%{_libdir}/%{name}/common/vms/systemvm.iso
|
||||
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files deps
|
||||
%defattr(0644,root,root,0755)
|
||||
@ -484,9 +491,14 @@ fi
|
||||
%{_javadir}/jstl-1.2.jar
|
||||
%{_javadir}/javax.persistence-2.0.0.jar
|
||||
%{_javadir}/bcprov-jdk16-1.45.jar
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files core
|
||||
%defattr(0644,root,root,0755)
|
||||
%{_javadir}/%{name}-core.jar
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files python
|
||||
%defattr(0644,root,root,0755)
|
||||
@ -494,6 +506,8 @@ fi
|
||||
%attr(0755,root,root) %{_bindir}/cloud-external-ipallocator.py
|
||||
%attr(0755,root,root) %{_initrddir}/cloud-ipallocator
|
||||
%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/ipallocator
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files setup
|
||||
%attr(0755,root,root) %{_bindir}/%{name}-setup-databases
|
||||
@ -507,6 +521,8 @@ fi
|
||||
%{_datadir}/%{name}/setup/db/*.sql
|
||||
%{_datadir}/%{name}/setup/*.sh
|
||||
%{_datadir}/%{name}/setup/server-setup.xml
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files client
|
||||
%defattr(0644,root,root,0775)
|
||||
@ -530,12 +546,16 @@ fi
|
||||
%dir %attr(0770,root,%{name}) %{_localstatedir}/cache/%{name}/management/temp
|
||||
%dir %attr(0770,root,%{name}) %{_localstatedir}/log/%{name}/management
|
||||
%dir %attr(0770,root,%{name}) %{_localstatedir}/log/%{name}/agent
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files agent-libs
|
||||
%defattr(0644,root,root,0755)
|
||||
%{_javadir}/%{name}-agent.jar
|
||||
%{_javadir}/%{name}-plugin-hypervisor-kvm.jar
|
||||
%{_javadir}/libvirt-0.4.9.jar
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files agent
|
||||
%defattr(0644,root,root,0755)
|
||||
@ -546,6 +566,8 @@ fi
|
||||
%attr(0755,root,root) %{_initrddir}/%{name}-agent
|
||||
%attr(0755,root,root) %{_bindir}/%{name}-setup-agent
|
||||
%dir %attr(0770,root,root) %{_localstatedir}/log/%{name}/agent
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files cli
|
||||
%{_bindir}/%{name}-tool
|
||||
@ -555,9 +577,13 @@ fi
|
||||
%dir %{_prefix}/lib*/python*/site-packages/%{name}tool
|
||||
%{_prefix}/lib*/python*/site-packages/%{name}tool/*
|
||||
%{_prefix}/lib*/python*/site-packages/%{name}apis.py
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files baremetal-agent
|
||||
%attr(0755,root,root) %{_bindir}/cloud-setup-baremetal
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files usage
|
||||
%defattr(0644,root,root,0775)
|
||||
@ -567,6 +593,8 @@ fi
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/usage/usage-components.xml
|
||||
%config(noreplace) %{_sysconfdir}/%{name}/usage/log4j-%{name}_usage.xml
|
||||
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/%{name}/usage/db.properties
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%files aws-api
|
||||
%defattr(0644,cloud,cloud,0755)
|
||||
@ -575,6 +603,8 @@ fi
|
||||
%attr(0644,root,root) %{_datadir}/cloud/setup/bridge/db/*
|
||||
%attr(0755,root,root) %{_bindir}/cloudstack-aws-api-register
|
||||
%attr(0755,root,root) %{_bindir}/cloud-setup-bridge
|
||||
%doc LICENSE
|
||||
%doc NOTICE
|
||||
|
||||
%changelog
|
||||
* Fri Sep 14 2012 Marcus Sorensen <shadowsor@gmail.com> 4.0.1
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
-----BEGIN NEW CERTIFICATE REQUEST-----
|
||||
MIICsDCCAZgCAQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlDdXBlcnRp
|
||||
bm8xDjAMBgNVBAoTBVZNT3BzMRAwDgYDVQQLEwdVbmtub3duMRkwFwYDVQQDDBAqLnJlYWxob3N0
|
||||
aXAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg0/QLRH7PrPyPEF6eq6wsNIj
|
||||
SdPhoLMmzR4XlPiaS9/SzE2cpAq2YWZ8g78HcQqDnxN/Emt9m2hyjXbPstkh5zDbDpMPDnDbnBxA
|
||||
V9RSKTgRqYfQ+sQvrpsfaHesTFhE1L+4+odrvlgtzoQTPHxwgaiIgKJd9fyJHKg8cbB5UPEv6An0
|
||||
5VyVGOmJ+tvDgNV4oynUZ2nVdIWfNvXL/z2SpY48EFE8q3dCh0HpLAR/mAGEqNiVJfHpDS7DovP3
|
||||
D7X6I55bc0SNRl4tGTjbPFZw8ydGtoKmWPrsZc/ghmy5xp5TeI/XAaRPjH1BPt+Q6tdtbE6bEoBf
|
||||
OTM/qVYZ9kut9wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAF5lhhni9dW9MqSL2ixNbViPWpFS
|
||||
ecOggshYChJfZKrhsuZaDpumJ/+ebICS4zv/oxDwNLSmeAmydiaUQC9LFQEEwvPBYDTtTzwCrtwH
|
||||
yyFJQSm6pyeIBP/Bih/5hLW8JPm0bDbp5ldrHCDEgKQeeyQhyYOKFODkTuMLw+FLD+V86IVHxElL
|
||||
/urCRWyZEPwyMsgfsU6ywNX9XNShyk1uDHjFDE67sPhfw52ooxXrYQnBdTk+g0UXPbULzrCK/1kU
|
||||
fjRq347V9Fwi5NFyGADOaA+q6mtnlb1i3uH1n1YVUzevvpnIr3/RxPSYHB47Kj9iYKeDlYdTRHJy
|
||||
NpuvTfmQO2Y=
|
||||
-----END NEW CERTIFICATE REQUEST-----
|
||||
-----BEGIN NEW CERTIFICATE REQUEST-----
|
||||
MIICsDCCAZgCAQAwazELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwEAYDVQQHEwlDdXBlcnRp
|
||||
bm8xDjAMBgNVBAoTBVZNT3BzMRAwDgYDVQQLEwdVbmtub3duMRkwFwYDVQQDDBAqLnJlYWxob3N0
|
||||
aXAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg0/QLRH7PrPyPEF6eq6wsNIj
|
||||
SdPhoLMmzR4XlPiaS9/SzE2cpAq2YWZ8g78HcQqDnxN/Emt9m2hyjXbPstkh5zDbDpMPDnDbnBxA
|
||||
V9RSKTgRqYfQ+sQvrpsfaHesTFhE1L+4+odrvlgtzoQTPHxwgaiIgKJd9fyJHKg8cbB5UPEv6An0
|
||||
5VyVGOmJ+tvDgNV4oynUZ2nVdIWfNvXL/z2SpY48EFE8q3dCh0HpLAR/mAGEqNiVJfHpDS7DovP3
|
||||
D7X6I55bc0SNRl4tGTjbPFZw8ydGtoKmWPrsZc/ghmy5xp5TeI/XAaRPjH1BPt+Q6tdtbE6bEoBf
|
||||
OTM/qVYZ9kut9wIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAF5lhhni9dW9MqSL2ixNbViPWpFS
|
||||
ecOggshYChJfZKrhsuZaDpumJ/+ebICS4zv/oxDwNLSmeAmydiaUQC9LFQEEwvPBYDTtTzwCrtwH
|
||||
yyFJQSm6pyeIBP/Bih/5hLW8JPm0bDbp5ldrHCDEgKQeeyQhyYOKFODkTuMLw+FLD+V86IVHxElL
|
||||
/urCRWyZEPwyMsgfsU6ywNX9XNShyk1uDHjFDE67sPhfw52ooxXrYQnBdTk+g0UXPbULzrCK/1kU
|
||||
fjRq347V9Fwi5NFyGADOaA+q6mtnlb1i3uH1n1YVUzevvpnIr3/RxPSYHB47Kj9iYKeDlYdTRHJy
|
||||
NpuvTfmQO2Y=
|
||||
-----END NEW CERTIFICATE REQUEST-----
|
||||
|
||||
@ -63,11 +63,296 @@ function getCurrentLanguage() {
|
||||
//
|
||||
function KeyboardMapper() {
|
||||
this.mappedInput = [];
|
||||
this.jsX11KeysymMap = [];
|
||||
this.jsKeyPressX11KeysymMap = [];
|
||||
}
|
||||
|
||||
//
|
||||
// RAW keyboard
|
||||
// Primarily translates KeyDown/KeyUp event, either as is (if there is no mapping entry)
|
||||
// or through mapped result.
|
||||
//
|
||||
// For KeyPress event, it translates it only if there exist a mapping entry
|
||||
// in jsX11KeysymMap map and the entry meets the condition
|
||||
//
|
||||
// COOKED keyboard
|
||||
// Primarily translates KeyPress event, either as is or through mapped result
|
||||
// It translates KeyDown/KeyUp only there exists a mapping entry, or if there
|
||||
// is no mapping entry, translate when certain modifier key is pressed (i.e.,
|
||||
// CTRL or ALT key
|
||||
//
|
||||
// Mapping entry types
|
||||
// direct : will be directly mapped into the entry value with the same event type
|
||||
// boolean : only valid for jsX11KeysymMap, existence of this type, no matter true or false
|
||||
// in value, corresponding KeyDown/KeyUp event will be masked
|
||||
// array : contains a set of conditional mapping entry
|
||||
//
|
||||
// Conditional mapping entry
|
||||
//
|
||||
// {
|
||||
// type: <event type>, code: <mapped key code>, modifiers: <modifiers>,
|
||||
// shift : <shift state match condition>, -- match on shift state
|
||||
// guestos : <guest os match condition>, -- match on guestos type
|
||||
// browser: <browser type match condition>, -- match on browser
|
||||
// browserVersion: <brower version match condition> -- match on browser version
|
||||
// }
|
||||
//
|
||||
KeyboardMapper.KEYBOARD_TYPE_RAW = 0;
|
||||
KeyboardMapper.KEYBOARD_TYPE_COOKED = 1;
|
||||
|
||||
KeyboardMapper.prototype = {
|
||||
inputFeed : function(eventType, code, modifiers) {
|
||||
this.mappedInput.push({type: eventType, code: code, modifiers: modifiers});
|
||||
|
||||
setKeyboardType : function(keyboardType) {
|
||||
this.keyboardType = keyboardType;
|
||||
|
||||
if(keyboardType == KeyboardMapper.KEYBOARD_TYPE_RAW) {
|
||||
// intialize keyboard mapping for RAW keyboard
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CAPSLOCK] = AjaxViewer.X11_KEY_CAPSLOCK;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACKSPACE] = AjaxViewer.X11_KEY_BACKSPACE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_TAB] = AjaxViewer.X11_KEY_TAB;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ENTER] = AjaxViewer.X11_KEY_ENTER;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ESCAPE] = AjaxViewer.X11_KEY_ESCAPE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_INSERT] = AjaxViewer.X11_KEY_INSERT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DELETE] = AjaxViewer.X11_KEY_DELETE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_HOME] = AjaxViewer.X11_KEY_HOME;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_END] = AjaxViewer.X11_KEY_END;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEUP] = AjaxViewer.X11_KEY_PAGEUP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEDOWN] = AjaxViewer.X11_KEY_PAGEDOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_LEFT] = AjaxViewer.X11_KEY_LEFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_UP] = AjaxViewer.X11_KEY_UP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_RIGHT] = AjaxViewer.X11_KEY_RIGHT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DOWN] = AjaxViewer.X11_KEY_DOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F1] = AjaxViewer.X11_KEY_F1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F2] = AjaxViewer.X11_KEY_F2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F3] = AjaxViewer.X11_KEY_F3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F4] = AjaxViewer.X11_KEY_F4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F5] = AjaxViewer.X11_KEY_F5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F6] = AjaxViewer.X11_KEY_F6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F7] = AjaxViewer.X11_KEY_F7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F8] = AjaxViewer.X11_KEY_F8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F9] = AjaxViewer.X11_KEY_F9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F10] = AjaxViewer.X11_KEY_F10;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F11] = AjaxViewer.X11_KEY_F11;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F12] = AjaxViewer.X11_KEY_F12;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SHIFT] = AjaxViewer.X11_KEY_SHIFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CTRL] = AjaxViewer.X11_KEY_CTRL;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ALT] = AjaxViewer.X11_KEY_ALT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_GRAVE_ACCENT] = AjaxViewer.X11_KEY_GRAVE_ACCENT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SUBSTRACT] = AjaxViewer.X11_KEY_SUBSTRACT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ADD] = AjaxViewer.X11_KEY_ADD;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_OPEN_BRACKET] = AjaxViewer.X11_KEY_OPEN_BRACKET;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CLOSE_BRACKET] = AjaxViewer.X11_KEY_CLOSE_BRACKET;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACK_SLASH] = AjaxViewer.X11_KEY_BACK_SLASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SINGLE_QUOTE] = AjaxViewer.X11_KEY_SINGLE_QUOTE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_COMMA] = AjaxViewer.X11_KEY_COMMA;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PERIOD] = AjaxViewer.X11_KEY_PERIOD;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_FORWARD_SLASH] = AjaxViewer.X11_KEY_FORWARD_SLASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DASH] = AjaxViewer.X11_KEY_DASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SEMI_COLON] = AjaxViewer.X11_KEY_SEMI_COLON;
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD0] = AjaxViewer.X11_KEY_NUMPAD0;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD1] = AjaxViewer.X11_KEY_NUMPAD1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD2] = AjaxViewer.X11_KEY_NUMPAD2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD3] = AjaxViewer.X11_KEY_NUMPAD3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD4] = AjaxViewer.X11_KEY_NUMPAD4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD5] = AjaxViewer.X11_KEY_NUMPAD5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD6] = AjaxViewer.X11_KEY_NUMPAD6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD7] = AjaxViewer.X11_KEY_NUMPAD7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD8] = AjaxViewer.X11_KEY_NUMPAD8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD9] = AjaxViewer.X11_KEY_NUMPAD9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DECIMAL_POINT] = AjaxViewer.X11_KEY_DECIMAL_POINT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DIVIDE] = AjaxViewer.X11_KEY_DIVIDE;
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_MULTIPLY] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0 }
|
||||
];
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ADD] = false;
|
||||
this.jsKeyPressX11KeysymMap = [];
|
||||
this.jsKeyPressX11KeysymMap[61] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false }
|
||||
];
|
||||
this.jsKeyPressX11KeysymMap[43] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: true },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: true }
|
||||
];
|
||||
} else {
|
||||
// initialize mapping for COOKED keyboard
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CAPSLOCK] = AjaxViewer.X11_KEY_CAPSLOCK;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACKSPACE] = AjaxViewer.X11_KEY_BACKSPACE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_TAB] = AjaxViewer.X11_KEY_TAB;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ENTER] = AjaxViewer.X11_KEY_ENTER;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ESCAPE] = AjaxViewer.X11_KEY_ESCAPE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_INSERT] = AjaxViewer.X11_KEY_INSERT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DELETE] = AjaxViewer.X11_KEY_DELETE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_HOME] = AjaxViewer.X11_KEY_HOME;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_END] = AjaxViewer.X11_KEY_END;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEUP] = AjaxViewer.X11_KEY_PAGEUP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEDOWN] = AjaxViewer.X11_KEY_PAGEDOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_LEFT] = AjaxViewer.X11_KEY_LEFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_UP] = AjaxViewer.X11_KEY_UP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_RIGHT] = AjaxViewer.X11_KEY_RIGHT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DOWN] = AjaxViewer.X11_KEY_DOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F1] = AjaxViewer.X11_KEY_F1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F2] = AjaxViewer.X11_KEY_F2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F3] = AjaxViewer.X11_KEY_F3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F4] = AjaxViewer.X11_KEY_F4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F5] = AjaxViewer.X11_KEY_F5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F6] = AjaxViewer.X11_KEY_F6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F7] = AjaxViewer.X11_KEY_F7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F8] = AjaxViewer.X11_KEY_F8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F9] = AjaxViewer.X11_KEY_F9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F10] = AjaxViewer.X11_KEY_F10;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F11] = AjaxViewer.X11_KEY_F11;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F12] = AjaxViewer.X11_KEY_F12;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SHIFT] = AjaxViewer.X11_KEY_SHIFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CTRL] = AjaxViewer.X11_KEY_CTRL;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ALT] = AjaxViewer.X11_KEY_ALT;
|
||||
}
|
||||
},
|
||||
|
||||
RawkeyboardInputHandler : function(eventType, code, modifiers, guestos, browser, browserVersion) {
|
||||
if(eventType == AjaxViewer.KEY_DOWN || eventType == AjaxViewer.KEY_UP) {
|
||||
|
||||
// special handling for Alt + Ctrl + Ins, convert it into Alt-Ctrl-Del
|
||||
if(code == AjaxViewer.JS_KEY_INSERT) {
|
||||
if((modifiers & AjaxViewer.ALT_KEY_MASK) != 0 && (modifiers & AjaxViewer.CTRL_KEY_MASK) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: 0xffff, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var X11Keysym = code;
|
||||
if(this.jsX11KeysymMap[code] != undefined) {
|
||||
X11Keysym = this.jsX11KeysymMap[code];
|
||||
if(typeof this.jsX11KeysymMap[code] == "boolean") {
|
||||
return;
|
||||
} else if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(this.isConditionalEntryMatched(eventType, code, modifiers, X11Keysym[i], guestos, browser, browserVersion)) {
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
|
||||
// special handling for ALT/CTRL key
|
||||
if(eventType == AjaxViewer.KEY_UP && (code == AjaxViewer.JS_KEY_ALT || code == code == AjaxViewer.JS_KEY_CTRL))
|
||||
this.mappedInput.push({type : eventType, code: this.jsX11KeysymMap[code], modifiers: modifiers});
|
||||
|
||||
} else if(eventType == AjaxViewer.KEY_PRESS) {
|
||||
var X11Keysym = code;
|
||||
X11Keysym = this.jsKeyPressX11KeysymMap[code];
|
||||
if(X11Keysym) {
|
||||
if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(this.isConditionalEntryMatched(eventType, code, modifiers, X11Keysym[i], guestos, browser))
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: X11Keysym, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
CookedKeyboardInputHandler : function(eventType, code, modifiers, guestos, browser, browserVersion) {
|
||||
if(eventType == AjaxViewer.KEY_DOWN || eventType == AjaxViewer.KEY_UP) {
|
||||
|
||||
// special handling for Alt + Ctrl + Ins, convert it into Alt-Ctrl-Del
|
||||
if(code == AjaxViewer.JS_KEY_INSERT) {
|
||||
if((modifiers & AjaxViewer.ALT_KEY_MASK) != 0 && (modifiers & AjaxViewer.CTRL_KEY_MASK) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: 0xffff, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var X11Keysym = code;
|
||||
if(this.jsX11KeysymMap[code] != undefined) {
|
||||
X11Keysym = this.jsX11KeysymMap[code];
|
||||
if(typeof this.jsX11KeysymMap[code] == "boolean") {
|
||||
return;
|
||||
} else if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(this.isConditionalEntryMatched(eventType, code, modifiers, X11Keysym[i], guestos, browser, browserVersion)) {
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
} else {
|
||||
if((modifiers & (AjaxViewer.CTRL_KEY_MASK | AjaxViewer.ALT_KEY_MASK)) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
|
||||
// special handling for ALT/CTRL key
|
||||
if(eventType == AjaxViewer.KEY_UP && (code == AjaxViewer.JS_KEY_ALT || code == code == AjaxViewer.JS_KEY_CTRL))
|
||||
this.mappedInput.push({type : eventType, code: this.jsX11KeysymMap[code], modifiers: modifiers});
|
||||
|
||||
} else if(eventType == AjaxViewer.KEY_PRESS) {
|
||||
// special handling for * and + key on number pad
|
||||
if(code == AjaxViewer.JS_NUMPAD_MULTIPLY) {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: 42, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: 42, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
|
||||
if(code == AjaxViewer.JS_NUMPAD_PLUS) {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: 43, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: 43, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
|
||||
// ENTER/BACKSPACE key should already have been sent through KEY DOWN/KEY UP event
|
||||
if(code == AjaxViewer.JS_KEY_ENTER || code == AjaxViewer.JS_KEY_BACKSPACE)
|
||||
return;
|
||||
|
||||
if(code > 0) {
|
||||
var X11Keysym = code;
|
||||
X11Keysym = this.jsKeyPressX11KeysymMap[code];
|
||||
if(X11Keysym) {
|
||||
if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(this.isConditionalEntryMatched(eventType, code, modifiers, X11Keysym[i], guestos, browser))
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: X11Keysym, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
} else {
|
||||
// if there is no mappting entry, use the JS keypress code directly
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: code, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: code, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
inputFeed : function(eventType, code, modifiers, guestos, browser, browserVersion) {
|
||||
if(this.keyboardType == KeyboardMapper.KEYBOARD_TYPE_RAW)
|
||||
this.RawkeyboardInputHandler(eventType, code, modifiers, guestos, browser, browserVersion);
|
||||
else
|
||||
this.CookedKeyboardInputHandler(eventType, code, modifiers, guestos, browser, browserVersion);
|
||||
},
|
||||
|
||||
getMappedInput : function() {
|
||||
@ -76,253 +361,44 @@ KeyboardMapper.prototype = {
|
||||
return mappedInput;
|
||||
},
|
||||
|
||||
isConditionalEntryMatched : function(eventType, code, modifiers, entry, guestos, browser, browserVersion) {
|
||||
if(eventType == AjaxViewer.KEY_DOWN || eventType == AjaxViewer.KEY_UP) {
|
||||
// for KeyDown/KeyUp events, we require that the type in entry should match with
|
||||
// the real input
|
||||
if(entry.type != eventType)
|
||||
return false;
|
||||
}
|
||||
|
||||
// check conditional match
|
||||
if(entry.shift != undefined) {
|
||||
var shift = ((modifiers & AjaxViewer.SHIFT_KEY_MASK) != 0 ? true : false);
|
||||
if(entry.shift ^ shift)
|
||||
return false;
|
||||
}
|
||||
|
||||
if(entry.guestos != undefined) {
|
||||
if(entry.guestos != guestos)
|
||||
return false;
|
||||
}
|
||||
|
||||
if(entry.browser != undefined) {
|
||||
if(entry.browser != browser)
|
||||
return false;
|
||||
}
|
||||
|
||||
if(entry.browserVersion != undefined) {
|
||||
if(entry.browserVersion != browserVersion)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
|
||||
isModifierInput : function(code) {
|
||||
return $.inArray(code, [AjaxViewer.ALT_KEY_MASK, AjaxViewer.SHIFT_KEY_MASK, AjaxViewer.CTRL_KEY_MASK, AjaxViewer.META_KEY_MASK]) >= 0;
|
||||
}
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// JsX11KeyboardMapper
|
||||
//
|
||||
function JsX11KeyboardMapper() {
|
||||
KeyboardMapper.apply(this, arguments);
|
||||
|
||||
this.jsX11KeysymMap = [];
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CAPSLOCK] = AjaxViewer.X11_KEY_CAPSLOCK;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACKSPACE] = AjaxViewer.X11_KEY_BACKSPACE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_TAB] = AjaxViewer.X11_KEY_TAB;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ENTER] = AjaxViewer.X11_KEY_ENTER;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ESCAPE] = AjaxViewer.X11_KEY_ESCAPE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_INSERT] = AjaxViewer.X11_KEY_INSERT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DELETE] = AjaxViewer.X11_KEY_DELETE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_HOME] = AjaxViewer.X11_KEY_HOME;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_END] = AjaxViewer.X11_KEY_END;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEUP] = AjaxViewer.X11_KEY_PAGEUP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEDOWN] = AjaxViewer.X11_KEY_PAGEDOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_LEFT] = AjaxViewer.X11_KEY_LEFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_UP] = AjaxViewer.X11_KEY_UP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_RIGHT] = AjaxViewer.X11_KEY_RIGHT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DOWN] = AjaxViewer.X11_KEY_DOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F1] = AjaxViewer.X11_KEY_F1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F2] = AjaxViewer.X11_KEY_F2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F3] = AjaxViewer.X11_KEY_F3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F4] = AjaxViewer.X11_KEY_F4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F5] = AjaxViewer.X11_KEY_F5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F6] = AjaxViewer.X11_KEY_F6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F7] = AjaxViewer.X11_KEY_F7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F8] = AjaxViewer.X11_KEY_F8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F9] = AjaxViewer.X11_KEY_F9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F10] = AjaxViewer.X11_KEY_F10;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F11] = AjaxViewer.X11_KEY_F11;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F12] = AjaxViewer.X11_KEY_F12;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SHIFT] = AjaxViewer.X11_KEY_SHIFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CTRL] = AjaxViewer.X11_KEY_CTRL;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ALT] = AjaxViewer.X11_KEY_ALT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_GRAVE_ACCENT] = AjaxViewer.X11_KEY_GRAVE_ACCENT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SUBSTRACT] = AjaxViewer.X11_KEY_SUBSTRACT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ADD] = AjaxViewer.X11_KEY_ADD;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_OPEN_BRACKET] = AjaxViewer.X11_KEY_OPEN_BRACKET;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CLOSE_BRACKET] = AjaxViewer.X11_KEY_CLOSE_BRACKET;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACK_SLASH] = AjaxViewer.X11_KEY_BACK_SLASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SINGLE_QUOTE] = AjaxViewer.X11_KEY_SINGLE_QUOTE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_COMMA] = AjaxViewer.X11_KEY_COMMA;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PERIOD] = AjaxViewer.X11_KEY_PERIOD;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_FORWARD_SLASH] = AjaxViewer.X11_KEY_FORWARD_SLASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DASH] = AjaxViewer.X11_KEY_DASH;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SEMI_COLON] = AjaxViewer.X11_KEY_SEMI_COLON;
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD0] = AjaxViewer.X11_KEY_NUMPAD0;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD1] = AjaxViewer.X11_KEY_NUMPAD1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD2] = AjaxViewer.X11_KEY_NUMPAD2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD3] = AjaxViewer.X11_KEY_NUMPAD3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD4] = AjaxViewer.X11_KEY_NUMPAD4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD5] = AjaxViewer.X11_KEY_NUMPAD5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD6] = AjaxViewer.X11_KEY_NUMPAD6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD7] = AjaxViewer.X11_KEY_NUMPAD7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD8] = AjaxViewer.X11_KEY_NUMPAD8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_NUMPAD9] = AjaxViewer.X11_KEY_NUMPAD9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DECIMAL_POINT] = AjaxViewer.X11_KEY_DECIMAL_POINT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DIVIDE] = AjaxViewer.X11_KEY_DIVIDE;
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_MULTIPLY] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ASTERISK, modifiers: 0 },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0 }
|
||||
];
|
||||
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ADD] = false;
|
||||
this.jsKeyPressX11KeysymMap = [];
|
||||
this.jsKeyPressX11KeysymMap[61] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false }
|
||||
];
|
||||
this.jsKeyPressX11KeysymMap[43] = [
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: 0, shift: false },
|
||||
{type: AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: true },
|
||||
{type: AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_ADD, modifiers: 0, shift: true }
|
||||
];
|
||||
}
|
||||
|
||||
JsX11KeyboardMapper.prototype = new KeyboardMapper();
|
||||
JsX11KeyboardMapper.prototype.inputFeed = function(eventType, code, modifiers) {
|
||||
if(eventType == AjaxViewer.KEY_DOWN || eventType == AjaxViewer.KEY_UP) {
|
||||
|
||||
// special handling for Alt + Ctrl + Ins, convert it into Alt-Ctrl-Del
|
||||
if(code == AjaxViewer.JS_KEY_INSERT) {
|
||||
if((modifiers & AjaxViewer.ALT_KEY_MASK) != 0 && (modifiers & AjaxViewer.CTRL_KEY_MASK) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: 0xffff, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var X11Keysym = code;
|
||||
if(this.jsX11KeysymMap[code] != undefined) {
|
||||
X11Keysym = this.jsX11KeysymMap[code];
|
||||
if(typeof this.jsX11KeysymMap[code] == "boolean") {
|
||||
return;
|
||||
} else if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(X11Keysym[i].type == eventType) {
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
|
||||
// special handling for ALT/CTRL key
|
||||
if(eventType == AjaxViewer.KEY_UP && (code == AjaxViewer.JS_KEY_ALT || code == code == AjaxViewer.JS_KEY_CTRL))
|
||||
this.mappedInput.push({type : eventType, code: this.jsX11KeysymMap[code], modifiers: modifiers});
|
||||
|
||||
} else if(eventType == AjaxViewer.KEY_PRESS) {
|
||||
var X11Keysym = code;
|
||||
X11Keysym = this.jsKeyPressX11KeysymMap[code];
|
||||
if(X11Keysym) {
|
||||
if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
var shift = ((modifiers & AjaxViewer.SHIFT_KEY_MASK) != 0 ? true : false);
|
||||
if(!(X11Keysym[i].shift ^ shift))
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//JsCookedKeyboardMapper
|
||||
// For Xen/KVM hypervisors, it accepts "cooked" keyborad events
|
||||
//
|
||||
function JsCookedKeyboardMapper() {
|
||||
KeyboardMapper.apply(this, arguments);
|
||||
|
||||
this.jsX11KeysymMap = [];
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CAPSLOCK] = AjaxViewer.X11_KEY_CAPSLOCK;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_BACKSPACE] = AjaxViewer.X11_KEY_BACKSPACE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_TAB] = AjaxViewer.X11_KEY_TAB;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ENTER] = AjaxViewer.X11_KEY_ENTER;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ESCAPE] = AjaxViewer.X11_KEY_ESCAPE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_INSERT] = AjaxViewer.X11_KEY_INSERT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DELETE] = AjaxViewer.X11_KEY_DELETE;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_HOME] = AjaxViewer.X11_KEY_HOME;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_END] = AjaxViewer.X11_KEY_END;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEUP] = AjaxViewer.X11_KEY_PAGEUP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_PAGEDOWN] = AjaxViewer.X11_KEY_PAGEDOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_LEFT] = AjaxViewer.X11_KEY_LEFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_UP] = AjaxViewer.X11_KEY_UP;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_RIGHT] = AjaxViewer.X11_KEY_RIGHT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_DOWN] = AjaxViewer.X11_KEY_DOWN;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F1] = AjaxViewer.X11_KEY_F1;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F2] = AjaxViewer.X11_KEY_F2;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F3] = AjaxViewer.X11_KEY_F3;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F4] = AjaxViewer.X11_KEY_F4;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F5] = AjaxViewer.X11_KEY_F5;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F6] = AjaxViewer.X11_KEY_F6;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F7] = AjaxViewer.X11_KEY_F7;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F8] = AjaxViewer.X11_KEY_F8;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F9] = AjaxViewer.X11_KEY_F9;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F10] = AjaxViewer.X11_KEY_F10;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F11] = AjaxViewer.X11_KEY_F11;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_F12] = AjaxViewer.X11_KEY_F12;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_SHIFT] = AjaxViewer.X11_KEY_SHIFT;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_CTRL] = AjaxViewer.X11_KEY_CTRL;
|
||||
this.jsX11KeysymMap[AjaxViewer.JS_KEY_ALT] = AjaxViewer.X11_KEY_ALT;
|
||||
}
|
||||
|
||||
JsCookedKeyboardMapper.prototype = new KeyboardMapper();
|
||||
JsCookedKeyboardMapper.prototype.inputFeed = function(eventType, code, modifiers) {
|
||||
if(eventType == AjaxViewer.KEY_DOWN || eventType == AjaxViewer.KEY_UP) {
|
||||
|
||||
// special handling for Alt + Ctrl + Ins, convert it into Alt-Ctrl-Del
|
||||
if(code == AjaxViewer.JS_KEY_INSERT) {
|
||||
if((modifiers & AjaxViewer.ALT_KEY_MASK) != 0 && (modifiers & AjaxViewer.CTRL_KEY_MASK) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: 0xffff, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
var X11Keysym = code;
|
||||
if(this.jsX11KeysymMap[code] != undefined) {
|
||||
X11Keysym = this.jsX11KeysymMap[code];
|
||||
if(typeof this.jsX11KeysymMap[code] == "boolean") {
|
||||
return;
|
||||
} else if($.isArray(X11Keysym)) {
|
||||
for(var i = 0; i < X11Keysym.length; i++) {
|
||||
if(X11Keysym[i].type == eventType) {
|
||||
this.mappedInput.push(X11Keysym[i]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
} else {
|
||||
if((modifiers & AjaxViewer.CTRL_KEY_MASK) != 0) {
|
||||
this.mappedInput.push({type : eventType, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
|
||||
// special handling for ALT/CTRL key
|
||||
if(eventType == AjaxViewer.KEY_UP && (code == AjaxViewer.JS_KEY_ALT || code == code == AjaxViewer.JS_KEY_CTRL))
|
||||
this.mappedInput.push({type : eventType, code: this.jsX11KeysymMap[code], modifiers: modifiers});
|
||||
|
||||
} else if(eventType == AjaxViewer.KEY_PRESS) {
|
||||
var X11Keysym = code;
|
||||
|
||||
// special handling for * and + key on number pad
|
||||
if(code == AjaxViewer.JS_NUMPAD_MULTIPLY) {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: 42, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: 42, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
|
||||
if(code == AjaxViewer.JS_NUMPAD_PLUS) {
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: 43, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: 43, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: AjaxViewer.X11_KEY_SHIFT, modifiers: modifiers});
|
||||
return;
|
||||
}
|
||||
|
||||
// ENTER/BACKSPACE key should already have been sent through KEY DOWN/KEY UP event
|
||||
if(code == AjaxViewer.JS_KEY_ENTER || code == AjaxViewer.JS_KEY_BACKSPACE)
|
||||
return;
|
||||
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_DOWN, code: X11Keysym, modifiers: modifiers});
|
||||
this.mappedInput.push({type : AjaxViewer.KEY_UP, code: X11Keysym, modifiers: modifiers});
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// class AjaxViewer
|
||||
//
|
||||
@ -653,12 +729,14 @@ AjaxViewer.prototype = {
|
||||
|
||||
setupKeyboardTranslationTable : function() {
|
||||
this.keyboardMappers = [];
|
||||
// this.keyboardMappers[AjaxViewer.KEYBOARD_TYPE_ENGLISH] = new JsX11KeyboardMapper();
|
||||
this.keyboardMappers[AjaxViewer.KEYBOARD_TYPE_ENGLISH] = new JsCookedKeyboardMapper();
|
||||
|
||||
// setup Japanese keyboard translation table
|
||||
var mapper = new JsX11KeyboardMapper();
|
||||
|
||||
var mapper = new KeyboardMapper();
|
||||
this.keyboardMappers[AjaxViewer.KEYBOARD_TYPE_ENGLISH] = mapper;
|
||||
mapper.setKeyboardType(KeyboardMapper.KEYBOARD_TYPE_COOKED);
|
||||
|
||||
mapper = new KeyboardMapper();
|
||||
this.keyboardMappers[AjaxViewer.KEYBOARD_TYPE_JAPANESE] = mapper;
|
||||
mapper.setKeyboardType(KeyboardMapper.KEYBOARD_TYPE_RAW);
|
||||
|
||||
// JP keyboard plugged in a English host OS
|
||||
/*
|
||||
@ -1288,7 +1366,7 @@ AjaxViewer.prototype = {
|
||||
|
||||
dispatchKeyboardInput : function(event, code, modifiers) {
|
||||
var keyboardMapper = ajaxViewer.getCurrentKeyboardMapper();
|
||||
keyboardMapper.inputFeed(event, code, modifiers);
|
||||
keyboardMapper.inputFeed(event, code, modifiers, this.guestos, $.browser, $.browser.version);
|
||||
this.dispatchMappedKeyboardInput(keyboardMapper.getMappedInput());
|
||||
},
|
||||
|
||||
|
||||
@ -16,15 +16,14 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-console-proxy</artifactId>
|
||||
<name>Apache CloudStack Console Proxy</name>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -139,7 +138,39 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>vmware</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>nonoss</name>
|
||||
</property>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-plugin-hypervisor-vmware</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloud-vmware-base</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>systemvm</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>systemvm</name>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>exec-maven-plugin</artifactId>
|
||||
<version>1.2.1</version>
|
||||
@ -164,7 +195,10 @@
|
||||
<argument>authorized_keys</argument>
|
||||
</arguments>
|
||||
</configuration>
|
||||
</plugin-->
|
||||
</plugins>
|
||||
</build>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
|
||||
@ -87,6 +87,7 @@ public class ConsoleProxyGCThread extends Thread {
|
||||
|
||||
synchronized (connMap) {
|
||||
connMap.remove(key);
|
||||
bReportLoad = true;
|
||||
}
|
||||
|
||||
// close the server connection
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="main_panel" tabindex="1">
|
||||
<p>Unable to start console session as access is denied because of bad sid</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="main_panel" tabindex="1">
|
||||
<p>Unable to start console session as access is denied because of bad sid</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,29 +1,29 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="main_panel" tabindex="1">
|
||||
<p>Unable to start console session as connection is refused by the machine you are accessing</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="main_panel" tabindex="1">
|
||||
<p>Unable to start console session as connection is refused by the machine you are accessing</p>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@ -1,59 +1,59 @@
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/jquery.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/ajaxviewer.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/handler.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/resource/css/ajaxviewer.css"></link>
|
||||
<title>${title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="toolbar">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:sendCtrlAltDel();">
|
||||
<span><img align="left" src="/resource/images/cad.gif" alt="Ctrl-Alt-Del" />Ctrl-Alt-Del</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:sendCtrlEsc();">
|
||||
<span><img align="left" src="/resource/images/winlog.png" alt="Ctrl-Esc" style="width:16px;height:16px"/>Ctrl-Esc</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<span id="light" class="dark"></span>
|
||||
</div>
|
||||
|
||||
<div id="main_panel" tabindex="1"></div>
|
||||
|
||||
<script language="javascript">
|
||||
|
||||
var tileMap = [ ${tileSequence} ];
|
||||
var ajaxViewer = new AjaxViewer('main_panel', '${imgUrl}', '${updateUrl}', tileMap,
|
||||
${width}, ${height}, ${tileWidth}, ${tileHeight}, ${rawKeyboard});
|
||||
|
||||
$(function() {
|
||||
ajaxViewer.start();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
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.
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/jquery.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/ajaxviewer.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="/resource/js/handler.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/resource/css/ajaxviewer.css"></link>
|
||||
<title>${title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="toolbar">
|
||||
<ul>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:sendCtrlAltDel();">
|
||||
<span><img align="left" src="/resource/images/cad.gif" alt="Ctrl-Alt-Del" />Ctrl-Alt-Del</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" onclick="javascript:sendCtrlEsc();">
|
||||
<span><img align="left" src="/resource/images/winlog.png" alt="Ctrl-Esc" style="width:16px;height:16px"/>Ctrl-Esc</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<span id="light" class="dark"></span>
|
||||
</div>
|
||||
|
||||
<div id="main_panel" tabindex="1"></div>
|
||||
|
||||
<script language="javascript">
|
||||
|
||||
var tileMap = [ ${tileSequence} ];
|
||||
var ajaxViewer = new AjaxViewer('main_panel', '${imgUrl}', '${updateUrl}', tileMap,
|
||||
${width}, ${height}, ${tileWidth}, ${tileHeight}, ${rawKeyboard});
|
||||
|
||||
$(function() {
|
||||
ajaxViewer.start();
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
19
core/pom.xml
19
core/pom.xml
@ -16,15 +16,14 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-core</artifactId>
|
||||
<name>Apache CloudStack Core</name>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -32,17 +31,7 @@
|
||||
<artifactId>cloud-api</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>xapi</artifactId>
|
||||
<version>${cs.xapi.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>junit</artifactId>
|
||||
<groupId>junit</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
@ -58,6 +47,6 @@
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
<sourceDirectory>src</sourceDirectory>
|
||||
<!-- <testSourceDirectory>test</testSourceDirectory> -->
|
||||
<testSourceDirectory>test</testSourceDirectory>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
24
debian/changelog
vendored
24
debian/changelog
vendored
@ -1,3 +1,27 @@
|
||||
cloud (1:4.0.0-1) unstable; urgency=low
|
||||
|
||||
* Bumping the version to 4.0.0
|
||||
|
||||
-- Chip Childers <chipchilders@apache.org> Fri, 5 Oct 2012 16:00:00 -0500
|
||||
|
||||
cloud (1:4.0.0-beta6) unstable; urgency=low
|
||||
|
||||
* Bumping the version to 4.0 Beta 6
|
||||
|
||||
-- Wido den Hollander <wido@widodh.nl> Fri, 5 Oct 2012 11:41:17 +0200
|
||||
|
||||
cloud (1:4.0.0-beta1) unstable; urgency=low
|
||||
|
||||
* Bumping the version to 4.0 Beta 1
|
||||
|
||||
-- Wido den Hollander <wido@widodh.nl> Wed, 26 Sep 2012 21:14:48 +0200
|
||||
|
||||
cloud (4.0.0-rc2) unstable; urgency=low
|
||||
|
||||
* Bumping the version to 4.0 RC2
|
||||
|
||||
-- Wido den Hollander <wido@widodh.nl> Mon, 24 Sep 2012 11:30:29 +0200
|
||||
|
||||
cloud (4.0.0-rc1) unstable; urgency=low
|
||||
|
||||
* Bumping the version to 4.0 RC1
|
||||
|
||||
12
debian/control
vendored
12
debian/control
vendored
@ -2,13 +2,13 @@ Source: cloud
|
||||
Section: libs
|
||||
Priority: extra
|
||||
Maintainer: Wido den Hollander <wido@widodh.nl>
|
||||
Build-Depends: debhelper (>= 7), openjdk-6-jdk, tomcat6, libws-commons-util-java, libcommons-dbcp-java, libcommons-collections-java, libcommons-httpclient-java, libservlet2.5-java, genisoimage, python-mysqldb, maven3 | maven (>= 3), liblog4j1.2-java (>= 1.2.16)
|
||||
Build-Depends: debhelper (>= 7), openjdk-6-jdk, tomcat6, libws-commons-util-java, libcommons-codec-java (>= 1.5), libcommons-httpclient-java (>= 3.1), libservlet2.5-java, genisoimage, python-mysqldb, maven3 | maven (>= 3), liblog4j1.2-java (>= 1.2.16)
|
||||
Standards-Version: 3.8.1
|
||||
Homepage: http://www.cloudstack.org/
|
||||
|
||||
Package: cloud-deps
|
||||
Architecture: any
|
||||
Depends: openjdk-6-jre, libcommons-discovery-java (>= 0.5), libcommons-dbcp-java (>= 1.4), libcommons-pool-java (>= 1.5.6), libcommons-codec-java (>= 1.5)
|
||||
Depends: openjdk-6-jre, libcommons-codec-java (>= 1.5), libcommons-httpclient-java (>= 3.1)
|
||||
Description: CloudStack library dependencies
|
||||
This package contains a number of third-party dependencies
|
||||
not shipped by distributions, required to run the CloudStack
|
||||
@ -24,7 +24,7 @@ Description: CloudStack agent library dependencies
|
||||
|
||||
Package: cloud-utils
|
||||
Architecture: any
|
||||
Depends: openjdk-6-jre, python, libcglib-java (>= 2.2.2), libjsch-java (>= 0.1.42), libbackport-util-concurrent-java (>= 3.1)
|
||||
Depends: openjdk-6-jre, python, libcglib-java (>= 2.2.2), libjsch-java (>= 0.1.42), libbackport-util-concurrent-java (>= 3.1), libcommons-dbcp-java (>= 1.4), libcommons-pool-java (>= 1.5.6)
|
||||
Description: CloudStack utility library
|
||||
The CloudStack utility libraries provide a set of Java classes used
|
||||
in the CloudStack environment.
|
||||
@ -40,7 +40,7 @@ Description: CloudStack management server UI
|
||||
|
||||
Package: cloud-server
|
||||
Architecture: any
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-deps (= ${source:Version}), libservlet2.5-java
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-deps (= ${source:Version}), cloud-scripts (= ${source:Version}), libservlet2.5-java
|
||||
Description: CloudStack server library
|
||||
The CloudStack server libraries provide a set of Java classes used
|
||||
in the CloudStack management server.
|
||||
@ -84,13 +84,13 @@ Description: CloudStack Python library
|
||||
|
||||
Package: cloud-agent-libs
|
||||
Architecture: any
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-agent-deps (= ${source:Version}), libcommons-httpclient-java, libcommons-collections-java, libcommons-dbcp-java, libcommons-pool-java, libcommons-logging-java
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-agent-deps (= ${source:Version})
|
||||
Description: CloudStack agent libraries
|
||||
The CloudStack agent libraries are used by the Cloud Agent.
|
||||
|
||||
Package: cloud-agent
|
||||
Architecture: any
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-agent-deps (= ${source:Version}), python, cloud-python (= ${source:Version}), cloud-agent-libs (= ${source:Version}), cloud-scripts (= ${source:Version}), libvirt0, sysvinit-utils, chkconfig, qemu-kvm, libvirt-bin, uuid-runtime, rsync, grep, iproute, ebtables, vlan, libcommons-httpclient-java, libservlet2.5-java, liblog4j1.2-java (>= 1.2.16), libjna-java, wget, jsvc, lsb-base (>= 3.2)
|
||||
Depends: openjdk-6-jre, cloud-utils (= ${source:Version}), cloud-core (= ${source:Version}), cloud-agent-deps (= ${source:Version}), cloud-python (= ${source:Version}), cloud-agent-libs (= ${source:Version}), cloud-scripts (= ${source:Version}), libvirt0, sysvinit-utils, chkconfig, qemu-kvm, libvirt-bin, uuid-runtime, rsync, grep, iproute, ebtables, vlan, liblog4j1.2-java (>= 1.2.16), libjna-java, wget, jsvc, lsb-base (>= 3.2)
|
||||
Description: CloudStack agent
|
||||
The CloudStack agent is in charge of managing shared computing resources in
|
||||
a CloudStack powered cloud. Install this package if this computer
|
||||
|
||||
10
debian/rules
vendored
10
debian/rules
vendored
@ -90,8 +90,11 @@ install-arch:
|
||||
binary-common:
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_installchangelogs
|
||||
dh_installdocs -A README.html
|
||||
dh_installchangelogs
|
||||
dh_installdocs LICENSE
|
||||
dh_installdocs DISCLAIMER
|
||||
dh_installdocs NOTICE
|
||||
dh_installdocs INSTALL.md
|
||||
# dh_installexamples
|
||||
# dh_installmenu
|
||||
# dh_installdebconf
|
||||
@ -114,7 +117,8 @@ binary-common:
|
||||
# dh_shlibdeps
|
||||
dh_gencontrol
|
||||
dh_md5sums
|
||||
dh_builddeb
|
||||
mkdir -p ./artifacts/debs
|
||||
dh_builddeb --destdir=$(CURDIR)/artifacts/debs
|
||||
# Build architecture independant packages using the common target.
|
||||
# binary-indep: build-indep install-indep
|
||||
# $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
|
||||
|
||||
5
deps/XenServerJava/pom.xml
vendored
5
deps/XenServerJava/pom.xml
vendored
@ -16,13 +16,12 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>xapi</artifactId>
|
||||
|
||||
20
deps/pom.xml
vendored
20
deps/pom.xml
vendored
@ -16,8 +16,7 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-deps</artifactId>
|
||||
<name>Apache CloudStack Dependencies</name>
|
||||
@ -25,7 +24,7 @@
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.0.0-SNAPSHOT</version>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
@ -176,7 +175,20 @@
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<ignore></ignore>
|
||||
<ignore />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
<pluginExecution>
|
||||
<pluginExecutionFilter>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<versionRange>[2.0,)</versionRange>
|
||||
<goals>
|
||||
<goal>copy-dependencies</goal>
|
||||
</goals>
|
||||
</pluginExecutionFilter>
|
||||
<action>
|
||||
<execute />
|
||||
</action>
|
||||
</pluginExecution>
|
||||
</pluginExecutions>
|
||||
|
||||
238
developer/pom.xml
Normal file
238
developer/pom.xml
Normal file
@ -0,0 +1,238 @@
|
||||
<!-- 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. -->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>cloud-developer</artifactId>
|
||||
<name>Apache CloudStack Developer Tools</name>
|
||||
<packaging>pom</packaging>
|
||||
<parent>
|
||||
<groupId>org.apache.cloudstack</groupId>
|
||||
<artifactId>cloudstack</artifactId>
|
||||
<version>4.1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>5.1.21</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<defaultGoal>install</defaultGoal>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>deploydb</id>
|
||||
<activation>
|
||||
<property>
|
||||
<name>deploydb</name>
|
||||
</property>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>properties-maven-plugin</artifactId>
|
||||
<version>1.0-alpha-2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>initialize</phase>
|
||||
<goals>
|
||||
<goal>read-project-properties</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<files>
|
||||
<file>${project.parent.basedir}/utils/conf/db.properties</file>
|
||||
</files>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-antrun-plugin</artifactId>
|
||||
<version>1.7</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>generate-resources</phase>
|
||||
<goals>
|
||||
<goal>run</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<target>
|
||||
<filter token="VERSION" value="${project.version}" />
|
||||
<copy todir="${basedir}/target/db" filtering="true">
|
||||
<fileset dir="${project.basedir}/../setup/db/">
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy todir="${basedir}/target/db" filtering="true">
|
||||
<fileset dir="${project.basedir}/../awsapi-setup/db/mysql/">
|
||||
<include name="**/*.sql" />
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>sql-maven-plugin</artifactId>
|
||||
<version>1.5</version>
|
||||
<dependencies>
|
||||
<!-- specify the dependent jdbc driver here -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${cs.mysql.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<driver>org.gjt.mm.mysql.Driver</driver>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}/cloud</url>
|
||||
<username>${db.cloud.username}</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<!--all executions are ignored if -Dmaven.test.skip=true -->
|
||||
<skip>${maven.test.skip}</skip>
|
||||
<forceMojoExecution>true</forceMojoExecution>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
<execution>
|
||||
<id>drop-database</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>drop database if exists `cloud`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>create-database</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>create database `cloud`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>drop-database-usage</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>drop database if exists `cloud_usage`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>create-database-usage</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>create database `cloud_usage`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>drop-database-cloudbridge</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>drop database if exists `cloudbridge`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>create-database-cloudbridge</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<username>root</username>
|
||||
<password>${db.cloud.password}</password>
|
||||
<url>jdbc:mysql://${db.cloud.host}:${db.cloud.port}</url>
|
||||
<sqlCommand>create database `cloudbridge`</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>create-schema</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<srcFiles>
|
||||
<srcFile>${basedir}/target/db/create-schema.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/create-schema-premium.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/templates.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/create-index-fk.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_schema.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_multipart.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_index.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_multipart_alter.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_bucketpolicy.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_policy_alter.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_offering.sql</srcFile>
|
||||
<srcFile>${basedir}/target/db/cloudbridge_offering_alter.sql</srcFile>
|
||||
</srcFiles>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>prefill-schema</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sqlCommand>INSERT INTO `cloud`.`domain` (id, name, parent, path, owner) VALUES (1, 'ROOT', NULL, '/', 2)</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>prefill-configuration</id>
|
||||
<phase>process-test-resources</phase>
|
||||
<goals>
|
||||
<goal>execute</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<sqlCommand>INSERT INTO `cloud`.`configuration` (category, instance, component, name, value) VALUES ('Hidden', 'DEFAULT', 'management-server', 'init', 'false')</sqlCommand>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
2139
docs/.tx/config
Normal file
2139
docs/.tx/config
Normal file
File diff suppressed because it is too large
Load Diff
@ -57,10 +57,21 @@ Some of the XML files contain only a series of include tags to pull in content f
|
||||
The master book file contains <book> ... </book> tags. This file is referred to in the Publican configuration file, and is used as the controlling file when building the book.
|
||||
|
||||
|
||||
As a naming convention, start the name of a book file with cloudstack_ ; for example, cloudstack_installation.
|
||||
Document names are derived from the docname setting in the appropriate .cfg file.
|
||||
This should not have CloudStack in the name (which is redundant because of
|
||||
the CloudStack brand that the documentation is built with. The docname variable
|
||||
sets the name in the doc site table of contents. This name also needs to exist
|
||||
as .xml and .ent in the en-US directory. Examples of appropriate docnames:
|
||||
Admin_Guide
|
||||
API_Developers_Guide
|
||||
Installation_Guide
|
||||
|
||||
|
||||
A Publican book file must also have certain other tags that are expected by Publican when it builds the project. Copy an existing master book file to get these tags.
|
||||
|
||||
|
||||
A Publican book file must also have certain other tags that are expected by
|
||||
Publican when it builds the project. Copy an existing master book file to
|
||||
get these tags.
|
||||
|
||||
|
||||
----------------------------------
|
||||
@ -71,10 +82,15 @@ CONFIG FILES
|
||||
|
||||
For each book file, there must be a corresponding publican.cfg (or
|
||||
<other_name>.cfg) file in order to build the book with Publican. The
|
||||
docname: attribute in the config file matches the name of the master book file; for example, docname: cloudstack corresponds to the master book file cloudstack.xml.
|
||||
docname: attribute in the config file matches the name of the master book file;
|
||||
for example, docname: cloudstack corresponds to the master book file
|
||||
cloudstack.xml.
|
||||
|
||||
|
||||
The .cfg files reside in the main directory, docs. To build a different book, just use the Publican command line flag --config=<filename>.cfg. (We also need per-book entities, Book_Info, Author_Info, and other Publican files. The technique for pulling these in is TBD.)
|
||||
The .cfg files reside in the main directory, docs. To build a different book,
|
||||
just use the Publican command line flag --config=<filename>.cfg. (We also
|
||||
need per-book entities, Book_Info, Author_Info, and other Publican files.
|
||||
The technique for pulling these in is TBD.)
|
||||
|
||||
|
||||
----------------------------------
|
||||
@ -83,13 +99,18 @@ TO BUILD A BOOK
|
||||
|
||||
----------------------------------
|
||||
|
||||
We will set up an automatic Publican job that generates new output whenever we check in changes to this repository. You can also build a book locally as follows.
|
||||
We will set up an automatic Publican job that generates new output whenever we
|
||||
check in changes to this repository. You can also build a book locally as
|
||||
follows.
|
||||
|
||||
|
||||
First, install Publican, and get a local copy of the book source files.
|
||||
|
||||
|
||||
Put the desired publican.cfg in the docs directory. Go to the command line, cd to that directory, and run the publican build command. Specify what output format(s) and what language(s) you want to build. Always start with a test run. For example:
|
||||
Put the desired publican.cfg in the docs directory. Go to the command line, cd
|
||||
to that directory, and run the publican build command. Specify what output
|
||||
format(s) and what language(s) you want to build. Always start with a test
|
||||
run. For example:
|
||||
|
||||
|
||||
publican build --formats test --langs en-US
|
||||
@ -111,9 +132,29 @@ LOCALIZATION
|
||||
|
||||
----------------------------------
|
||||
|
||||
Localized versions of the documentation files can be stored in appropriately named subdirectories parallel to en-US. The language code names to use for these directories are listed in Publican documentation, http://jfearn.fedorapeople.org/en-US/Publican/2.7/html/Users_Guide/appe-Users_Guide-Language_codes.html.
|
||||
Localized versions of the documentation files can be stored in appropriately
|
||||
named subdirectories parallel to en-US. The language code names to use for
|
||||
these directories are listed in Publican documentation,
|
||||
http://jfearn.fedorapeople.org/en-US/Publican/2.7/html/Users_Guide/appe-Users_Guide-Language_codes.html.
|
||||
For example, Japanese XML files would be stored in the docs/ja-JP directory.
|
||||
|
||||
Localization currently happens using Transifex and you can find the strings
|
||||
to be translated at this location:
|
||||
https://www.transifex.com/projects/p/ACS_DOCS/
|
||||
|
||||
In preparation for l10n, authors and docs folks must take not of a number of
|
||||
things.
|
||||
All .xml files must contain a translatable string. <xi:include> tags are not enough.
|
||||
All new .xml files must have a corresponding entry in docs/.tx/config
|
||||
Filenames should be less than 50 characters long.
|
||||
|
||||
To generate new POT files and upload source do the following:
|
||||
publican update_pot --config=./publican-all.cfg
|
||||
tx push -s
|
||||
|
||||
To receive translated files from publican, run the following command:
|
||||
tx pull
|
||||
|
||||
|
||||
----------------------------------
|
||||
|
||||
@ -121,7 +162,11 @@ CONTRIBUTING
|
||||
|
||||
----------------------------------
|
||||
|
||||
Contributors can create new section, chapter, book, publican.cfg, or localized .xml files at any time. Submit them following the same patch approval procedure that is used for contributing to CloudStack code. More information for contributors is available at https://cwiki.apache.org/confluence/display/CLOUDSTACK/Documentation+Team.
|
||||
Contributors can create new section, chapter, book, publican.cfg, or localized
|
||||
.xml files at any time. Submit them following the same patch approval procedure
|
||||
that is used for contributing to CloudStack code. More information for
|
||||
contributors is available at
|
||||
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Documentation+Team.
|
||||
|
||||
----------------------------------
|
||||
|
||||
|
||||
21
docs/en-US/API_Developers_Guide.ent
Normal file
21
docs/en-US/API_Developers_Guide.ent
Normal file
@ -0,0 +1,21 @@
|
||||
<!-- 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.
|
||||
-->
|
||||
<!ENTITY PRODUCT "CloudPlatform">
|
||||
<!ENTITY BOOKID "Technical Documentation">
|
||||
<!ENTITY YEAR "2012">
|
||||
<!ENTITY HOLDER "Citrix">
|
||||
@ -23,7 +23,27 @@
|
||||
-->
|
||||
|
||||
<book>
|
||||
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<bookinfo id="book-release-notes-3.0.4">
|
||||
<title>&PRODUCT; API Developers Guide</title>
|
||||
<productname>Apache CloudStack</productname>
|
||||
<productnumber>4.0</productnumber>
|
||||
<edition></edition>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>
|
||||
Complete technical documentation of &PRODUCT;.
|
||||
</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
<xi:include href="concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="developer-guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
@ -23,8 +23,29 @@
|
||||
-->
|
||||
|
||||
<book>
|
||||
<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<bookinfo id="cloudstack_admin">
|
||||
<title>&PRODUCT; Admin Guide</title>
|
||||
<productname>Apache CloudStack</productname>
|
||||
<productnumber>4.0</productnumber>
|
||||
<edition>1</edition>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>
|
||||
Administration Guide for &PRODUCT;.
|
||||
</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
<xi:include href="concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="admin-guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</book>
|
||||
|
||||
46
docs/en-US/Book_Info_Admin.xml
Normal file
46
docs/en-US/Book_Info_Admin.xml
Normal file
@ -0,0 +1,46 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<bookinfo id="book-cloudstack-admin">
|
||||
<title> Apache CloudStack 4.0
|
||||
Administrator's Guide</title>
|
||||
<subtitle>Revised September 11, 2012 01:32 am Pacific</subtitle>
|
||||
<productname></productname>
|
||||
<productnumber></productnumber>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>If you have already installed &PRODUCT; or you want to learn more about the ongoing
|
||||
operation and maintenance of a &PRODUCT;-powered cloud, read this documentation. It
|
||||
will help you start using, configuring, and managing the ongoing operation of your cloud.</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.png" format="PNG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
44
docs/en-US/Book_Info_Build_All.xml
Normal file
44
docs/en-US/Book_Info_Build_All.xml
Normal file
@ -0,0 +1,44 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<bookinfo id="book-cloudstack">
|
||||
<title>CloudStack Guide</title>
|
||||
<subtitle>Revised September 18, 2012 10:48 am Pacific</subtitle>
|
||||
<productname>Apache CloudStack (incubating)</productname>
|
||||
<productnumber>3.0</productnumber>
|
||||
<edition>1</edition>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>Complete technical documentation for Apache CloudStack.</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
@ -1,9 +1,3 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -22,7 +16,7 @@
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<section id="trial-installation">
|
||||
<title>Trial Installation</title>
|
||||
<para>Coming soon.</para>
|
||||
</section>
|
||||
<!ENTITY PRODUCT "CloudStack">
|
||||
<!ENTITY BOOKID "Technical Documentation">
|
||||
<!ENTITY YEAR "2012">
|
||||
<!ENTITY HOLDER "Apache Software Foundation">
|
||||
54
docs/en-US/CloudStack_Nicira_NVP_Guide.xml
Normal file
54
docs/en-US/CloudStack_Nicira_NVP_Guide.xml
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
<!ENTITY % xinclude SYSTEM "http://www.docbook.org/xml/4.4/xinclude.mod">
|
||||
%xinclude;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<book>
|
||||
<bookinfo id="cloudstack_plugin_niciranvp">
|
||||
<title>&PRODUCT; Plugin Guide for the Nicira NVP Plugin</title>
|
||||
<productname>Apache CloudStack</productname>
|
||||
<productnumber>4.0</productnumber>
|
||||
<edition>1</edition>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>
|
||||
Plugin Guide for the Nicira NVP Plugin.
|
||||
</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
<xi:include href="plugin-niciranvp-about.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="plugin-niciranvp-usage.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="plugin-niciranvp-troubleshooting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="plugin-niciranvp-revisions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</book>
|
||||
|
||||
22
docs/en-US/Installation_Guide.ent
Normal file
22
docs/en-US/Installation_Guide.ent
Normal file
@ -0,0 +1,22 @@
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<!ENTITY PRODUCT "CloudStack">
|
||||
<!ENTITY BOOKID "Technical Documentation">
|
||||
<!ENTITY YEAR "2012">
|
||||
<!ENTITY HOLDER "Apache Software Foundation">
|
||||
55
docs/en-US/Installation_Guide.xml
Normal file
55
docs/en-US/Installation_Guide.xml
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<book>
|
||||
<bookinfo id="book-installation">
|
||||
<title>&PRODUCT; Installation Guide</title>
|
||||
<productname>Apache CloudStack</productname>
|
||||
<productnumber>4.0</productnumber>
|
||||
<edition>1</edition>
|
||||
<pubsnumber></pubsnumber>
|
||||
<abstract>
|
||||
<para>
|
||||
Installation Guide for &PRODUCT;.
|
||||
</para>
|
||||
</abstract>
|
||||
<corpauthor>
|
||||
<inlinemediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
|
||||
</imageobject>
|
||||
</inlinemediaobject>
|
||||
</corpauthor>
|
||||
<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</bookinfo>
|
||||
<xi:include href="concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="cloud-infrastructure-concepts.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="installation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="ui.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="provisioning-steps.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="hypervisor-installation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="choosing-a-deployment-architecture.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="Revision_History_Install_Guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</book>
|
||||
55
docs/en-US/Revision_History_Install_Guide.xml
Normal file
55
docs/en-US/Revision_History_Install_Guide.xml
Normal file
@ -0,0 +1,55 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<appendix id="appe-cloudstack-Revision_History">
|
||||
<title>Revision History</title>
|
||||
<simpara>
|
||||
<revhistory>
|
||||
<revision>
|
||||
<revnumber>1-0</revnumber>
|
||||
<date>October 5 2012</date>
|
||||
<author>
|
||||
<firstname>Jessica</firstname>
|
||||
<surname>Tomechak</surname>
|
||||
<email/>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Radhika</firstname>
|
||||
<surname>PC</surname>
|
||||
<email/>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Wido</firstname>
|
||||
<surname>den Hollander</surname>
|
||||
<email/>
|
||||
</author>
|
||||
<revdescription>
|
||||
<simplelist>
|
||||
<member>Initial publication</member>
|
||||
</simplelist>
|
||||
</revdescription>
|
||||
</revision>
|
||||
</revhistory>
|
||||
</simpara>
|
||||
</appendix>
|
||||
@ -22,8 +22,17 @@
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<<<<<<< HEAD
|
||||
<chapter id="accounts">
|
||||
<title>Accounts</title>
|
||||
<xi:include href="accounts-users-domains.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="LDAPserver-for-user-authentication.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</chapter>
|
||||
=======
|
||||
<section id="accounts">
|
||||
<title>Accounts</title>
|
||||
<xi:include href="accounts-users-domains.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="LDAPserver-for-user-authentication.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
|
||||
</section>
|
||||
>>>>>>> master
|
||||
|
||||
73
docs/en-US/acquire-new-ip-for-vpc.xml
Normal file
73
docs/en-US/acquire-new-ip-for-vpc.xml
Normal file
@ -0,0 +1,73 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="acquire-new-ip-for-vpc">
|
||||
<title>Acquiring a New IP Address for a VPC</title>
|
||||
<para>When you acquire an IP address, all IP addresses are allocated to VPC, not to the guest
|
||||
networks within the VPC. The IPs are associated to the guest network only when the first
|
||||
port-forwarding, load balancing, or Static NAT rule is created for the IP or the network. IP
|
||||
can't be associated to more than one network at a time.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPCs that you have created for the account is listed in the page.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC to which you want to deploy the VMs.</para>
|
||||
<para>The VPC page is displayed where all the tiers you created are listed in a
|
||||
diagram.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Settings icon.</para>
|
||||
<para>The following options are displayed.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>IP Addresses</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Gateways</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Site-to-Site VPN</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Network ACLs</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select IP Addresses.</para>
|
||||
<para>The IP Addresses page is displayed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Acquire New IP, and click Yes in the confirmation dialog.</para>
|
||||
<para>You are prompted for confirmation because, typically, IP addresses are a limited
|
||||
resource. Within a few moments, the new IP address should appear with the state Allocated.
|
||||
You can now use the IP address in port forwarding, load balancing, and static NAT
|
||||
rules.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -22,26 +19,47 @@
|
||||
under the License.
|
||||
-->
|
||||
<section id="add-additional-guest-network">
|
||||
<title>Adding an Additional Guest Network</title>
|
||||
<orderedlist>
|
||||
<listitem><para>Log in to the &PRODUCT; UI as an administrator or end user. </para></listitem>
|
||||
<listitem><para>In the left navigation, choose Network.</para></listitem>
|
||||
<listitem><para>Click Add guest network. Provide the following information: </para>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Name</emphasis>: The name of the network. This will be user-visible. </para></listitem>
|
||||
<listitem><para><emphasis role="bold">Display Text</emphasis>: The description of the network. This will be
|
||||
user-visible.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Zone</emphasis>. The name of the zone this network applies to. Each zone is a broadcast domain, and therefore each zone has a different
|
||||
IP range for the guest network. The administrator must configure the IP
|
||||
range for each zone.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Network offering</emphasis>: If the administrator has configured
|
||||
multiple network offerings, select the one you want to use for this
|
||||
network.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Guest Gateway</emphasis>: The gateway that the guests should use.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Guest Netmask</emphasis>: The netmask in use on the subnet the guests will
|
||||
use.</para></listitem>
|
||||
</itemizedlist></listitem>
|
||||
<listitem><para>Click Create.</para></listitem>
|
||||
</orderedlist>
|
||||
|
||||
</section>
|
||||
<title>Adding an Additional Guest Network</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add guest network. Provide the following information: </para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: The name of the network. This will be
|
||||
user-visible. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Display Text</emphasis>: The description of the network. This
|
||||
will be user-visible.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Zone</emphasis>. The name of the zone this network applies to.
|
||||
Each zone is a broadcast domain, and therefore each zone has a different IP range for
|
||||
the guest network. The administrator must configure the IP range for each zone.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Network offering</emphasis>: If the administrator has
|
||||
configured multiple network offerings, select the one you want to use for this
|
||||
network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Guest Gateway</emphasis>: The gateway that the guests should
|
||||
use.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Guest Netmask</emphasis>: The netmask in use on the subnet the
|
||||
guests will use.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Create.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
53
docs/en-US/add-clusters-kvm-xenserver.xml
Normal file
53
docs/en-US/add-clusters-kvm-xenserver.xml
Normal file
@ -0,0 +1,53 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-clusters-kvm-xenserver">
|
||||
<title>Add Cluster: KVM or XenServer</title>
|
||||
<para>These steps assume you have already installed the hypervisor on the hosts and logged in to
|
||||
the &PRODUCT; UI.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Infrastructure. In Zones, click View More, then click the
|
||||
zone in which you want to add the cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Compute tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Clusters node of the diagram, click View All.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add Cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose the hypervisor type for this cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose the pod in which you want to create the cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Enter a name for the cluster. This can be text of your choosing and is not used by
|
||||
&PRODUCT;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click OK.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
43
docs/en-US/add-clusters-ovm.xml
Normal file
43
docs/en-US/add-clusters-ovm.xml
Normal file
@ -0,0 +1,43 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<section id="add-clusters-ovm">
|
||||
<title>Add Cluster: OVM</title>
|
||||
<para>To add a Cluster of hosts that run Oracle VM (OVM):</para>
|
||||
<orderedlist>
|
||||
<listitem><para>Add a companion non-OVM cluster to the Pod. This cluster provides an environment where the CloudPlatform System VMs can run. You should have already installed a non-OVM hypervisor on at least one Host to prepare for this step. Depending on which hypervisor you used:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>For VMWare, follow the steps in Add Cluster: vSphere. When finished, return here and continue with the next step.</para></listitem>
|
||||
<listitem><para>For KVM or XenServer, follow the steps in <xref linkend="add-clusters-kvm-xenserver"/>. When finished, return here and continue with the next step</para></listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem><para>In the left navigation, choose Infrastructure. In Zones, click View More, then click the zone in which you want to add the cluster.</para></listitem>
|
||||
<listitem><para>Click the Compute tab. In the Pods node, click View All. Select the same pod you used in step 1.</para></listitem>
|
||||
<listitem><para>Click View Clusters, then click Add Cluster.</para>
|
||||
<para>The Add Cluster dialog is displayed.</para></listitem>
|
||||
<listitem><para>In Hypervisor, choose OVM.</para></listitem>
|
||||
<listitem><para>In Cluster, enter a name for the cluster.</para></listitem>
|
||||
<listitem><para>Click Add.</para></listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
121
docs/en-US/add-clusters-vsphere.xml
Normal file
121
docs/en-US/add-clusters-vsphere.xml
Normal file
@ -0,0 +1,121 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-clusters-vsphere">
|
||||
<title>Add Cluster: vSphere</title>
|
||||
<para>Host management for vSphere is done through a combination of vCenter and the &PRODUCT; admin
|
||||
UI. &PRODUCT; requires that all hosts be in a &PRODUCT; cluster, but the cluster may consist of
|
||||
a single host. As an administrator you must decide if you would like to use clusters of one host
|
||||
or of multiple hosts. Clusters of multiple hosts allow for features like live migration.
|
||||
Clusters also require shared storage such as NFS or iSCSI.</para>
|
||||
<para>For vSphere servers, we recommend creating the cluster of hosts in vCenter and then adding
|
||||
the entire cluster to &PRODUCT;. Follow these requirements:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Do not put more than 8 hosts in a vSphere cluster</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure the hypervisor hosts do not have any VMs already running before you add them
|
||||
to &PRODUCT;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>To add a vSphere cluster to &PRODUCT;:</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Create the cluster of hosts in vCenter. Follow the vCenter instructions to do this. You
|
||||
will create a cluster that looks something like this in vCenter.</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/vsphere-client.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>vsphereclient.png: vSphere client</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Log in to the UI.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Infrastructure. In Zones, click View More, then click the
|
||||
zone in which you want to add the cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Compute tab, and click View All on Pods. Choose the pod to which you want to
|
||||
add the cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click View Clusters.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add Cluster.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In Hypervisor, choose VMware.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Provide the following information in the dialog. The fields below make reference to
|
||||
values from vCenter.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Cluster Name. Enter the name of the cluster you created in vCenter. For example,
|
||||
"cloud.cluster.2.2.1"</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vCenter Host. Enter the hostname or IP address of the vCenter server. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vCenter Username. Enter the username that &PRODUCT; should use to connect to
|
||||
vCenter. This user must have all administrative privileges.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vCenter Password. Enter the password for the user named above</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>vCenter Datacenter. Enter the vCenter datacenter that the cluster is in. For
|
||||
example, "cloud.dc.VM".</para>
|
||||
<para>If you have enabled Nexus dvSwitch in the environment, the following parameters for
|
||||
dvSwitch configuration are displayed:</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Nexus dvSwitch IP Address: The IP address of the Nexus VSM appliance.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Nexus dvSwitch Username: The username required to access the Nexus VSM
|
||||
applicance.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Nexus dvSwitch Password: The password associated with the username specified
|
||||
above.</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/add-cluster.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>addcluster.png: add cluster</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
<para>There might be a slight delay while the cluster is provisioned. It will
|
||||
automatically display in the UI</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
104
docs/en-US/add-gateway-vpc.xml
Normal file
104
docs/en-US/add-gateway-vpc.xml
Normal file
@ -0,0 +1,104 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-gateway-vpc">
|
||||
<title>Adding a Private Gateway to a VPC</title>
|
||||
<para>A private gateway can be added by the root admin only. The VPC private network has 1:1
|
||||
relationship with the NIC of the physical network. No gateways with duplicated VLAN and IP are
|
||||
allowed in the same data center.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPCs that you have created for the account is listed in the page.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC to which you want to configure load balancing
|
||||
rules.</para>
|
||||
<para>The VPC page is displayed where all the tiers you created are listed in a
|
||||
diagram.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Settings icon.</para>
|
||||
<para>The following options are displayed.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>IP Addresses</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Private Gateways</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Site-to-Site VPN</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Network ACLs</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select Private Gateways.</para>
|
||||
<para>The Gateways page is displayed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add new gateway:</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/add-new-gateway-vpc.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>add-new-gateway-vpc.png: adding a private gateway for the VPC.</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Specify the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Physical Network</emphasis>: The physical network you have
|
||||
created in the zone.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">IP Address</emphasis>: The IP address associated with the VPC
|
||||
gateway.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Gateway</emphasis>: The gateway through which the traffic is
|
||||
routed to and from the VPC.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Netmask</emphasis>: The netmask associated with the VPC
|
||||
gateway.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">VLAN</emphasis>: The VLAN associated with the VPC
|
||||
gateway.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The new gateway appears in the list. You can repeat these steps to add more gateway for
|
||||
this VPC.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
@ -3,17 +3,14 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
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
|
||||
@ -21,72 +18,114 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<section id="add-ingress-egress-rules">
|
||||
<title>Adding Ingress and Egress Rules to a Security Group</title>
|
||||
<orderedlist>
|
||||
<listitem><para>Log in to the &PRODUCT; UI as an administrator or end user. </para></listitem>
|
||||
<listitem><para>In the left navigation, choose Network</para></listitem>
|
||||
<listitem><para>In Select view, choose Security Groups, then click the security group you want .</para></listitem>
|
||||
<listitem><para>To add an ingress rule, click the Ingress Rules tab and fill out the following fields to specify what network traffic is allowed into VM instances in this security group. If no ingress rules are specified, then no traffic will be allowed in, except for responses to any traffic that has been allowed out through an egress rule.</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Add by CIDR/Account</emphasis>. Indicate whether the source of the
|
||||
traffic will be defined by IP address (CIDR) or an existing security group
|
||||
in a &PRODUCT; account (Account). Choose Account if you want to allow
|
||||
incoming traffic from all VMs in another security group</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Protocol</emphasis>. The networking protocol that sources will use to
|
||||
send traffic to the security group. TCP and UDP are typically used for data
|
||||
exchange and end-user communications. ICMP is typically used to send error
|
||||
messages or network monitoring data.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Start Port, End Port</emphasis>. (TCP, UDP only) A range of listening
|
||||
ports that are the destination for the incoming traffic. If you are opening
|
||||
a single port, use the same number in both fields.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">ICMP Type, ICMP Code</emphasis>. (ICMP only) The type of message and
|
||||
error code that will be accepted.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">CIDR</emphasis>. (Add by CIDR only) To accept only traffic from IP
|
||||
addresses within a particular address block, enter a CIDR or a
|
||||
comma-separated list of CIDRs. The CIDR is the base IP address of the
|
||||
incoming traffic. For example, 192.168.0.0/22. To allow all CIDRs, set to
|
||||
0.0.0.0/0.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Account, Security Group</emphasis>. (Add by Account only) To accept only
|
||||
traffic from another security group, enter the &PRODUCT; account and
|
||||
name of a security group that has already been defined in that account. To
|
||||
allow traffic between VMs within the security group you are editing now,
|
||||
enter the same name you used in step 7.</para></listitem>
|
||||
</itemizedlist>
|
||||
<para>The following example allows inbound HTTP access from anywhere:</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/http-access.png" />
|
||||
</imageobject>
|
||||
<textobject><phrase>httpaccess.png: allows inbound HTTP access from anywhere</phrase></textobject>
|
||||
</mediaobject>
|
||||
</listitem>
|
||||
<listitem><para>To add an egress rule, click the Egress Rules tab and fill out the following fields to specify what type of traffic is allowed to be sent out of VM instances in this security group. If no egress rules are specified, then all traffic will be allowed out. Once egress rules are specified, the following types of traffic are allowed out: traffic specified in egress rules; queries to DNS and DHCP servers; and responses to any traffic that has been allowed in through an ingress rule</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Add by CIDR/Account</emphasis>. Indicate whether the destination of the
|
||||
traffic will be defined by IP address (CIDR) or an existing security group
|
||||
in a &PRODUCT; account (Account). Choose Account if you want to allow
|
||||
outgoing traffic to all VMs in another security group.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Protocol</emphasis>. The networking protocol that VMs will use to send
|
||||
outgoing traffic. TCP and UDP are typically used for data exchange and
|
||||
end-user communications. ICMP is typically used to send error messages or
|
||||
network monitoring data.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Start Port, End Port</emphasis>. (TCP, UDP only) A range of listening
|
||||
ports that are the destination for the outgoing traffic. If you are opening
|
||||
a single port, use the same number in both fields.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">ICMP Type, ICMP Code</emphasis>. (ICMP only) The type of message and
|
||||
error code that will be sent</para></listitem>
|
||||
<listitem><para><emphasis role="bold">CIDR</emphasis>. (Add by CIDR only) To send traffic only to IP addresses
|
||||
within a particular address block, enter a CIDR or a comma-separated list of
|
||||
CIDRs. The CIDR is the base IP address of the destination. For example,
|
||||
192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Account, Security Group</emphasis>. (Add by Account only) To allow
|
||||
traffic to be sent to another security group, enter the &PRODUCT;
|
||||
account and name of a security group that has already been defined in that
|
||||
account. To allow traffic between VMs within the security group you are
|
||||
editing now, enter its name.</para></listitem>
|
||||
</itemizedlist></listitem>
|
||||
<listitem><para>Click Add.</para></listitem>
|
||||
</orderedlist>
|
||||
<title>Adding Ingress and Egress Rules to a Security Group</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In Select view, choose Security Groups, then click the security group you want .</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>To add an ingress rule, click the Ingress Rules tab and fill out the following fields to
|
||||
specify what network traffic is allowed into VM instances in this security group. If no
|
||||
ingress rules are specified, then no traffic will be allowed in, except for responses to any
|
||||
traffic that has been allowed out through an egress rule.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Add by CIDR/Account</emphasis>. Indicate whether the source of
|
||||
the traffic will be defined by IP address (CIDR) or an existing security group in a
|
||||
&PRODUCT; account (Account). Choose Account if you want to allow incoming traffic from
|
||||
all VMs in another security group</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Protocol</emphasis>. The networking protocol that sources will
|
||||
use to send traffic to the security group. TCP and UDP are typically used for data
|
||||
exchange and end-user communications. ICMP is typically used to send error messages or
|
||||
network monitoring data.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Start Port, End Port</emphasis>. (TCP, UDP only) A range of
|
||||
listening ports that are the destination for the incoming traffic. If you are opening a
|
||||
single port, use the same number in both fields.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">ICMP Type, ICMP Code</emphasis>. (ICMP only) The type of
|
||||
message and error code that will be accepted.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">CIDR</emphasis>. (Add by CIDR only) To accept only traffic
|
||||
from IP addresses within a particular address block, enter a CIDR or a comma-separated
|
||||
list of CIDRs. The CIDR is the base IP address of the incoming traffic. For example,
|
||||
192.168.0.0/22. To allow all CIDRs, set to 0.0.0.0/0.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Account, Security Group</emphasis>. (Add by Account only) To
|
||||
accept only traffic from another security group, enter the &PRODUCT; account and name of
|
||||
a security group that has already been defined in that account. To allow traffic between
|
||||
VMs within the security group you are editing now, enter the same name you used in step
|
||||
7.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The following example allows inbound HTTP access from anywhere:</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/http-access.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>httpaccess.png: allows inbound HTTP access from anywhere</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>To add an egress rule, click the Egress Rules tab and fill out the following fields to
|
||||
specify what type of traffic is allowed to be sent out of VM instances in this security
|
||||
group. If no egress rules are specified, then all traffic will be allowed out. Once egress
|
||||
rules are specified, the following types of traffic are allowed out: traffic specified in
|
||||
egress rules; queries to DNS and DHCP servers; and responses to any traffic that has been
|
||||
allowed in through an ingress rule</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Add by CIDR/Account</emphasis>. Indicate whether the
|
||||
destination of the traffic will be defined by IP address (CIDR) or an existing security
|
||||
group in a &PRODUCT; account (Account). Choose Account if you want to allow outgoing
|
||||
traffic to all VMs in another security group.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Protocol</emphasis>. The networking protocol that VMs will use
|
||||
to send outgoing traffic. TCP and UDP are typically used for data exchange and end-user
|
||||
communications. ICMP is typically used to send error messages or network monitoring
|
||||
data.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Start Port, End Port</emphasis>. (TCP, UDP only) A range of
|
||||
listening ports that are the destination for the outgoing traffic. If you are opening a
|
||||
single port, use the same number in both fields.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">ICMP Type, ICMP Code</emphasis>. (ICMP only) The type of
|
||||
message and error code that will be sent</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">CIDR</emphasis>. (Add by CIDR only) To send traffic only to IP
|
||||
addresses within a particular address block, enter a CIDR or a comma-separated list of
|
||||
CIDRs. The CIDR is the base IP address of the destination. For example, 192.168.0.0/22.
|
||||
To allow all CIDRs, set to 0.0.0.0/0.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Account, Security Group</emphasis>. (Add by Account only) To
|
||||
allow traffic to be sent to another security group, enter the &PRODUCT; account and name
|
||||
of a security group that has already been defined in that account. To allow traffic
|
||||
between VMs within the security group you are editing now, enter its name.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -22,86 +19,133 @@
|
||||
under the License.
|
||||
-->
|
||||
<section id="add-iso">
|
||||
<title>Adding an ISO</title>
|
||||
<para>To make additional operating system or other software available for use with guest VMs, you can add an ISO. The ISO is typically thought of as an operating system image, but you can also add ISOs for other types of software, such as desktop applications that you want to be installed as part of a template.</para>
|
||||
<orderedlist>
|
||||
<listitem><para>Log in to the &PRODUCT; UI as an administrator or end user.</para></listitem>
|
||||
<listitem><para>In the left navigation bar, click Templates.</para></listitem>
|
||||
<listitem><para>In Select View, choose ISOs.</para></listitem>
|
||||
<listitem><para>Click Add ISO.</para></listitem>
|
||||
<listitem><para>In the Add ISO screen, provide the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Name</emphasis>: Short name for the ISO image. For example, CentOS 6.2
|
||||
64-bit.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Description</emphasis>: Display test for the ISO image. For example,
|
||||
CentOS 6.2 64-bit.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">URL</emphasis>: The URL that hosts the ISO image. The Management Server
|
||||
must be able to access this location via HTTP. If needed you can place the
|
||||
ISO image directly on the Management Server</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Zone</emphasis>: Choose the zone where you want the ISO to be available,
|
||||
or All Zones to make it available throughout &PRODUCT;.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Bootable</emphasis>: Whether or not a guest could boot off this ISO
|
||||
image. For example, a CentOS ISO is bootable, a Microsoft Office ISO is not
|
||||
bootable.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">OS Type</emphasis>: This helps &PRODUCT; and the hypervisor perform
|
||||
certain operations and make assumptions that improve the performance of the
|
||||
guest. Select one of the following.</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>If the operating system of your desired ISO image is listed, choose it.</para></listitem>
|
||||
<listitem><para>If the OS Type of the ISO is not listed or if the ISO is not bootable, choose Other.</para></listitem>
|
||||
<listitem><para>(XenServer only) If you want to boot from this ISO in PV mode, choose Other PV (32-bit) or Other PV (64-bit)</para></listitem>
|
||||
<listitem><para>(KVM only) If you choose an OS that is PV-enabled, the VMs created from this ISO will have a SCSI (virtio) root disk. If the OS is not PV-enabled, the VMs will have an IDE root disk. The PV-enabled types are:</para>
|
||||
<informaltable>
|
||||
<tgroup cols="3" align="left" colsep="1" rowsep="1">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><para>Fedora 13</para></entry>
|
||||
<entry><para>Fedora 12</para></entry>
|
||||
<entry><para>Fedora 11</para></entry>
|
||||
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Fedora 10</para></entry>
|
||||
<entry><para>Fedora 9</para></entry>
|
||||
<entry><para>Other PV</para></entry>
|
||||
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Debian GNU/Linux</para></entry>
|
||||
<entry><para>CentOS 5.3</para></entry>
|
||||
<entry><para>CentOS 5.4</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>CentOS 5.5</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 5.3</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 5.4</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Red Hat Enterprise Linux 5.5</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 6</para></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable></listitem>
|
||||
</itemizedlist>
|
||||
<note><para>It is not recommended to choose an older version of the OS than the version in the image. For
|
||||
example, choosing CentOS 5.4 to support a CentOS 6.2 image will usually
|
||||
not work. In these cases, choose Other.</para></note>
|
||||
</listitem>
|
||||
<listitem><para><emphasis role="bold">Extractable</emphasis>: Choose Yes if the ISO should be available for
|
||||
extraction.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Public</emphasis>: Choose Yes if this ISO should be available to other
|
||||
users.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Featured</emphasis>: Choose Yes if you would like this ISO to be more
|
||||
prominent for users to select. The ISO will appear in the Featured ISOs
|
||||
list. Only an administrator can make an ISO Featured.</para></listitem>
|
||||
</itemizedlist></listitem>
|
||||
<listitem><para>Click OK.</para>
|
||||
<para>The Management Server will download the ISO. Depending on the size of the ISO, this may take a long time. The ISO status column will display Ready once it has been successfully downloaded into secondary storage. Clicking Refresh updates the download percentage.</para>
|
||||
</listitem>
|
||||
<listitem><para><emphasis role="bold">Important</emphasis>: Wait for the ISO to finish downloading. If you
|
||||
move on to the next task and try to use the ISO right away, it will appear to fail.
|
||||
The entire ISO must be available before &PRODUCT; can work with it.</para></listitem>
|
||||
</orderedlist>
|
||||
<title>Adding an ISO</title>
|
||||
<para>To make additional operating system or other software available for use with guest VMs, you
|
||||
can add an ISO. The ISO is typically thought of as an operating system image, but you can also
|
||||
add ISOs for other types of software, such as desktop applications that you want to be installed
|
||||
as part of a template.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation bar, click Templates.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In Select View, choose ISOs.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add ISO.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Add ISO screen, provide the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: Short name for the ISO image. For example,
|
||||
CentOS 6.2 64-bit.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Description</emphasis>: Display test for the ISO image. For
|
||||
example, CentOS 6.2 64-bit.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">URL</emphasis>: The URL that hosts the ISO image. The
|
||||
Management Server must be able to access this location via HTTP. If needed you can place
|
||||
the ISO image directly on the Management Server</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Zone</emphasis>: Choose the zone where you want the ISO to be
|
||||
available, or All Zones to make it available throughout &PRODUCT;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Bootable</emphasis>: Whether or not a guest could boot off
|
||||
this ISO image. For example, a CentOS ISO is bootable, a Microsoft Office ISO is not
|
||||
bootable.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">OS Type</emphasis>: This helps &PRODUCT; and the hypervisor
|
||||
perform certain operations and make assumptions that improve the performance of the
|
||||
guest. Select one of the following.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>If the operating system of your desired ISO image is listed, choose it.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>If the OS Type of the ISO is not listed or if the ISO is not bootable, choose
|
||||
Other.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>(XenServer only) If you want to boot from this ISO in PV mode, choose Other PV
|
||||
(32-bit) or Other PV (64-bit)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>(KVM only) If you choose an OS that is PV-enabled, the VMs created from this ISO
|
||||
will have a SCSI (virtio) root disk. If the OS is not PV-enabled, the VMs will have
|
||||
an IDE root disk. The PV-enabled types are:</para>
|
||||
<informaltable>
|
||||
<tgroup cols="3" align="left" colsep="1" rowsep="1">
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><para>Fedora 13</para></entry>
|
||||
<entry><para>Fedora 12</para></entry>
|
||||
<entry><para>Fedora 11</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Fedora 10</para></entry>
|
||||
<entry><para>Fedora 9</para></entry>
|
||||
<entry><para>Other PV</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Debian GNU/Linux</para></entry>
|
||||
<entry><para>CentOS 5.3</para></entry>
|
||||
<entry><para>CentOS 5.4</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>CentOS 5.5</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 5.3</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 5.4</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>Red Hat Enterprise Linux 5.5</para></entry>
|
||||
<entry><para>Red Hat Enterprise Linux 6</para></entry>
|
||||
<entry/>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<note>
|
||||
<para>It is not recommended to choose an older version of the OS than the version in the
|
||||
image. For example, choosing CentOS 5.4 to support a CentOS 6.2 image will usually not
|
||||
work. In these cases, choose Other.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Extractable</emphasis>: Choose Yes if the ISO should be
|
||||
available for extraction.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Public</emphasis>: Choose Yes if this ISO should be available
|
||||
to other users.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Featured</emphasis>: Choose Yes if you would like this ISO to
|
||||
be more prominent for users to select. The ISO will appear in the Featured ISOs list.
|
||||
Only an administrator can make an ISO Featured.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click OK.</para>
|
||||
<para>The Management Server will download the ISO. Depending on the size of the ISO, this may
|
||||
take a long time. The ISO status column will display Ready once it has been successfully
|
||||
downloaded into secondary storage. Clicking Refresh updates the download percentage.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Important</emphasis>: Wait for the ISO to finish downloading. If
|
||||
you move on to the next task and try to use the ISO right away, it will appear to fail. The
|
||||
entire ISO must be available before &PRODUCT; can work with it.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -21,40 +18,65 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<section id="add-load-balancer-rule">
|
||||
<title>Adding a Load Balancer Rule</title>
|
||||
<orderedlist>
|
||||
<listitem><para>Log in to the &PRODUCT; UI as an administrator or end user. </para></listitem>
|
||||
<listitem><para>In the left navigation, choose Network.</para></listitem>
|
||||
<listitem><para>Click the name of the network where you want to load balance the traffic.</para></listitem>
|
||||
<listitem><para>Click View IP Addresses.</para></listitem>
|
||||
<listitem><para>Click the IP address for which you want to create the rule, then click the Configuration tab.</para></listitem>
|
||||
<listitem><para>In the Load Balancing node of the diagram, click View All.</para>
|
||||
<para>In a Basic zone, you can also create a load balancing rule without acquiring or selecting an
|
||||
IP address. &PRODUCT; internally assign an IP when you create the load balancing
|
||||
rule, which is listed in the IP Addresses page when the rule is created. </para>
|
||||
<para>To do that, select the name of the network, then click Add Load Balancer tab. Continue with
|
||||
<xref linkend="config-lb"/>.</para></listitem>
|
||||
<listitem id="config-lb"><para>Fill in the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Name</emphasis>: A name for the load balancer rule.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Public Port</emphasis>: The port receiving incoming traffic to be
|
||||
balanced.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Private Port</emphasis>: The port that the VMs will use to receive the
|
||||
traffic.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Algorithm</emphasis>: Choose the load balancing algorithm you want
|
||||
&PRODUCT; to use. &PRODUCT; supports a variety of well-known
|
||||
algorithms. If you are not familiar with these choices, you will find plenty
|
||||
of information about them on the Internet.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Stickiness</emphasis>: (Optional) Click Configure and choose the
|
||||
algorithm for the stickiness policy. See Sticky Session Policies for Load
|
||||
Balancer Rules.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">AutoScale</emphasis>: Click Configure and complete the AutoScale
|
||||
configuration as explained in <xref linkend="autoscale"/>.</para></listitem>
|
||||
</itemizedlist></listitem>
|
||||
<listitem><para>Click Add VMs, then select two or more VMs that will divide the load of incoming traffic, and click Apply.</para>
|
||||
<para>The new load balancer rule appears in the list. You can repeat these steps to add more load balancer rules for this IP address.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<title>Adding a Load Balancer Rule</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the name of the network where you want to load balance the traffic.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click View IP Addresses.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the IP address for which you want to create the rule, then click the Configuration
|
||||
tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Load Balancing node of the diagram, click View All.</para>
|
||||
<para>In a Basic zone, you can also create a load balancing rule without acquiring or
|
||||
selecting an IP address. &PRODUCT; internally assign an IP when you create the load
|
||||
balancing rule, which is listed in the IP Addresses page when the rule is created. </para>
|
||||
<para>To do that, select the name of the network, then click Add Load Balancer tab. Continue
|
||||
with <xref linkend="config-lb"/>.</para>
|
||||
</listitem>
|
||||
<listitem id="config-lb">
|
||||
<para>Fill in the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: A name for the load balancer rule.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Public Port</emphasis>: The port receiving incoming traffic to
|
||||
be balanced.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Private Port</emphasis>: The port that the VMs will use to
|
||||
receive the traffic.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Algorithm</emphasis>: Choose the load balancing algorithm you
|
||||
want &PRODUCT; to use. &PRODUCT; supports a variety of well-known algorithms. If you are
|
||||
not familiar with these choices, you will find plenty of information about them on the
|
||||
Internet.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Stickiness</emphasis>: (Optional) Click Configure and choose
|
||||
the algorithm for the stickiness policy. See Sticky Session Policies for Load Balancer
|
||||
Rules.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add VMs, then select two or more VMs that will divide the load of incoming
|
||||
traffic, and click Apply.</para>
|
||||
<para>The new load balancer rule appears in the list. You can repeat these steps to add more
|
||||
load balancer rules for this IP address.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
123
docs/en-US/add-loadbalancer-rule-vpc.xml
Normal file
123
docs/en-US/add-loadbalancer-rule-vpc.xml
Normal file
@ -0,0 +1,123 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-loadbalancer-rule-vpc">
|
||||
<title>Adding Load Balancing Rules on a VPC</title>
|
||||
<para>A &PRODUCT; user or administrator may create load balancing rules that balance traffic
|
||||
received at a public IP to one or more VMs that belong to a network tier that provides load
|
||||
balancing service in a VPC. A user creates a rule, specifies an algorithm, and assigns the rule
|
||||
to a set of VMs within a VPC.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPCs that you have created for the account is listed in the page.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC to which you want to configure load balancing
|
||||
rules.</para>
|
||||
<para>The VPC page is displayed where all the tiers you created are listed in a
|
||||
diagram.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Settings icon.</para>
|
||||
<para>The following options are displayed.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>IP Addresses</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Gateways</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Site-to-Site VPN</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Network ACLs</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select IP Addresses.</para>
|
||||
<para>The IP Addresses page is displayed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the IP address for which you want to create the rule, then click the Configuration
|
||||
tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Load Balancing node of the diagram, click View All.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select the tier to which you want to apply the rule.</para>
|
||||
<note>
|
||||
<para>In a VPC, the load balancing service is supported only on a single tier.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Specify the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: A name for the load balancer rule.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Public Port</emphasis>: The port that receives the incoming
|
||||
traffic to be balanced.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Private Port</emphasis>: The port that the VMs will use to
|
||||
receive the traffic.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Algorithm</emphasis>. Choose the load balancing algorithm you
|
||||
want &PRODUCT; to use. &PRODUCT; supports the following well-known algorithms:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Round-robin</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Least connections</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Source</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Stickiness</emphasis>. (Optional) Click Configure and choose
|
||||
the algorithm for the stickiness policy. See Sticky Session Policies for Load Balancer
|
||||
Rules.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Add VMs</emphasis>: Click Add VMs, then select two or more VMs
|
||||
that will divide the load of incoming traffic, and click Apply.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
<para>The new load balancing rule appears in the list. You can repeat these steps to add more load
|
||||
balancing rules for this IP address.</para>
|
||||
</section>
|
||||
@ -29,5 +29,7 @@
|
||||
<listitem><para>If invitations have been enabled, you can send invitations to new members.</para></listitem>
|
||||
<listitem><para>If invitations are not enabled, you can add members directly through the UI.</para></listitem>
|
||||
</itemizedlist>
|
||||
<xi:include href="send-projects-membership-invitation.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="add-projects-members-from-ui.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</section>
|
||||
|
||||
|
||||
29
docs/en-US/add-more-clusters.xml
Normal file
29
docs/en-US/add-more-clusters.xml
Normal file
@ -0,0 +1,29 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-more-clusters">
|
||||
<title>Add More Clusters (Optional)</title>
|
||||
<para>You need to tell &PRODUCT; about the hosts that it will manage. Hosts exist inside clusters,
|
||||
so before you begin adding hosts to the cloud, you must add at least one cluster.</para>
|
||||
<xi:include href="about-clusters.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="add-clusters-kvm-xenserver.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="add-clusters-ovm.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="add-clusters-vsphere.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
</section>
|
||||
103
docs/en-US/add-portforward-rule-vpc.xml
Normal file
103
docs/en-US/add-portforward-rule-vpc.xml
Normal file
@ -0,0 +1,103 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-portforward-vpc">
|
||||
<title>Adding a Port Forwarding Rule on a VPC</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPCs that you have created for the account is listed in the page.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC to which you want to deploy the VMs.</para>
|
||||
<para>The VPC page is displayed where all the tiers you created are listed in a
|
||||
diagram.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Settings icon.</para>
|
||||
<para>The following options are displayed.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>IP Addresses</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Gateways</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Site-to-Site VPN</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Network ACLs</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose an existing IP address or acquire a new IP address. Click the name of the IP
|
||||
address in the list.</para>
|
||||
<para>The IP Addresses page is displayed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the IP address for which you want to create the rule, then click the Configuration
|
||||
tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Port Forwarding node of the diagram, click View All.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Select the tier to which you want to apply the rule.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Specify the following:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Public Port</emphasis>: The port to which public traffic will
|
||||
be addressed on the IP address you acquired in the previous step.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Private Port</emphasis>: The port on which the instance is
|
||||
listening for forwarded public traffic.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Protocol</emphasis>: The communication protocol in use between
|
||||
the two ports.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>TCP</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>UDP</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Add VM</emphasis>: Click Add VM. Select the name of the
|
||||
instance to which this rule applies, and click Apply.</para>
|
||||
<para>You can test the rule by opening an ssh session to the instance.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
108
docs/en-US/add-primary-storage.xml
Normal file
108
docs/en-US/add-primary-storage.xml
Normal file
@ -0,0 +1,108 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-primary-storage">
|
||||
<title>Adding Primary Storage</title>
|
||||
<note>
|
||||
<para>Ensure that nothing stored on the server. Adding the server to CloudStack will destroy any
|
||||
existing data.</para>
|
||||
</note>
|
||||
<para>When you create a new zone, the first primary storage is added as part of that procedure.
|
||||
You can add primary storage servers at any time, such as when adding a new cluster or adding
|
||||
more servers to an existing cluster.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Infrastructure. In Zones, click View More, then click the
|
||||
zone in which you want to add the primary storage.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Compute tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Primary Storage node of the diagram, click View All.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add Primary Storage.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Provide the following information in the dialog. The information required varies
|
||||
depending on your choice in Protocol.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Pod. The pod for the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Cluster. The cluster for the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Name. The name of the storage device</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Protocol. For XenServer, choose either NFS, iSCSI, or PreSetup. For KVM, choose NFS
|
||||
or SharedMountPoint. For vSphere choose either VMFS (iSCSI or FiberChannel) or
|
||||
NFS</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Server (for NFS, iSCSI, or PreSetup). The IP address or DNS name of the storage
|
||||
device</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Server (for VMFS). The IP address or DNS name of the vCenter server.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Path (for NFS). In NFS this is the exported path from the server.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Path (for VMFS). In vSphere this is a combination of the datacenter name and the
|
||||
datastore name. The format is "/" datacenter name "/" datastore name. For example,
|
||||
"/cloud.dc.VM/cluster1datastore".</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Path (for SharedMountPoint). With KVM this is the path on each host that is where
|
||||
this primary storage is mounted. For example, "/mnt/primary".</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>SR Name-Label (for PreSetup). Enter the name-label of the SR that has been set up
|
||||
outside &PRODUCT;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Target IQN (for iSCSI). In iSCSI this is the IQN of the target. For example,
|
||||
iqn.1986-03.com.sun:02:01ec9bb549-1271378984</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Lun # (for iSCSI). In iSCSI this is the LUN number. For example, 3.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Tags (optional). The comma-separated list of tags for this storage device. It should
|
||||
be an equivalent set or superset of the tags on your disk offerings</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For
|
||||
example, if cluster A provides primary storage that has tags T1 and T2, all other clusters
|
||||
in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click OK.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
48
docs/en-US/add-secondary-storage.xml
Normal file
48
docs/en-US/add-secondary-storage.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-secondary-storage">
|
||||
<title>Adding Secondary Storage</title>
|
||||
<note>
|
||||
<para>Be sure there is nothing stored on the server. Adding the server to CloudStack will
|
||||
destroy any existing data.</para>
|
||||
</note>
|
||||
<para>When you create a new zone, the first secondary storage is added as part of that procedure.
|
||||
You can add secondary storage servers at any time to add more servers to an existing
|
||||
zone.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>If you are going to use Swift for cloud-wide secondary storage, you must add the Swift
|
||||
storage to &PRODUCT; before you add the local zone secondary storage servers.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>To prepare for local zone secondary storage, you should have created and mounted an NFS
|
||||
share during Management Server installation.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Make sure you prepared the system VM template during Management Server
|
||||
installation.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>4. Now that the secondary storage server for per-zone storage is prepared, add it to
|
||||
&PRODUCT;. Secondary storage is added as part of the procedure for adding a new zone.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -21,19 +18,32 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<section id="add-security-group">
|
||||
<title>Adding a Security Group</title>
|
||||
<para>A user or administrator can define a new security group.</para>
|
||||
<orderedlist>
|
||||
<listitem><para>Log in to the &PRODUCT; UI as an administrator or end user. </para></listitem>
|
||||
<listitem><para>In the left navigation, choose Network</para></listitem>
|
||||
<listitem><para>In Select view, choose Security Groups.</para></listitem>
|
||||
<listitem><para>Click Add Security Group.</para></listitem>
|
||||
<listitem><para>Provide a name and description.</para></listitem>
|
||||
<listitem><para>Click OK.</para>
|
||||
<para>The new security group appears in the Security Groups Details tab.</para></listitem>
|
||||
<listitem><para>To make the security group useful, continue to Adding Ingress and Egress Rules to a Security Group.</para></listitem>
|
||||
</orderedlist>
|
||||
<title>Adding a Security Group</title>
|
||||
<para>A user or administrator can define a new security group.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In Select view, choose Security Groups.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add Security Group.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Provide a name and description.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click OK.</para>
|
||||
<para>The new security group appears in the Security Groups Details tab.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>To make the security group useful, continue to Adding Ingress and Egress Rules to a
|
||||
Security Group.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
|
||||
89
docs/en-US/add-tier.xml
Normal file
89
docs/en-US/add-tier.xml
Normal file
@ -0,0 +1,89 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-tier">
|
||||
<title>Adding Tiers</title>
|
||||
<para>Tiers are distinct locations within a VPC that act as isolated networks, which do not have
|
||||
access to other tiers by default. Tiers are set up on different VLANs that can communicate with
|
||||
each other by using a virtual router. Tiers provide inexpensive, low latency network
|
||||
connectivity to other tiers within the VPC.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPC that you have created for the account is listed in the page.</para>
|
||||
<note>
|
||||
<para>The end users can see their own VPCs, while root and domain admin can see any VPC they
|
||||
are authorized to see.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC for which you want to set up tiers.</para>
|
||||
<para>The Add new tier dialog is displayed, as follows:</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/add-tier.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>add-tier.png: adding a tier to a vpc.</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
<para>If you have already created tiers, the VPC diagram is displayed. Click Create Tier to
|
||||
add a new tier.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Specify the following:</para>
|
||||
<para>All the fields are mandatory.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: A unique name for the tier you create.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Network Offering</emphasis>: The following default network
|
||||
offerings are listed: DefaultIsolatedNetworkOfferingForVpcNetworksNoLB,
|
||||
DefaultIsolatedNetworkOfferingForVpcNetworks</para>
|
||||
<para>In a VPC, only one tier can be created by using LB-enabled network offering.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Gateway</emphasis>: The gateway for the tier you create.
|
||||
Ensure that the gateway is within the Super CIDR range that you specified while creating
|
||||
the VPC, and is not overlapped with the CIDR of any existing tier within the VPC.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Netmask</emphasis>: The netmask for the tier you create. </para>
|
||||
<para>For example, if the VPC CIDR is 10.0.0.0/16 and the network tier CIDR is
|
||||
10.0.1.0/24, the gateway of the tier is 10.0.1.1, and the netmask of the tier is
|
||||
255.255.255.0.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click OK.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Continue with configuring access control list for the tier.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
45
docs/en-US/add-vm-to-tier.xml
Normal file
45
docs/en-US/add-vm-to-tier.xml
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-vm-to-tier">
|
||||
<title>Deploying VMs to the Tier</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
<para>All the VPCs that you have created for the account is listed in the page.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Configure button of the VPC to which you want to deploy the VMs.</para>
|
||||
<para>The VPC page is displayed where all the tiers you created are listed.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click the Add VM button of the tier for which you want to add a VM.</para>
|
||||
<para>The Add Instance page is displayed.</para>
|
||||
<para>Follow the on-screen instruction to add an instance. For information on adding an
|
||||
instance, see Adding Instances section in the Installation Guide.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
75
docs/en-US/add-vpc.xml
Normal file
75
docs/en-US/add-vpc.xml
Normal file
@ -0,0 +1,75 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<section id="add-vpc">
|
||||
<title>Adding a Virtual Private Cloud</title>
|
||||
<para>When creating the VPC, you simply provide the zone and a set of IP addresses for the VPC
|
||||
network address space. You specify this set of addresses in the form of a Classless Inter-Domain
|
||||
Routing (CIDR) block.</para>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the left navigation, choose Network.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In the Select view, select VPC.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Add VPC. The Add VPC page is displayed as follows:</para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/add-vpc.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>add-vpc.png: adding a vpc.</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
<para>Provide the following information:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name</emphasis>: A short name for the VPC that you are
|
||||
creating.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Description</emphasis>: A brief description of the VPC.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Zone</emphasis>: Choose the zone where you want the VPC to be
|
||||
available.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Super CIDR for Guest Networks</emphasis>: Defines the CIDR
|
||||
range for all the tiers (guest networks) within a VPC. When you create a tier, ensure
|
||||
that its CIDR is within the Super CIDR value you enter. The CIDR must be RFC1918
|
||||
compliant.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DNS domain for Guest Networks</emphasis>: If you want to
|
||||
assign a special domain name, specify the DNS suffix. This parameter is applied to all
|
||||
the tiers within the VPC. That implies, all the tiers you create in the VPC belong to
|
||||
the same DNS domain. If the parameter is not specified, a DNS domain name is generated
|
||||
automatically. </para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
@ -3,165 +3,332 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
|
||||
<!-- 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.
|
||||
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.
|
||||
-->
|
||||
|
||||
<section id="added-API-commands">
|
||||
<title>Added API commands</title>
|
||||
<para>Added in 3.0.3:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>enableCiscoNexusVSM (Enables Nexus 1000v dvSwitch in &PRODUCT;.)</para></listitem>
|
||||
<listitem><para>disableCiscoNexusVSM (Disables Nexus 1000v dvSwitch in &PRODUCT;.)</para></listitem>
|
||||
<listitem><para>deleteCiscoNexusVSM (Deletes Nexus 1000v dvSwitch in &PRODUCT;.)</para></listitem>
|
||||
<listitem><para>listCiscoNexusVSMs (Lists the control VLAN ID, packet VLAN ID, and data VLAN ID, as well as the IP address of the Nexus 1000v dvSwitch.)</para></listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.2:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>changeServiceForSystemVm</para>
|
||||
<para>Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.1:</para>
|
||||
<itemizedlist>
|
||||
<listitem><para>changeServiceForSystemVm</para>
|
||||
<para>Changes the service offering for a system VM (console proxy or secondary storage). The system VM must be in a "Stopped" state for this command to take effect.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.0:</para>
|
||||
<informaltable frame="all">
|
||||
<tgroup cols="3" align="left" colsep="1" rowsep="1">
|
||||
<colspec colname="c1" />
|
||||
<colspec colname="c2" />
|
||||
<colspec colname="c3" />
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><para>assignVirtualMachine (Move a user VM to another user under same domain.)</para></entry>
|
||||
<entry><para>restoreVirtualMachine (Restore a VM to original template or specific snapshot)</para></entry>
|
||||
<entry><para>createLBStickinessPolicy (Creates a Load Balancer stickiness policy )</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteLBStickinessPolicy (Deletes a LB stickiness policy.)</para></entry>
|
||||
<entry><para>listLBStickinessPolicies (Lists LBStickiness policies.)</para></entry>
|
||||
<entry><para>ldapConfig (Configure the LDAP context for this site.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>addSwift (Adds Swift.)</para></entry>
|
||||
<entry><para>listSwifts (List Swift.)</para></entry>
|
||||
<entry><para>migrateVolume (Migrate volume)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateStoragePool (Updates a storage pool.)</para></entry>
|
||||
<entry><para>authorizeSecurityGroupEgress (Authorizes a particular egress rule for this security group)</para></entry>
|
||||
<entry><para>revokeSecurityGroupEgress (Deletes a particular egress rule from this security group)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>createNetworkOffering (Creates a network offering.)</para></entry>
|
||||
<entry><para>deleteNetworkOffering (Deletes a network offering.)</para></entry>
|
||||
<entry><para>createProject (Creates a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteProject (Deletes a project)</para></entry>
|
||||
<entry><para>updateProject (Updates a project)</para></entry>
|
||||
<entry><para>activateProject (Activates a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>suspendProject (Suspends a project)</para></entry>
|
||||
<entry><para>listProjects (Lists projects and provides detailed information for listed projects)</para></entry>
|
||||
<entry><para>addAccountToProject (Adds acoount to a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteAccountFromProject (Deletes account from the project)</para></entry>
|
||||
<entry><para>listProjectAccounts (Lists project's accounts)</para></entry>
|
||||
<entry><para>listProjectInvitations (Lists an account's invitations to join projects)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateProjectInvitation (Accepts or declines project invitation)</para></entry>
|
||||
<entry><para>deleteProjectInvitation (Deletes a project invitation)</para></entry>
|
||||
<entry><para>updateHypervisorCapabilities (Updates a hypervisor capabilities.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listHypervisorCapabilities (Lists all hypervisor capabilities.)</para></entry>
|
||||
<entry><para>createPhysicalNetwork (Creates a physical network)</para></entry>
|
||||
<entry><para>deletePhysicalNetwork (Deletes a Physical Network.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listPhysicalNetworks (Lists physical networks)</para></entry>
|
||||
<entry><para>updatePhysicalNetwork (Updates a physical network)</para></entry>
|
||||
<entry><para>listSupportedNetworkServices (Lists all network services provided by &PRODUCT; or for the given Provider.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>addNetworkServiceProvider (Adds a network serviceProvider to a physical network)</para></entry>
|
||||
<entry><para>deleteNetworkServiceProvider (Deletes a Network Service Provider.)</para></entry>
|
||||
<entry><para>listNetworkServiceProviders (Lists network serviceproviders for a given physical network.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateNetworkServiceProvider (Updates a network serviceProvider of a physical network)</para></entry>
|
||||
<entry><para>addTrafficType (Adds traffic type to a physical network)</para></entry>
|
||||
<entry><para>deleteTrafficType (Deletes traffic type of a physical network)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listTrafficTypes (Lists traffic types of a given physical network.)</para></entry>
|
||||
<entry><para>updateTrafficType (Updates traffic type of a physical network)</para></entry>
|
||||
<entry><para>listTrafficTypeImplementors (Lists implementors of implementor of a network traffic type or implementors of all network traffic types)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>createStorageNetworkIpRange (Creates a Storage network IP range.)</para></entry>
|
||||
<entry><para>deleteStorageNetworkIpRange (Deletes a storage network IP Range.)</para></entry>
|
||||
<entry><para>listStorageNetworkIpRange (List a storage network IP range.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateStorageNetworkIpRange (Update a Storage network IP range, only allowed when no IPs in this range have been allocated.)</para></entry>
|
||||
<entry><para>listUsageTypes (List Usage Types)</para></entry>
|
||||
<entry><para>addF5LoadBalancer (Adds a F5 BigIP load balancer device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>configureF5LoadBalancer (configures a F5 load balancer device)</para></entry>
|
||||
<entry><para>deleteF5LoadBalancer ( delete a F5 load balancer device)</para></entry>
|
||||
<entry><para>listF5LoadBalancers (lists F5 load balancer devices)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listF5LoadBalancerNetworks (lists network that are using a F5 load balancer device)</para></entry>
|
||||
<entry><para>addSrxFirewall (Adds a SRX firewall device)</para></entry>
|
||||
<entry><para>deleteSrxFirewall ( delete a SRX firewall device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listSrxFirewalls (lists SRX firewall devices in a physical network)</para></entry>
|
||||
<entry><para>listSrxFirewallNetworks (lists network that are using SRX firewall device)</para></entry>
|
||||
<entry><para>addNetscalerLoadBalancer (Adds a netscaler load balancer device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteNetscalerLoadBalancer ( delete a netscaler load balancer device)</para></entry>
|
||||
<entry><para>configureNetscalerLoadBalancer (configures a netscaler load balancer device)</para></entry>
|
||||
<entry><para>listNetscalerLoadBalancers (lists netscaler load balancer devices)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listNetscalerLoadBalancerNetworks (lists network that are using a netscaler load balancer device)</para></entry>
|
||||
<entry><para>createVirtualRouterElement (Create a virtual router element.)</para></entry>
|
||||
<entry><para>configureVirtualRouterElement (Configures a virtual router element.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listVirtualRouterElements (Lists all available virtual router elements.)</para></entry>
|
||||
<entry><para></para></entry>
|
||||
<entry><para></para></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</section>
|
||||
<section id="added-API-commands">
|
||||
<title>Added API commands</title>
|
||||
<para>Added in 4.0</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>createCounter (Adds metric counter)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteCounter (Deletes a counter)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listCounters (List the counters)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createCondition (Creates a condition)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteCondition (Removes a condition)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listConditions (List Conditions for the specific user)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createTags. Add tags to one or more resources. Example:
|
||||
<programlisting>command=createTags
|
||||
&resourceIds=1,10,12
|
||||
&resourceType=userVm
|
||||
&tags[0].key=region
|
||||
&tags[0].value=canada
|
||||
&tags[1].key=city
|
||||
&tags[1].value=Toronto </programlisting></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteTags. Remove tags from one or more resources. Example:
|
||||
<programlisting>command=deleteTags
|
||||
&resourceIds=1,12
|
||||
&resourceType=Snapshot
|
||||
&tags[0].key=city </programlisting></para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listTags (Show currently defined resource tags)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createVPC (Creates a VPC)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listVPCs (Lists VPCs)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteVPC (Deletes a VPC)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>updateVPC (Updates a VPC)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>restartVPC (Restarts a VPC)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createVPCOffering (Creates VPC offering)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>updateVPCOffering (Updates VPC offering)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteVPCOffering (Deletes VPC offering)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listVPCOfferings (Lists VPC offerings)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createPrivateGateway (Creates a private gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listPrivateGateways (List private gateways)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deletePrivateGateway (Deletes a Private gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createNetworkACL (Creates a ACL rule the given network (the network has to belong to
|
||||
VPC))</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteNetworkACL (Deletes a Network ACL)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listNetworkACLs (Lists all network ACLs)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createStaticRoute (Creates a static route)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteStaticRoute (Deletes a static route)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listStaticRoutes (Lists all static routes)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createVpnCustomerGateway (Creates site to site vpn customer gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createVpnGateway (Creates site to site vpn local gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>createVpnConnection (Create site to site vpn connection)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteVpnCustomerGateway (Delete site to site vpn customer gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteVpnGateway (Delete site to site vpn gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteVpnConnection (Delete site to site vpn connection)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>updateVpnCustomerGateway (Update site to site vpn customer gateway)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>resetVpnConnection (Reset site to site vpn connection)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listVpnCustomerGateways (Lists site to site vpn customer gateways)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listVpnGateways (Lists site 2 site vpn gateways)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listVpnConnections (Lists site to site vpn connection gateways)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.3:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>enableCiscoNexusVSM (Enables Nexus 1000v dvSwitch in &PRODUCT;.)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>disableCiscoNexusVSM (Disables Nexus 1000v dvSwitch in &PRODUCT;.)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>deleteCiscoNexusVSM (Deletes Nexus 1000v dvSwitch in &PRODUCT;.)</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>listCiscoNexusVSMs (Lists the control VLAN ID, packet VLAN ID, and data VLAN ID, as well
|
||||
as the IP address of the Nexus 1000v dvSwitch.)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.2:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>changeServiceForSystemVm</para>
|
||||
<para>Changes the service offering for a system VM (console proxy or secondary storage). The
|
||||
system VM must be in a "Stopped" state for this command to take effect.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.1:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>changeServiceForSystemVm</para>
|
||||
<para>Changes the service offering for a system VM (console proxy or secondary storage). The
|
||||
system VM must be in a "Stopped" state for this command to take effect.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Added in 3.0.0:</para>
|
||||
<informaltable frame="all">
|
||||
<tgroup cols="3" align="left" colsep="1" rowsep="1">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<colspec colname="c3"/>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><para>assignVirtualMachine (Move a user VM to another user under same
|
||||
domain.)</para></entry>
|
||||
<entry><para>restoreVirtualMachine (Restore a VM to original template or specific
|
||||
snapshot)</para></entry>
|
||||
<entry><para>createLBStickinessPolicy (Creates a Load Balancer stickiness policy
|
||||
)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteLBStickinessPolicy (Deletes a LB stickiness policy.)</para></entry>
|
||||
<entry><para>listLBStickinessPolicies (Lists LBStickiness policies.)</para></entry>
|
||||
<entry><para>ldapConfig (Configure the LDAP context for this site.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>addSwift (Adds Swift.)</para></entry>
|
||||
<entry><para>listSwifts (List Swift.)</para></entry>
|
||||
<entry><para>migrateVolume (Migrate volume)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateStoragePool (Updates a storage pool.)</para></entry>
|
||||
<entry><para>authorizeSecurityGroupEgress (Authorizes a particular egress rule for this
|
||||
security group)</para></entry>
|
||||
<entry><para>revokeSecurityGroupEgress (Deletes a particular egress rule from this
|
||||
security group)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>createNetworkOffering (Creates a network offering.)</para></entry>
|
||||
<entry><para>deleteNetworkOffering (Deletes a network offering.)</para></entry>
|
||||
<entry><para>createProject (Creates a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteProject (Deletes a project)</para></entry>
|
||||
<entry><para>updateProject (Updates a project)</para></entry>
|
||||
<entry><para>activateProject (Activates a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>suspendProject (Suspends a project)</para></entry>
|
||||
<entry><para>listProjects (Lists projects and provides detailed information for listed
|
||||
projects)</para></entry>
|
||||
<entry><para>addAccountToProject (Adds acoount to a project)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteAccountFromProject (Deletes account from the project)</para></entry>
|
||||
<entry><para>listProjectAccounts (Lists project's accounts)</para></entry>
|
||||
<entry><para>listProjectInvitations (Lists an account's invitations to join
|
||||
projects)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateProjectInvitation (Accepts or declines project
|
||||
invitation)</para></entry>
|
||||
<entry><para>deleteProjectInvitation (Deletes a project invitation)</para></entry>
|
||||
<entry><para>updateHypervisorCapabilities (Updates a hypervisor
|
||||
capabilities.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listHypervisorCapabilities (Lists all hypervisor
|
||||
capabilities.)</para></entry>
|
||||
<entry><para>createPhysicalNetwork (Creates a physical network)</para></entry>
|
||||
<entry><para>deletePhysicalNetwork (Deletes a Physical Network.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listPhysicalNetworks (Lists physical networks)</para></entry>
|
||||
<entry><para>updatePhysicalNetwork (Updates a physical network)</para></entry>
|
||||
<entry><para>listSupportedNetworkServices (Lists all network services provided by
|
||||
&PRODUCT; or for the given Provider.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>addNetworkServiceProvider (Adds a network serviceProvider to a physical
|
||||
network)</para></entry>
|
||||
<entry><para>deleteNetworkServiceProvider (Deletes a Network Service
|
||||
Provider.)</para></entry>
|
||||
<entry><para>listNetworkServiceProviders (Lists network serviceproviders for a given
|
||||
physical network.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateNetworkServiceProvider (Updates a network serviceProvider of a physical
|
||||
network)</para></entry>
|
||||
<entry><para>addTrafficType (Adds traffic type to a physical network)</para></entry>
|
||||
<entry><para>deleteTrafficType (Deletes traffic type of a physical network)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listTrafficTypes (Lists traffic types of a given physical
|
||||
network.)</para></entry>
|
||||
<entry><para>updateTrafficType (Updates traffic type of a physical network)</para></entry>
|
||||
<entry><para>listTrafficTypeImplementors (Lists implementors of implementor of a network
|
||||
traffic type or implementors of all network traffic types)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>createStorageNetworkIpRange (Creates a Storage network IP
|
||||
range.)</para></entry>
|
||||
<entry><para>deleteStorageNetworkIpRange (Deletes a storage network IP
|
||||
Range.)</para></entry>
|
||||
<entry><para>listStorageNetworkIpRange (List a storage network IP range.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>updateStorageNetworkIpRange (Update a Storage network IP range, only allowed
|
||||
when no IPs in this range have been allocated.)</para></entry>
|
||||
<entry><para>listUsageTypes (List Usage Types)</para></entry>
|
||||
<entry><para>addF5LoadBalancer (Adds a F5 BigIP load balancer device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>configureF5LoadBalancer (configures a F5 load balancer device)</para></entry>
|
||||
<entry><para>deleteF5LoadBalancer ( delete a F5 load balancer device)</para></entry>
|
||||
<entry><para>listF5LoadBalancers (lists F5 load balancer devices)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listF5LoadBalancerNetworks (lists network that are using a F5 load balancer
|
||||
device)</para></entry>
|
||||
<entry><para>addSrxFirewall (Adds a SRX firewall device)</para></entry>
|
||||
<entry><para>deleteSrxFirewall ( delete a SRX firewall device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listSrxFirewalls (lists SRX firewall devices in a physical
|
||||
network)</para></entry>
|
||||
<entry><para>listSrxFirewallNetworks (lists network that are using SRX firewall
|
||||
device)</para></entry>
|
||||
<entry><para>addNetscalerLoadBalancer (Adds a netscaler load balancer
|
||||
device)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>deleteNetscalerLoadBalancer ( delete a netscaler load balancer
|
||||
device)</para></entry>
|
||||
<entry><para>configureNetscalerLoadBalancer (configures a netscaler load balancer
|
||||
device)</para></entry>
|
||||
<entry><para>listNetscalerLoadBalancers (lists netscaler load balancer
|
||||
devices)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listNetscalerLoadBalancerNetworks (lists network that are using a netscaler
|
||||
load balancer device)</para></entry>
|
||||
<entry><para>createVirtualRouterElement (Create a virtual router element.)</para></entry>
|
||||
<entry><para>configureVirtualRouterElement (Configures a virtual router
|
||||
element.)</para></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>listVirtualRouterElements (Lists all available virtual router
|
||||
elements.)</para></entry>
|
||||
<entry><para/></entry>
|
||||
<entry><para/></entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</section>
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -22,256 +19,362 @@
|
||||
under the License.
|
||||
-->
|
||||
<section id="advanced-zone-configuration">
|
||||
<title>Advanced Zone Configuration</title>
|
||||
<orderedlist>
|
||||
|
||||
<listitem><para>After you select Advanced in the Add Zone wizard and click Next, you will be asked to enter the following details. Then click Next.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Name.</emphasis> A name for the zone.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">DNS 1 and 2.</emphasis> These are DNS servers for use by guest VMs in the zone. These DNS servers will be accessed via the public network you will add later. The public IP addresses for the zone must have a route to the DNS server named here.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Internal DNS 1 and Internal DNS 2.</emphasis> These are DNS servers for use by system VMs in the zone(these are VMs used by &PRODUCT; itself, such as virtual routers, console proxies,and Secondary Storage VMs.) These DNS servers will be accessed via the management traffic network interface of the System VMs. The private IP address you provide for the pods must have a route to the internal DNS server named here.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Network Domain.</emphasis> (Optional) If you want to assign a special domain name to the guest VM network, specify the DNS suffix.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Guest CIDR.</emphasis> This is the CIDR that describes the IP addresses in use in the guest virtual networks in this zone. For example, 10.1.1.0/24. As a matter of good practice you should set different CIDRs for different zones. This will make it easier to set up VPNs between networks in different zones.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Hypervisor.</emphasis> (Introduced in version 3.0.1) Choose the hypervisor for the first cluster in the zone. You can add clusters with different hypervisors later, after you finish adding the zone.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Public.</emphasis> A public zone is available to all users. A zone that is not public will be assigned to a particular domain. Only users in that domain will be allowed to create guest VMs in this zone.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<title>Advanced Zone Configuration</title>
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>After you select Advanced in the Add Zone wizard and click Next, you will be asked to
|
||||
enter the following details. Then click Next.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name.</emphasis> A name for the zone.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Choose which traffic types will be carried by the physical network.</para>
|
||||
|
||||
<para>The traffic types are management, public, guest, and storage traffic. For more information about the types, roll over the icons to display their tool tips, or see <xref linkend="advanced-zone-network-traffic-types" />. This screen starts out with one network already configured. If you have multiple physical networks, you need to add more. Drag and drop traffic types onto a greyed-out network and it will become active. You can move the traffic icons from one network to another; for example, if the default traffic types shown for Network 1 do not match your actual setup, you can move them down. You can also change the network names if desired.</para>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">DNS 1 and 2.</emphasis> These are DNS servers for use by guest
|
||||
VMs in the zone. These DNS servers will be accessed via the public network you will add
|
||||
later. The public IP addresses for the zone must have a route to the DNS server named
|
||||
here.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>(Introduced in version 3.0.1) Assign a network traffic label to each traffic type on each physical network. These labels must match the labels you have already defined on the hypervisor host. To assign each label, click the Edit button under the traffic type icon within each physical network. A popup dialog appears where you can type the label, then click OK.</para>
|
||||
|
||||
<para>These traffic labels will be defined only for the hypervisor selected for the first cluster. For all other hypervisors, the labels can be configured after the zone is created.</para>
|
||||
|
||||
<para>(VMware only) If you have enabled Nexus dvSwitch in the environment, you must specify the corresponding Ethernet port profile names as network traffic label for each traffic type on the physical network. For more information on Nexus dvSwitch, see Configuring a vSphere Cluster with Nexus 1000v Virtual Switch.</para>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Internal DNS 1 and Internal DNS 2.</emphasis> These are DNS
|
||||
servers for use by system VMs in the zone(these are VMs used by &PRODUCT; itself, such
|
||||
as virtual routers, console proxies,and Secondary Storage VMs.) These DNS servers will
|
||||
be accessed via the management traffic network interface of the System VMs. The private
|
||||
IP address you provide for the pods must have a route to the internal DNS server named
|
||||
here.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Click Next.</para>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Network Domain.</emphasis> (Optional) If you want to assign a
|
||||
special domain name to the guest VM network, specify the DNS suffix.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Configure the IP range for public Internet traffic. Enter the following details, then click Add. If desired, you can repeat this step to add more public Internet IP ranges. When done, click Next.</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Gateway.</emphasis> The gateway in use for these IP addresses.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Netmask.</emphasis> The netmask associated with this IP range.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">VLAN.</emphasis> The VLAN that will be used for public traffic.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Start IP/End IP.</emphasis> A range of IP addresses that are assumed to be accessible from the Internet and will be allocated for access to guest networks.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Guest CIDR.</emphasis> This is the CIDR that describes the IP
|
||||
addresses in use in the guest virtual networks in this zone. For example, 10.1.1.0/24.
|
||||
As a matter of good practice you should set different CIDRs for different zones. This
|
||||
will make it easier to set up VPNs between networks in different zones.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>In a new zone, &PRODUCT; adds the first pod for you. You can always add more pods later. For an overview of what a pod is, see <xref linkend="about-pods" />.</para>
|
||||
|
||||
<para>To configure the first pod, enter the following, then click Next:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Pod Name.</emphasis> A name for the pod.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Reserved system gateway.</emphasis> The gateway for the hosts in that pod.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Reserved system netmask.</emphasis> The network prefix that defines the pod's subnet. Use CIDR notation.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Start/End Reserved System IP.</emphasis> The IP range in the management network that &PRODUCT; uses to manage various system VMs, such as Secondary Storage VMs, Console Proxy VMs, and DHCP. For more information, see <xref linkend="system-reserved-ip-addresses" />.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Hypervisor.</emphasis> (Introduced in version 3.0.1) Choose
|
||||
the hypervisor for the first cluster in the zone. You can add clusters with different
|
||||
hypervisors later, after you finish adding the zone.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Specify a range of VLAN IDs to carry guest traffic for each physical network (see VLAN Allocation Example ), then click Next.</para>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Public.</emphasis> A public zone is available to all users. A
|
||||
zone that is not public will be assigned to a particular domain. Only users in that
|
||||
domain will be allowed to create guest VMs in this zone.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>In a new pod, &PRODUCT; adds the first cluster for you. You can always add more clusters later. For an overview of what a cluster is, see <xref linkend="about-clusters" />.</para>
|
||||
|
||||
<para>To configure the first cluster, enter the following, then click Next:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Hypervisor.</emphasis> (Version 3.0.0 only; in 3.0.1, this field is read only) Choose the type of hypervisor software that all hosts in this cluster will run. If you choose VMware, additional fields appear so you can give information about a vSphere cluster. For vSphere servers, we recommend creating the cluster of hosts in vCenter and then adding the entire cluster to &PRODUCT;. See Add Cluster: vSphere .</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Cluster name.</emphasis> Enter a name for the cluster. This can be text of your choosing and is not used by &PRODUCT;.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Choose which traffic types will be carried by the physical network.</para>
|
||||
<para>The traffic types are management, public, guest, and storage traffic. For more
|
||||
information about the types, roll over the icons to display their tool tips, or see <xref
|
||||
linkend="advanced-zone-network-traffic-types"/>. This screen starts out with one network
|
||||
already configured. If you have multiple physical networks, you need to add more. Drag and
|
||||
drop traffic types onto a greyed-out network and it will become active. You can move the
|
||||
traffic icons from one network to another; for example, if the default traffic types shown
|
||||
for Network 1 do not match your actual setup, you can move them down. You can also change
|
||||
the network names if desired.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>(Introduced in version 3.0.1) Assign a network traffic label to each traffic type on
|
||||
each physical network. These labels must match the labels you have already defined on the
|
||||
hypervisor host. To assign each label, click the Edit button under the traffic type icon
|
||||
within each physical network. A popup dialog appears where you can type the label, then
|
||||
click OK.</para>
|
||||
<para>These traffic labels will be defined only for the hypervisor selected for the first
|
||||
cluster. For all other hypervisors, the labels can be configured after the zone is
|
||||
created.</para>
|
||||
<para>(VMware only) If you have enabled Nexus dvSwitch in the environment, you must specify
|
||||
the corresponding Ethernet port profile names as network traffic label for each traffic type
|
||||
on the physical network. For more information on Nexus dvSwitch, see Configuring a vSphere
|
||||
Cluster with Nexus 1000v Virtual Switch.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Next.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Configure the IP range for public Internet traffic. Enter the following details, then
|
||||
click Add. If desired, you can repeat this step to add more public Internet IP ranges. When
|
||||
done, click Next.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Gateway.</emphasis> The gateway in use for these IP
|
||||
addresses.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>In a new cluster, &PRODUCT; adds the first host for you. You can always add more hosts later. For an overview of what a host is, see <xref linkend="about-hosts" />.</para>
|
||||
|
||||
<note><para>When you deploy &PRODUCT;, the hypervisor host must not have any VMs already running.</para></note>
|
||||
|
||||
<para>Before you can configure the host, you need to install the hypervisor software on the host. You will need to know which version of the hypervisor software version is supported by &PRODUCT; and what additional configuration is required to ensure the host will work with &PRODUCT;. To find these installation details, see:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para>Citrix XenServer Installation for &PRODUCT;</para></listitem>
|
||||
|
||||
<listitem><para>VMware vSphere Installation and Configuration</para></listitem>
|
||||
|
||||
<listitem><para>KVM Installation and Configuration</para></listitem>
|
||||
|
||||
<listitem><para>Oracle VM (OVM) Installation and Configuration</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>To configure the first host, enter the following, then click Next:</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Host Name.</emphasis> The DNS name or IP address of the host.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Username.</emphasis> Usually root.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Password.</emphasis> This is the password for the user named above (from your XenServer or KVM install).</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Host Tags.</emphasis> (Optional) Any labels that you use to categorize hosts for ease of maintenance. For example, you can set to the cloud's HA tag (set in the ha.tag global configuration parameter) if you want this host to be used only for VMs with the "high availability" feature enabled. For more information, see HA-Enabled Virtual Machines as well as HA for Hosts, both in the Administration Guide.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Netmask.</emphasis> The netmask associated with this IP
|
||||
range.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>In a new cluster, &PRODUCT; adds the first primary storage server for you. You can always add more servers later. For an overview of what primary storage is, see <xref linkend="about-primary-storage" />.</para>
|
||||
|
||||
<para>To configure the first primary storage server, enter the following, then click Next:</para>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">VLAN.</emphasis> The VLAN that will be used for public
|
||||
traffic.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Start IP/End IP.</emphasis> A range of IP addresses that are
|
||||
assumed to be accessible from the Internet and will be allocated for access to guest
|
||||
networks.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In a new zone, &PRODUCT; adds the first pod for you. You can always add more pods later.
|
||||
For an overview of what a pod is, see <xref linkend="about-pods"/>.</para>
|
||||
<para>To configure the first pod, enter the following, then click Next:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Pod Name.</emphasis> A name for the pod.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Reserved system gateway.</emphasis> The gateway for the hosts
|
||||
in that pod.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Reserved system netmask.</emphasis> The network prefix that
|
||||
defines the pod's subnet. Use CIDR notation.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Start/End Reserved System IP.</emphasis> The IP range in the
|
||||
management network that &PRODUCT; uses to manage various system VMs, such as Secondary
|
||||
Storage VMs, Console Proxy VMs, and DHCP. For more information, see <xref
|
||||
linkend="system-reserved-ip-addresses"/>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Specify a range of VLAN IDs to carry guest traffic for each physical network (see VLAN
|
||||
Allocation Example ), then click Next.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In a new pod, &PRODUCT; adds the first cluster for you. You can always add more clusters
|
||||
later. For an overview of what a cluster is, see <xref linkend="about-clusters"/>.</para>
|
||||
<para>To configure the first cluster, enter the following, then click Next:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Hypervisor.</emphasis> (Version 3.0.0 only; in 3.0.1, this
|
||||
field is read only) Choose the type of hypervisor software that all hosts in this
|
||||
cluster will run. If you choose VMware, additional fields appear so you can give
|
||||
information about a vSphere cluster. For vSphere servers, we recommend creating the
|
||||
cluster of hosts in vCenter and then adding the entire cluster to &PRODUCT;. See Add
|
||||
Cluster: vSphere .</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Cluster name.</emphasis> Enter a name for the cluster. This
|
||||
can be text of your choosing and is not used by &PRODUCT;.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In a new cluster, &PRODUCT; adds the first host for you. You can always add more hosts
|
||||
later. For an overview of what a host is, see <xref linkend="about-hosts"/>.</para>
|
||||
<note>
|
||||
<para>When you deploy &PRODUCT;, the hypervisor host must not have any VMs already
|
||||
running.</para>
|
||||
</note>
|
||||
<para>Before you can configure the host, you need to install the hypervisor software on the
|
||||
host. You will need to know which version of the hypervisor software version is supported by
|
||||
&PRODUCT; and what additional configuration is required to ensure the host will work with
|
||||
&PRODUCT;. To find these installation details, see:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Citrix XenServer Installation for &PRODUCT;</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>VMware vSphere Installation and Configuration</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>KVM Installation and Configuration</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Oracle VM (OVM) Installation and Configuration</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>To configure the first host, enter the following, then click Next:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Host Name.</emphasis> The DNS name or IP address of the
|
||||
host.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Username.</emphasis> Usually root.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Password.</emphasis> This is the password for the user named
|
||||
above (from your XenServer or KVM install).</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Host Tags.</emphasis> (Optional) Any labels that you use to
|
||||
categorize hosts for ease of maintenance. For example, you can set to the cloud's HA tag
|
||||
(set in the ha.tag global configuration parameter) if you want this host to be used only
|
||||
for VMs with the "high availability" feature enabled. For more information, see
|
||||
HA-Enabled Virtual Machines as well as HA for Hosts, both in the Administration
|
||||
Guide.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In a new cluster, &PRODUCT; adds the first primary storage server for you. You can
|
||||
always add more servers later. For an overview of what primary storage is, see <xref
|
||||
linkend="about-primary-storage"/>.</para>
|
||||
<para>To configure the first primary storage server, enter the following, then click
|
||||
Next:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Name.</emphasis> The name of the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Protocol.</emphasis> For XenServer, choose either NFS, iSCSI,
|
||||
or PreSetup. For KVM, choose NFS or SharedMountPoint. For vSphere choose either VMFS
|
||||
(iSCSI or FiberChannel) or NFS. The remaining fields in the screen vary depending on
|
||||
what you choose here.</para>
|
||||
<informaltable frame="all">
|
||||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||||
<colspec colname="c1"/>
|
||||
<colspec colname="c2"/>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><para>NFS</para></entry>
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">Name.</emphasis> The name of the storage device.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Protocol.</emphasis> For XenServer, choose either NFS, iSCSI, or PreSetup. For KVM, choose NFS or SharedMountPoint. For vSphere choose either VMFS (iSCSI or FiberChannel) or NFS. The remaining fields in the screen vary depending on what you choose here.</para>
|
||||
|
||||
<informaltable frame="all">
|
||||
|
||||
<tgroup cols="2" align="left" colsep="1" rowsep="1">
|
||||
|
||||
<colspec colname="c1" />
|
||||
|
||||
<colspec colname="c2" />
|
||||
|
||||
<tbody>
|
||||
|
||||
<row>
|
||||
|
||||
<entry><para>NFS</para></entry>
|
||||
<entry>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of the storage device.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Path.</emphasis> The exported path from the server.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device. It should be an equivalent set or superset of the tags on your disk offerings.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>iSCSI</para></entry>
|
||||
<entry>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of the storage device.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Target IQN.</emphasis> The IQN of the target. For example, iqn.1986-03.com.sun:02:01ec9bb549-1271378984.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Lun.</emphasis> The LUN number. For example, 3.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device. It should be an equivalent set or superset of the tags on your disk offerings.</para></listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
|
||||
<entry><para>preSetup</para></entry>
|
||||
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of the storage device.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">SR Name-Label.</emphasis> Enter the name-label of the SR that has been set up outside &PRODUCT;.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device. It should be an equivalent set or superset of the tags on your disk offerings.</para></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
</entry>
|
||||
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>SharedMountPoint</para></entry>
|
||||
|
||||
<entry>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Path.</emphasis> The path on each host that is where this primary storage is mounted. For example, "/mnt/primary".</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device. It should be an equivalent set or superset of the tags on your disk offerings.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
|
||||
</entry>
|
||||
|
||||
</row>
|
||||
|
||||
<row>
|
||||
|
||||
<entry><para>VMFS</para></entry>
|
||||
<entry>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem><para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of the vCenter server.</para></listitem>
|
||||
<listitem><para><emphasis role="bold">Path.</emphasis> A combination of the datacenter name and the datastore name. The format is "/" datacenter name "/" datastore name. For example, "/cloud.dc.VM/cluster1datastore".</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device. It should be an equivalent set or superset of the tags on your disk offerings.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be identical. For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of
|
||||
the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Path.</emphasis> The exported path from the
|
||||
server.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated
|
||||
list of tags for this storage device. It should be an equivalent set or
|
||||
superset of the tags on your disk offerings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be
|
||||
identical. For example, if cluster A provides primary storage that has tags T1
|
||||
and T2, all other clusters in the Zone must also provide primary storage that
|
||||
has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>iSCSI</para></entry>
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of
|
||||
the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Target IQN.</emphasis> The IQN of the target.
|
||||
For example, iqn.1986-03.com.sun:02:01ec9bb549-1271378984.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Lun.</emphasis> The LUN number. For example,
|
||||
3.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated
|
||||
list of tags for this storage device. It should be an equivalent set or
|
||||
superset of the tags on your disk offerings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be
|
||||
identical. For example, if cluster A provides primary storage that has tags T1
|
||||
and T2, all other clusters in the Zone must also provide primary storage that
|
||||
has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>preSetup</para></entry>
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of
|
||||
the storage device.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">SR Name-Label.</emphasis> Enter the name-label
|
||||
of the SR that has been set up outside &PRODUCT;.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated
|
||||
list of tags for this storage device. It should be an equivalent set or
|
||||
superset of the tags on your disk offerings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be
|
||||
identical. For example, if cluster A provides primary storage that has tags T1
|
||||
and T2, all other clusters in the Zone must also provide primary storage that
|
||||
has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>SharedMountPoint</para></entry>
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Path.</emphasis> The path on each host that is
|
||||
where this primary storage is mounted. For example, "/mnt/primary".</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated
|
||||
list of tags for this storage device. It should be an equivalent set or
|
||||
superset of the tags on your disk offerings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be
|
||||
identical. For example, if cluster A provides primary storage that has tags T1
|
||||
and T2, all other clusters in the Zone must also provide primary storage that
|
||||
has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><para>VMFS</para></entry>
|
||||
<entry>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Server.</emphasis> The IP address or DNS name of
|
||||
the vCenter server.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Path.</emphasis> A combination of the datacenter
|
||||
name and the datastore name. The format is "/" datacenter name "/"
|
||||
datastore name. For example, "/cloud.dc.VM/cluster1datastore".</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated
|
||||
list of tags for this storage device. It should be an equivalent set or
|
||||
superset of the tags on your disk offerings.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>The tag sets on primary storage across clusters in a Zone must be
|
||||
identical. For example, if cluster A provides primary storage that has tags T1
|
||||
and T2, all other clusters in the Zone must also provide primary storage that
|
||||
has tags T1 and T2.</para>
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</informaltable>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>In a new zone, &PRODUCT; adds the first secondary storage server for you. For an overview of what secondary storage is, see <xref linkend="about-secondary-storage" />.</para>
|
||||
|
||||
<para>Before you can fill out this screen, you need to prepare the secondary storage by setting up NFS shares and installing the latest &PRODUCT; System VM template. See Adding Secondary Storage :</para>
|
||||
|
||||
<itemizedlist>
|
||||
|
||||
<listitem><para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server.</para></listitem>
|
||||
|
||||
<listitem><para><emphasis role="bold">Path.</emphasis> The exported path from the server.</para></listitem>
|
||||
|
||||
</itemizedlist>
|
||||
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>In a new zone, &PRODUCT; adds the first secondary storage server for you. For an
|
||||
overview of what secondary storage is, see <xref linkend="about-secondary-storage"/>.</para>
|
||||
<para>Before you can fill out this screen, you need to prepare the secondary storage by
|
||||
setting up NFS shares and installing the latest &PRODUCT; System VM template. See Adding
|
||||
Secondary Storage :</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem><para>Click Launch.</para>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis role="bold">Path.</emphasis> The exported path from the server.</para>
|
||||
</listitem>
|
||||
|
||||
</orderedlist>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Click Launch.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</section>
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,13 @@
|
||||
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
|
||||
<<<<<<< HEAD
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
=======
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
>>>>>>> master
|
||||
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
|
||||
@ -22,8 +25,19 @@
|
||||
under the License.
|
||||
-->
|
||||
<section id="advanced-zone-physical-network-configuration">
|
||||
<<<<<<< HEAD
|
||||
<title>Advanced Zone Physical Network Configuration</title>
|
||||
<para>Within a zone that uses advanced networking, you need to tell the Management Server how the physical network is set up to carry different kinds of traffic in isolation.</para>
|
||||
<xi:include href="configure-guest-traffic-in-advanced-zone.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
<xi:include href="configure-public-traffic-in-an-advanced-zone.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
|
||||
</section>
|
||||
=======
|
||||
<title>Advanced Zone Physical Network Configuration</title>
|
||||
<para>Within a zone that uses advanced networking, you need to tell the Management Server how the
|
||||
physical network is set up to carry different kinds of traffic in isolation.</para>
|
||||
<xi:include href="configure-guest-traffic-in-advanced-zone.xml"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="configure-public-traffic-in-an-advanced-zone.xml"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
</section>
|
||||
>>>>>>> master
|
||||
|
||||
38
docs/en-US/api-overview.xml
Normal file
38
docs/en-US/api-overview.xml
Normal file
@ -0,0 +1,38 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
<!-- 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.
|
||||
-->
|
||||
<chapter id="api-overview">
|
||||
<title>&PRODUCT; API</title>
|
||||
<para>The &PRODUCT; API is a low level API that has been used to implement the &PRODUCT; web UIs.
|
||||
It is also a good basis for implementing other popular APIs such as EC2/S3 and emerging DMTF
|
||||
standards.</para>
|
||||
<para>Many &PRODUCT; API calls are asynchronous. These will return a Job ID immediately when
|
||||
called. This Job ID can be used to query the status of the job later. Also, status calls on
|
||||
impacted resources will provide some indication of their state.</para>
|
||||
<para>The API has a REST-like query basis and returns results in XML or JSON.</para>
|
||||
<para>See <ulink
|
||||
url="http://docs.cloudstack.org/CloudStack_Documentation/Developer's_Guide%3A_CloudStack">the
|
||||
Developer’s Guide</ulink> and <ulink
|
||||
url="http://docs.cloudstack.org/CloudStack_Documentation/API_Reference%3A_CloudStack">the API
|
||||
Reference</ulink>.</para>
|
||||
<xi:include href="provisioning-auth-api.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="allocators.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
<xi:include href="user-data-and-meta-data.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
|
||||
</chapter>
|
||||
@ -3,7 +3,6 @@
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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
|
||||
@ -11,9 +10,7 @@
|
||||
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
|
||||
@ -21,17 +18,19 @@
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
-->
|
||||
|
||||
<section id="automatic-snapshot-creation-retention">
|
||||
<title>Automatic Snapshot Creation and Retention</title>
|
||||
<para>(Supported for the following hypervisors: <emphasis role="bold">XenServer</emphasis>,
|
||||
<emphasis role="bold">VMware vSphere</emphasis>, and <emphasis role="bold"
|
||||
>KVM</emphasis>)</para>
|
||||
<para>Users can set up a recurring snapshot policy to automatically create multiple snapshots of a disk at regular intervals. Snapshots can be created on an hourly, daily, weekly, or monthly interval. One snapshot policy can be set up per disk volume. For example, a user can set up a daily snapshot at 02:30.</para>
|
||||
<para>With each snapshot schedule, users can also specify the number of scheduled snapshots to be
|
||||
retained. Older snapshots that exceed the retention limit are automatically deleted. This
|
||||
user-defined limit must be equal to or lower than the global limit set by the &PRODUCT;
|
||||
administrator. See <xref linkend="globally-configured-limits"/>. The limit applies only to
|
||||
those snapshots that are taken as part of an automatic recurring snapshot policy. Additional
|
||||
manual snapshots can be created and retained.</para>
|
||||
</section>
|
||||
<title>Automatic Snapshot Creation and Retention</title>
|
||||
<para>(Supported for the following hypervisors: <emphasis role="bold">XenServer</emphasis>,
|
||||
<emphasis role="bold">VMware vSphere</emphasis>, and <emphasis role="bold"
|
||||
>KVM</emphasis>)</para>
|
||||
<para>Users can set up a recurring snapshot policy to automatically create multiple snapshots of a
|
||||
disk at regular intervals. Snapshots can be created on an hourly, daily, weekly, or monthly
|
||||
interval. One snapshot policy can be set up per disk volume. For example, a user can set up a
|
||||
daily snapshot at 02:30.</para>
|
||||
<para>With each snapshot schedule, users can also specify the number of scheduled snapshots to be
|
||||
retained. Older snapshots that exceed the retention limit are automatically deleted. This
|
||||
user-defined limit must be equal to or lower than the global limit set by the &PRODUCT;
|
||||
administrator. See <xref linkend="globally-configured-limits"/>. The limit applies only to those
|
||||
snapshots that are taken as part of an automatic recurring snapshot policy. Additional manual
|
||||
snapshots can be created and retained.</para>
|
||||
</section>
|
||||
64
docs/en-US/aws-ec2-configuration.xml
Normal file
64
docs/en-US/aws-ec2-configuration.xml
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<section id="aws-ec2-configuration">
|
||||
<title>Enabling the AWS API compatible Interface</title>
|
||||
<para>
|
||||
To enable the EC2 compatible service you need to set the configuration variable <emphasis>enable.ec2.api</emphasis>to true. This can be done via the &PRODUCT; GUI by going in <emphasis>Global Settings</emphasis> or via the API.
|
||||
</para>
|
||||
<para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/ec2-s3-configuration.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Use the GUI to set the configuration variable to <emphasis>true</emphasis></phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</para>
|
||||
<para>
|
||||
The easiest is to use the so-called integration port on which you can make unauthenticated calls. In Global Settings set the port to 8096 and subsequently call the <emphasis>updateConfiguration</emphasis> method. The following url shows you how:
|
||||
</para>
|
||||
<para>
|
||||
<programlisting>
|
||||
http://localhost:8096/client/api?command=updateConfiguration&name=enable.ec2.api&value=true
|
||||
</programlisting>
|
||||
</para>
|
||||
<para>
|
||||
Once you have updated <emphasis>enable.ec2.api</emphasis>to true, restart the server.
|
||||
</para>
|
||||
<para>
|
||||
You will also need to define compute service offerings with names compatible with the <ulink url="http://aws.amazon.com/ec2/instance-types/">Amazon EC2 instance types</ulink> API names (e.g m1.small,m1.large). This is easiest done via the &PRODUCT; GUI. Go under <emphasis>Service Offerings</emphasis> select <emphasis>Compute offering</emphasis> and either create a new compute offering or modify an existing one, ensuring that the name matches an EC2 instance type API name. The snapshot below shows you how:
|
||||
</para>
|
||||
<para>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="./images/compute-service-offerings.png"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Use the GUI to set the name of a compute service offering to an EC2 instance type API name.</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</para>
|
||||
</section>
|
||||
47
docs/en-US/aws-ec2-introduction.xml
Normal file
47
docs/en-US/aws-ec2-introduction.xml
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<section id="aws-ec2-introduction">
|
||||
<title>Amazon Web Services EC2 Compatible Interface</title>
|
||||
<para>&PRODUCT; can translate Amazon Web Services (AWS) API calls to native &PRODUCT; API calls so that users can continue using existing AWS-compatible tools. This translation service runs as a separate web application in the same tomcat server as the management server of &PRODUCT;, listening on the same port. This Amazon EC2-compatible API is accessible through a SOAP web service as well as the REST query interface.</para>
|
||||
<warning>
|
||||
<para>Expect the SOAP service to be deprecated in new releases in favor of the REST interface.</para>
|
||||
</warning>
|
||||
<note>
|
||||
<para>This service was previously enabled by a separate software called CloudBridge, it is now fully integrated with the &PRODUCT; management server.
|
||||
</para>
|
||||
</note>
|
||||
<para>Limitations</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Supported only in zones that use basic networking.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Available in fresh installations of &PRODUCT;. Not available through upgrade of previous versions.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>If you need to support features such as elastic IP, set up a Citrix NetScaler to provide this service. The commands such as ec2-associate-address will not work without EIP setup. Users running VMs in this zone will be using the NetScaler-enabled network offering (DefaultSharedNetscalerEIP and ELBNetworkOffering).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
30
docs/en-US/aws-ec2-requirements.xml
Normal file
30
docs/en-US/aws-ec2-requirements.xml
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version='1.0' encoding='utf-8' ?>
|
||||
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
|
||||
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
|
||||
%BOOK_ENTITIES;
|
||||
]>
|
||||
|
||||
<!-- 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.
|
||||
-->
|
||||
|
||||
<section id="aws-ec2-requirements">
|
||||
<title>System Requirements</title>
|
||||
<para>This interface complies with Amazon's WDSL version dated November 15, 2010, available at http://ec2.amazonaws.com/doc/2010-11-15/. The EC2 command line utilities compatible with it are <emphasis>EC2 tools v. 1.3.6230</emphasis>that can be downloaded at <ulink url="http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip">http://s3.amazonaws.com/ec2-downloads/ec2-api-tools-1.3-62308.zip</ulink>
|
||||
</para>
|
||||
<note>Effort is underway to provide support for a newer API</note>
|
||||
</section>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user