Skip to content

Commit 30f2565

Browse files
author
Alex Huang
committed
Merge branch 'api_refactoring' into javelin
2 parents a4f4c98 + 0a25884 commit 30f2565

2,016 files changed

Lines changed: 97939 additions & 35600 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ dist/
3333
cloud-*.tar.bz2
3434
*.log
3535
*.pyc
36+
*.egginfo/
37+
*.egg-info/
38+
*.prefs
3639
build.number
3740
api.log.*.gz
3841
cloud.log.*.*
@@ -45,6 +48,10 @@ deps/awsapi-lib/
4548
git-remote-https.exe.stackdump
4649
*.swp
4750
tools/devcloud/devcloudbox/.vagrant
51+
tools/cli/cloudmonkey/marvin/
52+
tools/cli/cloudmonkey/precache.py
53+
tools/marvin/marvin/cloudstackAPI/
54+
tools/cli/build/
4855
*.jar
4956
*.war
5057
*.mar
@@ -59,3 +66,11 @@ awsapi/modules/*
5966
.settings.xml
6067
.settings/
6168
db.properties.override
69+
awsapi/overlays/
70+
tools/marvin/marvin/cloudstackAPI/*
71+
*.egg-info/
72+
docs/tmp
73+
docs/publish
74+
docs/runbook/tmp
75+
docs/runbook/publish
76+
Gemfile.lock

CHANGES

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
Apache CloudStack (Incubating) CHANGES
2+
======================================
3+
4+
Full release notes for each release are located in the project's documentation website: http://incubator.apache.org/cloudstack/docs
5+
6+
Version 4.0.0-incubating
7+
------------------------
8+
9+
This is the first release of CloudStack from within the Apache Software Foundation.
10+
11+
Build Tool Changes:
12+
13+
* The project now uses a combination of maven3 and ant for building
14+
* License header auditing is now implemented via the Apache RAT Maven plugin
15+
* Some integrations have been disabled in the default build, due to the license types of our dependencies (See README.md for details on how to build with the optional capabilities)
16+
17+
New Features:
18+
19+
* Inter-VLAN Routing (VPC)
20+
* Site-to-Site VPN
21+
* Local Storage Support for Data Volumes
22+
* Virtual Resource Tagging
23+
* Secure Console Access on XenServer
24+
* Added the ability to create a VM without immediately starting it (via API)
25+
* Upload an Existing Volume to a Virtual Machine
26+
* Dedicated High-Availability Hosts
27+
* Support for Amazon Web Services API (formerly a separate package)
28+
* AWS API Extensions to include Tagging
29+
* Support for Nicira NVP (L2)
30+
* Ceph RBD Support for KVM
31+
* Support for Caringo as Secondary Storage
32+
* KVM Hypervisor support upgraded to work with Ubuntu 12.04 and RHEL 6.3
33+
34+
Security Fixes:
35+
36+
* CVE-2012-4501: Apache CloudStack configuration vulnerability
37+

INSTALL.md

Lines changed: 127 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1-
This document describes how to set up and configure a single server CloudStack
2-
development environment. If you aren't looking for a development environment,
3-
the easiest way to deploy CloudStack is by using RPM or DEB packages from:
1+
This document describes how to develop, build, package and install Apache CloudStack
2+
(Incubating). For more information please refer to the project's website:
43

5-
- http://cloudstack.org/download.html
6-
- http://jenkins.cloudstack.org (CI/Build server)
7-
- http://cloudstack.apt-get.eu (Debian repository)
4+
http://incubator.apache.org/cloudstack
85

9-
CloudStack developers use various platforms for development, this guide will
10-
focus on CentOS and was tested against a CentOS 6.2 x86_64 setup.
6+
Apache CloudStack developers use various platforms for development, this guide
7+
was tested against a CentOS 6.2 x86_64 setup.
118

129
Refer to the [wiki](http://cwiki.apache.org/confluence/display/CLOUDSTACK/Index)
1310
for the latest information, especially:
1411

15-
- [Setting up development environment](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Setting+up+CloudStack+Development+Environment) for CloudStack.
16-
- [Building](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Building+with+Maven) CloudStack.
12+
- [Setting up development environment](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Setting+up+CloudStack+Development+Environment) for Apache CloudStack.
13+
- [Building](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Building) Apache CloudStack.
1714

1815
## Setting up Development Environment
1916

@@ -32,7 +29,7 @@ Set up Maven (3.0.4):
3229
$ echo export M2_HOME=/usr/local/apache-maven-3.0.4 >> ~/.bashrc # or .zshrc or .profile
3330
$ echo export PATH=${M2_HOME}/bin:${PATH} >> ~/.bashrc # or .zshrc or .profile
3431

35-
Note: Tomcat 6.0.35 has some known issue with CloudStack, please use Tomcat
32+
Note: Tomcat 6.0.35 has some known issue with Apache CloudStack, please use Tomcat
3633
6.0.33 from http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.33/bin
3734

3835
### Configure Environment
@@ -50,22 +47,22 @@ Generate you ssh keys, useful for ssh-ing to your hosts and vm etc.:
5047

5148
$ ssh-keygen -t rsa -q
5249

53-
CloudStack uses some ports, make sure at least those used by the management
50+
Apache CloudStack uses some ports, make sure at least those used by the management
5451
server are available and not blocked by any local firewall. Following ports are
55-
used by CloudStack and its entities:
56-
57-
8787: CloudStack (Tomcat) debug socket
58-
9090, 8250: CloudStack Management Server, User/Client API
59-
8096: User/Client to CloudStack Management Server (unauthenticated)
60-
3306: MySQL Server
61-
3922, 8250, 80/443, 111/2049, 53: Secondary Storage VM
62-
3922, 8250, 53: Console Proxy VM
63-
3922, 8250, 53: Virtual Router
64-
22, 80, 443: XenServer, XAPI
65-
22: KVM
66-
443: vCenter
67-
DNS: 53
68-
NFS: 111/2049
52+
used by Apache CloudStack and its entities:
53+
54+
8787: Apache CloudStack (Tomcat) debug socket
55+
9090, 8250: Apache CloudStack Management Server, User/Client API
56+
8096: User/Client to CloudStack Management Server (unauthenticated)
57+
3306: MySQL Server
58+
3922, 8250, 80/443, 111/2049, 53: Secondary Storage VM
59+
3922, 8250, 53: Console Proxy VM
60+
3922, 8250, 53: Virtual Router
61+
22, 80, 443: XenServer, XAPI
62+
22: KVM
63+
443: vCenter
64+
DNS: 53
65+
NFS: 111/2049
6966

7067
### Configuring MySQL Server
7168

@@ -92,33 +89,45 @@ For example, for master:
9289

9390
## Building
9491

95-
Populate the dependencies using Maven:
9692

97-
$ mvn -P deps
98-
99-
Clean previous build, if needed:
93+
Clean and build:
10094

10195
$ mvn clean
102-
$ ant clean-all
103-
$ ant clean-tomcat
96+
$ mvn install
97+
98+
In case you want support for VMWare, SRX and other non-Apache (referred to as nonoss)
99+
compliant libs, you may download the following jar artifacts from respective vendors:
104100

105-
Build all sub-modules:
101+
deps/cloud-iControl.jar
102+
deps/cloud-manageontap.jar
103+
deps/cloud-netscaler-sdx.jar
104+
deps/cloud-netscaler.jar
105+
deps/vmware-apputils.jar
106+
deps/vmware-vim.jar
107+
deps/vmware-vim25.jar
106108

107-
$ ant build-all
109+
Install them to ~/.m2 so maven can get them as dependencies:
108110

109-
Deploy the built project on tomcat:
111+
$ cd deps
112+
$ ./install-non-oss.sh
110113

111-
$ ant deploy-server
114+
And build them with the nonoss flag:
115+
116+
$ mvn install -Dnonoss
112117

113118
Clear old database (if any) and deploy the database schema:
114119

115-
$ ant deploydb
120+
$ mvn -P developer -pl developer -Ddeploydb
121+
122+
Export the following variable if you need to run and debug the management server:
116123

117-
Start the management server in debug mode:
124+
$ export MAVEN_OPTS="-Xmx1024m -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n"
118125

119-
$ ant debug
126+
Start the management server:
120127

121-
If this works, you've successfully setup a single server CloudStack installation.
128+
$ mvn -pl :cloud-client-ui jetty:run
129+
130+
If this works, you've successfully setup a single server Apache CloudStack installation.
122131

123132
Open the following URL on your browser to access the Management Server UI:
124133

@@ -131,13 +140,87 @@ Or,
131140
The default credentials are; user: admin, password: password and the domain
132141
field should be left blank which is defaulted to the ROOT domain.
133142

134-
## Packaging
143+
If you want to contribute your changes, send your [git formatted patch](https://cwiki.apache.org/confluence/display/CLOUDSTACK/Git) to:
144+
https://reviews.apache.org/groups/cloudstack or contact on the developer mailing list.
135145

136-
To create rpms:
146+
## Packaging and Installation
137147

138-
$ mvn -P deps && ./waf rpm
148+
Before packaging, please make sure you go through the "Building" section above.
149+
This section describes packaging and installation.
150+
151+
### Debian/Ubuntu
139152

140153
To create debs:
141154

142-
$ mvn -P deps && dpkg-buildpackage
155+
$ mvn -P deps # -D nonoss, for nonoss as described in the "Building" section above
156+
$ dpkg-buildpackage
157+
158+
All the deb packages will be created in ../$PWD
159+
160+
To create an apt repo: (assuming appropriate user privileges)
161+
162+
$ path=/path/to/your/webserver/cloudstack
163+
$ mv ../*.deb $path
164+
$ dpkg-scanpackages $path /dev/null | gzip -9c > $path/Packages.gz
165+
166+
Configure your system to use your new apt repo:
167+
168+
$ echo "deb $path ./" >> /etc/apt/sources.list.d/cloudstack.list
169+
170+
Installation:
171+
172+
Install needed packages, apt-get upgrade for upgrading:
173+
174+
$ apt-get update
175+
$ apt-get install cloud-client # management server
176+
$ apt-get install mysql-server # mysql server
177+
$ apt-get install cloud-agent cloud-system-iso # agent (kvm)
178+
$ apt-get install cloud-awsapi # awsapi server
179+
$ apt-get install cloud-usage # usage server
180+
181+
### RHEL/CentOS
182+
183+
To create rpms:
184+
185+
$ mvn -P deps # -D nonoss, for nonoss as described in the "Building" section above
186+
$ ./waf rpm
187+
188+
All the rpm packages will be create in artifacts/rpmbuild/RPMS/x86_64
189+
190+
To create a yum repo: (assuming appropriate user privileges)
191+
192+
$ path=/path/to/your/webserver/cloudstack
193+
$ cd artifacts/rpmbuild/RPMS/x86_64
194+
$ mv *.rpm $path
195+
$ createrepo $path
196+
197+
Configure your system to use your new yum repo, add the following to /etc/yum.repos.d/cloudstack.repo:
198+
199+
[apache-cloudstack]
200+
name=Apache CloudStack
201+
baseurl=http://webserver.tld/path/to/repo
202+
enabled=1
203+
gpgcheck=0
204+
205+
Installation:
206+
207+
Install needed packages:
208+
209+
$ yum update
210+
$ yum install cloud-client # management server
211+
$ yum install mysql-server # mysql server
212+
$ yum install cloud-agent # agent (kvm)
213+
$ yum install cloud-usage # usage server
214+
215+
## Notes
216+
217+
If you will be using Xen as your hypervisor, please download [vhd-util](http://download.cloud.com.s3.amazonaws.com/tools/vhd-util)
218+
219+
If management server is installed on RHEL/CentOS, then copy vhd-util into:
220+
/usr/lib64/cloud/common/scripts/vm/hypervisor/xenserver/
221+
222+
If management server is installed on Ubuntu, then put vhd-util into:
223+
/usr/lib/cloud/common/scripts/vm/hypervisor/xenserver/vhd-util
143224

225+
Once, you've successfully installed Apache CloudStack you may read the user manuals
226+
and guides which contains technical documentation for Apache CloudStack.

0 commit comments

Comments
 (0)