You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cloudstack.apache.org by Chip Childers <ch...@sungard.com> on 2013/04/23 15:36:55 UTC

Release Verification Tool - if you're interested

Hi all,

Going through the process of validating the RC's (and several validation
rounds before announcing an RC), I got tired of manually following the
steps in our release testing process [1].

Some of the steps do require that you manually work with the release,
however many of the up-front steps are easily scripted.  I put together
a generic framework for defining and running a set of release
verification instructions yesterday, including the definition of the
CloudStack release verification steps as the example configuration [2].

Feel free to use it if you think it would help you (especially the RM's
that may have to re-spin an RC over and over to ensure that it's right).

-chip

[1]
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+test+procedure

[2] https://github.com/chipchilders/cloudstack-release-verification-tool

Re: Release Verification Tool - if you're interested

Posted by Chip Childers <ch...@sungard.com>.
On Sat, May 04, 2013 at 01:33:38PM +0100, Noah Slater wrote:
> Wow. This is a great idea!
> 
> On CouchDB we have couchdb-admin.git and we keep stuff like this in that
> repos. Might we want to consider something similar? (We also use it to keep
> email templates in, etc.)
> 
> https://git-wip-us.apache.org/repos/asf?p=couchdb-admin.git

Actually, perhaps we do.  We currently have some "release tooling"
sitting in tools/build within the main repo.  Time to break that out?

The tool I published on github, although the example is for CloudStack,
was meant to be a thing that different projects can use.  I realize that
it's not much more than what a shell script can do, but I found it
useful to get a clear picture of what steps work vs fail.

> 
> On 23 April 2013 14:36, Chip Childers <ch...@sungard.com> wrote:
> 
> > Hi all,
> >
> > Going through the process of validating the RC's (and several validation
> > rounds before announcing an RC), I got tired of manually following the
> > steps in our release testing process [1].
> >
> > Some of the steps do require that you manually work with the release,
> > however many of the up-front steps are easily scripted.  I put together
> > a generic framework for defining and running a set of release
> > verification instructions yesterday, including the definition of the
> > CloudStack release verification steps as the example configuration [2].
> >
> > Feel free to use it if you think it would help you (especially the RM's
> > that may have to re-spin an RC over and over to ensure that it's right).
> >
> > -chip
> >
> > [1]
> >
> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+test+procedure
> >
> > [2] https://github.com/chipchilders/cloudstack-release-verification-tool
> >
> 
> 
> 
> -- 
> NS

Re: Release Verification Tool - if you're interested

Posted by Noah Slater <ns...@apache.org>.
Wow. This is a great idea!

On CouchDB we have couchdb-admin.git and we keep stuff like this in that
repos. Might we want to consider something similar? (We also use it to keep
email templates in, etc.)

https://git-wip-us.apache.org/repos/asf?p=couchdb-admin.git

On 23 April 2013 14:36, Chip Childers <ch...@sungard.com> wrote:

> Hi all,
>
> Going through the process of validating the RC's (and several validation
> rounds before announcing an RC), I got tired of manually following the
> steps in our release testing process [1].
>
> Some of the steps do require that you manually work with the release,
> however many of the up-front steps are easily scripted.  I put together
> a generic framework for defining and running a set of release
> verification instructions yesterday, including the definition of the
> CloudStack release verification steps as the example configuration [2].
>
> Feel free to use it if you think it would help you (especially the RM's
> that may have to re-spin an RC over and over to ensure that it's right).
>
> -chip
>
> [1]
>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+test+procedure
>
> [2] https://github.com/chipchilders/cloudstack-release-verification-tool
>



-- 
NS

Re: Release Verification Tool - if you're interested

Posted by John Burwell <jb...@basho.com>.
Chip,

Worked like a charm within 15 minutes -- just now getting around to ack'ing the success.

Thanks,
-John

On Apr 23, 2013, at 11:57 AM, Chip Childers <ch...@sungard.com> wrote:

> On Tue, Apr 23, 2013 at 11:51:02AM -0400, John Burwell wrote:
>> root@zone1:/tmp/cloudstack# gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
>> gpg: Signature made Mon 22 Apr 2013 04:45:37 PM PDT using RSA key ID A99A5D58
>> gpg: Can't check signature: public key not found
>> 
>> What am I doing wrong?
> 
> You have to have imported the KEYS file previously...  so just do:
> 
> wget --no-check-certificate https://dist.apache.org/repos/dist/release/cloudstack/KEYS /tmp/KEYS
> gpg --import /tmp/KEYS


Re: Release Verification Tool - if you're interested

Posted by Chip Childers <ch...@sungard.com>.
On Tue, Apr 23, 2013 at 11:51:02AM -0400, John Burwell wrote:
> root@zone1:/tmp/cloudstack# gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
> gpg: Signature made Mon 22 Apr 2013 04:45:37 PM PDT using RSA key ID A99A5D58
> gpg: Can't check signature: public key not found
> 
> What am I doing wrong?

You have to have imported the KEYS file previously...  so just do:

wget --no-check-certificate https://dist.apache.org/repos/dist/release/cloudstack/KEYS /tmp/KEYS
gpg --import /tmp/KEYS

Re: Release Verification Tool - if you're interested

Posted by John Burwell <jb...@basho.com>.
Chip,

I just attempted to use the release verification script on Ubuntu 12.04.2 LTS with the stock instructions.conf file provided in the git repo, and I receiving the following error:

root@zone1:/opt/release-verification-tool# ./verify-release.py -i instructions.conf -v 4.1.0 -c 7048baaa4417880db690cba4a620af06276dd040
RUNNING COMMAND: rm -Rf /tmp/cloudstack
RUNNING COMMAND: rm -Rf ~/.m2
RUNNING COMMAND: mkdir /tmp/cloudstack
RUNNING COMMAND: wget --no-check-certificate -q https://dist.apache.org/repos/dist/release/cloudstack/KEYS
RUNNING COMMAND: wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2
RUNNING COMMAND: wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.asc
RUNNING COMMAND: wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.md5
RUNNING COMMAND: wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.sha
RUNNING COMMAND: gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
OUTPUT:
AUTOMATED TESTING RESULTS:
[PASS]		rm -Rf /tmp/cloudstack
[PASS]		rm -Rf ~/.m2
[PASS]		mkdir /tmp/cloudstack
[PASS]		wget --no-check-certificate -q https://dist.apache.org/repos/dist/release/cloudstack/KEYS
[PASS]		wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2
[PASS]		wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.asc
[PASS]		wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.md5
[PASS]		wget --no-check-certificate -q https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.sha
[FAILED]	gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
[SKIPPED]	gpg --print-md MD5 apache-cloudstack-${version}-src.tar.bz2 | diff - apache-cloudstack-${version}-src.tar.bz2.md5
[SKIPPED]	gpg --print-md SHA512 apache-cloudstack-${version}-src.tar.bz2 | diff - apache-cloudstack-${version}-src.tar.bz2.sha
[SKIPPED]	mkdir /tmp/cloudstack/git
[SKIPPED]	mkdir /tmp/cloudstack/tree
[SKIPPED]	git clone -q https://git-wip-us.apache.org/repos/asf/cloudstack.git /tmp/cloudstack/git
[SKIPPED]	git archive --prefix=/tmp/cloudstack/tree/ ${commit-sh} | tar Pxf -
[SKIPPED]	tar xvfj apache-cloudstack-${version}-src.tar.bz2
[SKIPPED]	diff -r /tmp/cloudstack/apache-cloudstack-${version}-src /tmp/cloudstack/tree
[SKIPPED]	mvn --projects='org.apache.cloudstack:cloudstack' org.apache.rat:apache-rat-plugin:0.8:check
[SKIPPED]	mvn -P developer,systemvm clean install
[SKIPPED]	mvn -P developer -pl developer,tools/devcloud -Ddeploydb
Traceback (most recent call last):
  File "./verify-release.py", line 121, in <module>
    main(sys.argv[1:])
  File "./verify-release.py", line 118, in main
    x.print_results()
  File "./verify-release.py", line 85, in print_results
    print "[" + self.FAIL + action["result"] + self.ENDC + "]\t" + action["command"]

When I execute `gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc` in /tmp/cloudstack, I get the following error:

root@zone1:/tmp/cloudstack# gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
gpg: Signature made Mon 22 Apr 2013 04:45:37 PM PDT using RSA key ID A99A5D58
gpg: Can't check signature: public key not found

What am I doing wrong?
-John

On Apr 23, 2013, at 9:44 AM, Chip Childers <ch...@sungard.com> wrote:

> 7048baaa4417880db690cba4a620af06276dd040


Re: Release Verification Tool - if you're interested

Posted by Chip Childers <ch...@sungard.com>.
On Tue, Apr 23, 2013 at 9:36 AM, Chip Childers
<ch...@sungard.com> wrote:
> Hi all,
>
> Going through the process of validating the RC's (and several validation
> rounds before announcing an RC), I got tired of manually following the
> steps in our release testing process [1].
>
> Some of the steps do require that you manually work with the release,
> however many of the up-front steps are easily scripted.  I put together
> a generic framework for defining and running a set of release
> verification instructions yesterday, including the definition of the
> CloudStack release verification steps as the example configuration [2].
>
> Feel free to use it if you think it would help you (especially the RM's
> that may have to re-spin an RC over and over to ensure that it's right).
>
> -chip
>
> [1]
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+test+procedure
>
> [2] https://github.com/chipchilders/cloudstack-release-verification-tool

And here's an example of running it for the latest 4.1.0 VOTE:

# ./verify-release.py -i instructions.conf -v 4.1.0 -c
7048baaa4417880db690cba4a620af06276dd040

RUNNING COMMAND: rm -Rf /tmp/cloudstack
RUNNING COMMAND: rm -Rf ~/.m2
RUNNING COMMAND: mkdir /tmp/cloudstack
RUNNING COMMAND: wget --no-check-certificate -q
https://dist.apache.org/repos/dist/release/cloudstack/KEYS
RUNNING COMMAND: wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2
RUNNING COMMAND: wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.asc
RUNNING COMMAND: wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.md5
RUNNING COMMAND: wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.sha
RUNNING COMMAND: gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
RUNNING COMMAND: gpg --print-md MD5
apache-cloudstack-4.1.0-src.tar.bz2 | diff -
apache-cloudstack-4.1.0-src.tar.bz2.md5
RUNNING COMMAND: gpg --print-md SHA512
apache-cloudstack-4.1.0-src.tar.bz2 | diff -
apache-cloudstack-4.1.0-src.tar.bz2.sha
RUNNING COMMAND: mkdir /tmp/cloudstack/git
RUNNING COMMAND: mkdir /tmp/cloudstack/tree
RUNNING COMMAND: git clone -q
https://git-wip-us.apache.org/repos/asf/cloudstack.git
/tmp/cloudstack/git
RUNNING COMMAND: git archive --prefix=/tmp/cloudstack/tree/
7048baaa4417880db690cba4a620af06276dd040 | tar Pxf -
RUNNING COMMAND: tar xvfj apache-cloudstack-4.1.0-src.tar.bz2
RUNNING COMMAND: diff -r /tmp/cloudstack/apache-cloudstack-4.1.0-src
/tmp/cloudstack/tree
RUNNING COMMAND: mvn --projects='org.apache.cloudstack:cloudstack'
org.apache.rat:apache-rat-plugin:0.8:check
RUNNING COMMAND: mvn -P developer,systemvm clean install
RUNNING COMMAND: mvn -P developer -pl developer,tools/devcloud -Ddeploydb
AUTOMATED TESTING RESULTS:
[PASS] rm -Rf /tmp/cloudstack
[PASS] rm -Rf ~/.m2
[PASS] mkdir /tmp/cloudstack
[PASS] wget --no-check-certificate -q
https://dist.apache.org/repos/dist/release/cloudstack/KEYS
[PASS] wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2
[PASS] wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.asc
[PASS] wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.md5
[PASS] wget --no-check-certificate -q
https://dist.apache.org/repos/dist/dev/cloudstack/4.1.0/apache-cloudstack-4.1.0-src.tar.bz2.sha
[PASS] gpg --verify apache-cloudstack-4.1.0-src.tar.bz2.asc
[PASS] gpg --print-md MD5 apache-cloudstack-4.1.0-src.tar.bz2 | diff -
apache-cloudstack-4.1.0-src.tar.bz2.md5
[PASS] gpg --print-md SHA512 apache-cloudstack-4.1.0-src.tar.bz2 |
diff - apache-cloudstack-4.1.0-src.tar.bz2.sha
[PASS] mkdir /tmp/cloudstack/git
[PASS] mkdir /tmp/cloudstack/tree
[PASS] git clone -q
https://git-wip-us.apache.org/repos/asf/cloudstack.git
/tmp/cloudstack/git
[PASS] git archive --prefix=/tmp/cloudstack/tree/
7048baaa4417880db690cba4a620af06276dd040 | tar Pxf -
[PASS] tar xvfj apache-cloudstack-4.1.0-src.tar.bz2
[PASS] diff -r /tmp/cloudstack/apache-cloudstack-4.1.0-src /tmp/cloudstack/tree
[PASS] mvn --projects='org.apache.cloudstack:cloudstack'
org.apache.rat:apache-rat-plugin:0.8:check
[PASS] mvn -P developer,systemvm clean install
[PASS] mvn -P developer -pl developer,tools/devcloud -Ddeploydb
POST AUTOMATION STEPS:


You now need to start the CloudStack management server via: mvn -pl
:cloud-client-ui jetty:run

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)
  $ 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:
  $ cd tools/devcloud; python ../marvin/marvin/deployDataCenter.py -i
devcloud.cfg

The above will deploy a zone with settings defined in
tools/devcloud/devcloud.cfg which sets some global settings and will
take some time. After this, you should restart management server and
destroy any system vms which may have started for the global settings
to take effect.

Access web UI: http://localhost:8080/client, and login with
admin/password. You can tell if the SSVM has been started by
navigating to the Infrastructure page, and clicking on System VMs.
There should be 2 listed, and their status needs to be displayed as
"Started".

Add a new instance:

* In the first step of "Add instance" wizard, select template,
* In step 2, select "tiny Linux"
* In step 3, select "tinyOffering"
* In step 4, select "No thanks"
* Skip step 5 and 6.
* Launch VM

Test other functionality, to suite your tastes (and perhaps using
non-DevCloud infrastructure).