For an apache project, a VOTE on a release candidate is a very important process. By voting (particularly for PPMC PMC members and committers), you are saying to the world that "yes, I have download, verified and tested using the project's procedure for testing". Your +1, 0 or -1 vote is an indication of the success of the steps listed. The more time that each individual spends reviewing the artifacts, the higher confidence we can have in both the release itself and our ability to pass an IPMC vote later on. Remember, we, as a podling, are going to be held to a higher standard for our releases! The IPMC (and our mentors) are looking for us to show that we understand what it means to have a high quality release.
To setup an environment for CloudStack, usually it will take a while, e.g install a hypervisor host, install Mysql server etc. Here we'll use DevCloud2 to simplify the test procedure.
Note |
---|
Following steps are tested on Mint 13, should work on ubuntu 12.04. The same basic workflow should also work on Mac 10.7, with different specific commands for the prerequisite setup steps. For Windows, you will need to run in cygwin and rename the genisoimage.exe file to mkisofs. |
Note |
Unless specified specifically, instruction steps should be assumed to be run from your local machine, not from within the DevCloud VM. The DevCloud VM is the target runtime environment of the tests, but the instructions will push the code to that VM at the right time. |
Install the devcloud VM image.
Note |
---|
DevCloud is a 1.5 GB download. It is a VM image running Ubuntu 12.04, including an installation of the Xen Hypervisor. We use DevCloud as a "cloud in a box" environment for basic functional testing of CloudStack. |
...
...
...
DevCloud VM image via the instructions on the DevCloud wiki page.
Install your required development tools (if not already available)
Warning |
---|
These pre-requisite development tools are not part of the release validation itself. The instructions are being provided for those testers that may not normally have these tools installed on their test system, and want to perform the expected tests. The pre-requisites listed may not be be 100% complete (for example, we assume you have git, tar, etc... installed). If you run into any issues, please ask on the dev@cloudstack.apache.org mailing list. |
Code Block |
---|
sudo aptitude install openjdk-6-jdk ant sudo apt-getaptitude update sudo apt-getaptitude install python-software-properties sudo add-apt-repository ppa:natecarlson/maven3 sudo aptitude update sudo aptitude install maven3 |
Install JSch:
Code Block |
---|
wget http://downloads.sourceforge.net/project/jsch/jsch.jar/0.1.48/jsch-0.1.48.jar
sudo cp jsch-0.1.48.jar /usr/share/ant/lib/
|
Install Boto (assumes you have Python and Setup Tools installed):
Code Block |
---|
sudo easy_install boto
|
...
Unpack the archive, and run:
Code Block |
---|
sudo cp lib/ant-jsch.jar /usr/share/ant/lib
|
Install Boto (assumes you have Python and Python Setup Tools already installed):
Code Block |
---|
sudo easy_install boto
|
...
Download the artifacts:
Code Block |
---|
mkdir /tmp/cloudstack; cd /tmp/cloudstack wget --no-check-certificate https://dist.apache.org/repos/dist/release/cloudstack/KEYS wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.13.0/apache-cloudstack-4.13.0-src.tar.bz2 wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.13.0/apache-cloudstack-4.13.0-src.tar.bz2.asc wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.13.0/apache-cloudstack-4.13.0-src.tar.bz2.md5 wget --no-check-certificate https://dist.apache.org/repos/dist/dev/cloudstack/4.13.0/apache-cloudstack-4.13.0-src.tar.bz2.sha |
Install gpg (if needed): sudo apt-get install gpg
...
Verify signatures and hash files:
Code Block |
---|
gpg --verify apache-cloudstack-4.13.0-src.tar.bz2.asc |
This command should return "Good Signature".
Code Block |
---|
gpg --print-md MD5 apache-cloudstack-4.13.0-src.tar.bz2 | diff - apache-cloudstack-4.13.0-src.tar.bz2.md5 gpg --print-md SHA512 apache-cloudstack-4.13.0-src.tar.bz2 | diff - apache-cloudstack-4.13.0-src.tar.bz2.sha |
Each of these commands should return no output. If there is any output from them, then there is a difference between the hash you generated locally and the hash that has been pulled from the server.
...
Create two new temporary directories:
Code Block |
---|
mkdir /tmp/cloudstack/git
mkdir /tmp/cloudstack/tree
|
Pull down the git repo:
Code Block |
---|
git clone https://git-wip-us.apache.org/repos/asf/cloudstack.git /tmp/cloudstack/git cd /tmp/cloudstack/git git archive --format=tar --prefix=/tmp/cloudstack/tree/ <commit-hash> | tar Pxf - |
Unpack the release artifact:
Code Block |
---|
cd /tmp/cloudstack tar xvfj apache-cloudstack-4.13.0-src.tar.bz2 |
Compare the contents of the release artifact with the contents pulled from the repo:
Code Block |
---|
diff -r /tmp/cloudstack/apache-cloudstack-4.13.0-src /tmp/cloudstack/tree |
...
Code Block |
---|
cd /tmp/cloudstack/apache-cloudstack-4.13.0-src mvn --projects='org.apache.cloudstack:cloudstack' org.apache.rat:apache-rat-plugin:0.8:check |
...
Note: If you're on Ubuntu and using the PPA:natecarlson/maven3 (viz. Installing tools above), you've to use mvn3 instead of mvn, so mvn3 -P deps
Code Block |
---|
mvn -P developer,systemvm clean install
mvn -P developer -pl developer,tools/devcloud -Ddeploydb
mvn -pl :cloud-client-ui jetty:run
|
Note |
---|
Need to set router.version.check to false in the global configuration page, after management server is up to workaround a devcloud issue, and then restart management server. |
Once the management server starts on your local machine, execute the following commands to bring up a basic zone using the devcloud2 VM:
Deploy DevCloud (make sure mysql-connector-python is installed and that the management server is running)
Code Block |
---|
$ mvn -P developer -pl tools/devcloud -Ddeploysvr
|
Or, if the above does not work, maybe you're running mvn in debug mode using some MAVEN_OPTS, try marvin:
Code Block |
---|
$ cd tools/devcloud; python ../marvin/marvin/deployDataCenter.py -i devcloud.cfg
|
...
Test other functionality, to suite your tastes (and perhaps using non-DevCloud infrastructure.
In a separate terminal run:
Code Block |
---|
mvn -Pawsapi -pl :cloud-awsapi jetty:run
|
Via the UI:
1. Destroy any running instances
2. Rename the tinyoffering compute offering 'm1.small'
Then using the access key and secret key of your admin user run the following python script:
Code Block |
---|
#!/usr/bin/env python
import boto
import boto.ec2
accesskey="2IUSA5xylbsPSnBQFoWXKg3RvjHgsufcKhC1SeiCbeEc0obKwUlwJamB_gFmMJkFHYHTIafpUx0pHcfLvt-dzw"
secretkey="oxV5Dhhk5ufNowey7OVHgWxCBVS4deTl9qL0EqMthfPBuy3ScHPo2fifDxw1aXeL5cyH10hnLOKjyKphcXGeDA"
region = boto.ec2.regioninfo.RegionInfo(name="ROOT", endpoint="localhost")
conn = boto.connect_ec2(aws_access_key_id=accesskey, aws_secret_access_key=secretkey, is_secure=False, region=region, port=7080, path="/awsapi", api_version="2012-08-15")
images=conn.get_all_images()
print images
res = images[0].run(instance_type='m1.small',security_groups=['default'])
|
If the keys have changed, using the above script verbatim won't work. Make sure to update the keys.
If we made it this far, the release has at least been reasonably "smoke tested".