+ echo '====== automated-ec2-builds [/tmp/automated-ec2-builds] ======' ====== automated-ec2-builds [/tmp/automated-ec2-builds] ====== + cd /tmp/automated-ec2-builds + bzr info Standalone tree (format: 2a) Location: branch root: . Related branches: parent branch: http://bazaar.launchpad.net/~ubuntu-on-ec2/vmbuilder/automated-ec2-builds/ + bzr version-info revision-id: ben.howard@canonical.com-20120921153005-frduv3m2r5qwby4g date: 2012-09-21 09:30:05 -0600 build-date: 2012-10-01 06:03:25 +0000 revno: 518 branch-nick: automated-ec2-builds + bzr log -p -r-1 ------------------------------------------------------------ revno: 518 committer: Ben Howard branch nick: automated-ec2-builds timestamp: Fri 2012-09-21 09:30:05 -0600 message: Disabled Desktop QCow builds diff: === modified file 'conf/quantal-desktop.conf' --- conf/quantal-desktop.conf 2012-09-18 20:13:26 +0000 +++ conf/quantal-desktop.conf 2012-09-21 15:30:05 +0000 @@ -19,11 +19,4 @@ nogrub=0 img_arches="amd64 i386" build_type="desktop" -vmdk_create=0 -vmdk_ovf=0 -qcow2_create=1 -qcow2_ovf=1 -ovf_default=qcow2 -img_size=4G -create_root_tgz=0 + echo '' + echo '====== ec2-publishing-scripts [/tmp/ec2-publishing-scripts] ======' ====== ec2-publishing-scripts [/tmp/ec2-publishing-scripts] ====== + cd /tmp/ec2-publishing-scripts + bzr info Standalone tree (format: unnamed) Location: branch root: . Related branches: parent branch: http://bazaar.launchpad.net/~ubuntu-on-ec2/ubuntu-on-ec2/ec2-publishing-scripts/ + bzr version-info revision-id: ben.howard@canonical.com-20120928230039-zsh8haxhxne1la3z date: 2012-09-28 17:00:39 -0600 build-date: 2012-10-01 06:03:25 +0000 revno: 482 branch-nick: ec2-publishing-scripts + bzr log -p -r-1 ------------------------------------------------------------ revno: 482 committer: Ben Howard branch nick: ec2-publishing-scripts timestamp: Fri 2012-09-28 17:00:39 -0600 message: Query2 feedback fixes: * Added in flat files * Split API queries to api sub directory * Changed: - distro is now suite - replaced 'response_type' with 'response' - added API identifier diff: === modified file 'querier.py' --- querier.py 2012-09-24 23:34:37 +0000 +++ querier.py 2012-09-28 23:00:39 +0000 @@ -36,9 +36,9 @@ builds.id AS build_id, streams.name AS build_name, arches.name AS arch, - distros.name AS distro_name, - distros.code_name AS distro_code_name, - distros.version AS distro_version + distros.name AS suite_name, + distros.code_name AS code_name, + distros.version AS suite_version FROM files JOIN file_types ON files.file_type_id = file_types.id JOIN builds ON files.build_id = builds.id @@ -47,7 +47,7 @@ JOIN streams ON streams.id = build_serials.stream_id JOIN arches ON builds.arch_id = arches.id WHERE build_serials.current_build = "True" - AND distros.code_name IN (%(distro)s) + AND distros.code_name IN (%(suite)s) AND streams.name IN (%(build_name)s) AND arches.name IN (%(arch)s) AND build_serials.release_tag IN (%(release_tag)s) @@ -63,14 +63,14 @@ published.ramdisk_id AS ramdisk_id, published.url AS published_url, publish_date AS published_date, - regions.name AS region_name, + regions.name AS region, clouds.name AS cloud_name, builds.date AS build_date, build_serials.serial AS build_serial, streams.name AS build_name, - distros.name AS distro_name, - distros.code_name AS distro_code_name, - distros.version AS distro_version, + distros.name AS suite_name, + distros.code_name AS code_name, + distros.version AS suite_version, arches.name AS arch, instance_types.name AS instance_type FROM published @@ -84,7 +84,7 @@ JOIN instance_types ON published.instance_type_id = instance_types.id JOIN virt_type ON instance_types.virt_type_id = virt_type.id WHERE build_serials.current_build = "True" - AND distros.code_name IN (%(distro)s) + AND distros.code_name IN (%(suite)s) AND streams.name IN (%(build_name)s) AND arches.name IN (%(arch)s) AND build_serials.release_tag IN (%(release_tag)s) @@ -96,7 +96,7 @@ # This is a dict of the valid options for query # Its primary purpose is a poor-man's SQL injection defense valid_requests = { - "distro": ['quantal', + "suite": ['quantal', 'precise', 'oneiric', 'natty', @@ -159,7 +159,7 @@ self.db = sqlite3.connect(db_name) self.defaults = { 'cloud': 'EC2', - 'distro': 'precise', + 'suite': 'precise', 'region': 'us-east-1', 'arch': 'amd64', 'build_name': 'server', @@ -263,13 +263,14 @@ if b_id not in cat: # Gather meta description bd = {} - bd['response_type'] = 'build' + bd['response'] = 'build' bd['arch'] = r['arch'] bd['build_id'] = r['build_id'] bd['build_serial'] = r['build_serial'] bd['build_name'] = r['build_name'] - bd['distro_code_name'] = r['distro_code_name'] - bd['distro_version'] = r['distro_version'] + bd['code_name'] = r['code_name'] + bd['suite_name'] = r['suite_name'] + bd['suite_version'] = r['suite_version'] bd['release_tag'] = r['release_tag'] bd['latest_build'] = False bd['files'] = [] @@ -289,11 +290,11 @@ # Calculate the suggested name sname_find = "%s-%s-cloudimg" % ( - r['distro_code_name'], + r['code_name'], r['build_name'], ) sname_replace = "ubuntu-%s-%s" % ( - r['distro_code_name'], + r['code_name'], r['build_name'], ) @@ -317,13 +318,14 @@ for r in results: b_id = r['build_id'] - r['response_type'] = 'cloud' + r['response'] = 'cloud' r['latest_build'] = False cat[b_id] = r res = self.reduce_results(cat) return res, self.ret_opts(opts) + # This is a blatant cut and paste. This is stop-gap code until # we get the new query2 service online....or something like that... @@ -338,6 +340,7 @@ version = { 'uuid': str(uuid.uuid4()).replace('-',''), 'epoch': int(float(time.time())), + 'api': { 'date': '2012-09-28', 'version': '2.0.1' }, } fetch_urls = "http://cloud-images.ubuntu.com", @@ -436,7 +439,6 @@ else: print i - sys.exit(1) self.request['bad_asks'].append(item_name) self.error = "Invalid request received, see bad_asks" @@ -497,12 +499,46 @@ mimetype='application/json') -def write_files(db=None, distro="quantal", out_d=None): +def api_to_file(fname, output, out_d): + # Write pseudo API + + out_d = "%s/api" % out_d + out_f = "%s/%s" % (out_d, fname) + + if not os.path.exists(out_d): + os.makedirs(out_d) + + with open(out_f, 'w') as f: + f.write(output) + +def api_to_dir(query, output, dir): + + fname_l = query.split('&') + name_l = [] + + for component in fname_l: + _, c = component.split('=')[0:2] + name_l.append(c) + + name_l[-1] = "%s.json" % name_l[-1] + name_s = "%s/%s" % (dir, "/".join(name_l)) + name_d = os.path.dirname(name_s) + + if not os.path.exists(name_d): + print "Creating %s" % name_d + os.makedirs(name_d) + + print name_s + with open(name_s, 'w') as f: + f.write(output) + + +def write_files(db=None, suite="quantal", out_d=None): # Build the queries that we care about build_pre = "data=builds" cloud_pre = "data=cloud&cloud=ec2" - distros = { + suites = { 'hardy': { 'archs': ['amd64', 'i386'], 'cloud_archs': ['amd64', 'i386'], @@ -543,29 +579,29 @@ # Where are we going to put the requests? requests_b, requests_c = [], [] - # Add the master "distro" query - build_pre = "%s&distro=%s" % (build_pre, distro) - cloud_pre = "%s&distro=%s" % (cloud_pre, distro) + # Add the master "suite" query + build_pre = "%s&suite=%s" % (build_pre, suite) + cloud_pre = "%s&suite=%s" % (cloud_pre, suite) requests_b.append(build_pre) # Get the configured stuff out - distro_config = distros[distro] - - # Get the arch, stream and release tags for individual distros out - cloud_archs = distro_config['cloud_archs'] - - for arch in distro_config['archs']: + suite_config = suites[suite] + + # Get the arch, stream and release tags for individual suites out + cloud_archs = suite_config['cloud_archs'] + + for arch in suite_config['archs']: def requests_c_append(string): - if arch in distro_config['cloud_archs']: + if arch in suite_config['cloud_archs']: requests_c.append(string) r = "arch=%s" % arch requests_b.append("%s&%s" % (build_pre, r)) requests_c_append("%s&%s" % (cloud_pre, r)) - for build_name in distro_config['build_name']: + for build_name in suite_config['build_name']: s = "build_name=%s" % build_name requests_b.append("%s&%s&%s" % (build_pre, r, s)) requests_c_append("%s&%s&%s" % (cloud_pre, r, s)) @@ -606,24 +642,23 @@ output = json_out(r,db) # Write pseudo API - fname = "%s/%s" % (out_d, r) - print " Writing %s" % fname - with open(fname, 'w') as f: - f.write(output) + api_to_file(r, output, out_d) + api_to_dir(r, output, out_d) except IOError as e: sys.stderr.write("Error writing %s" % fname) + print e if __name__=="__main__": print "Running in CLI Mode" arg0 = sys.argv[0] db = None - distro = None + suite = None out_d = None if len(sys.argv) >= 4: db = sys.argv[1] - distro = sys.argv[2] + suite = sys.argv[2] out_d = sys.argv[3] else: @@ -640,11 +675,11 @@ sys.stderr.write('Output directory does not exist at %s' % out_d) sys.exit(1) - if distro == "all": - for d in valid_requests['distro']: - write_files(db=db, distro=d, out_d=out_d) + if suite == "all": + for d in valid_requests['suite']: + write_files(db=db, suite=d, out_d=out_d) else: - write_files(db=db, distro=distro, out_d=out_d) + write_files(db=db, suite=suite, out_d=out_d) + echo '' + echo '====== live-build [/tmp/live-build] ======' ====== live-build [/tmp/live-build] ====== + cd /tmp/live-build + bzr info Standalone tree (format: 1.9-rich-root) Location: branch root: . Related branches: parent branch: http://bazaar.launchpad.net/~ubuntu-on-ec2/live-build/cloud-images/ + bzr version-info revision-id: ben.howard@canonical.com-20120911204823-b27wnyuurqsx2pyi date: 2012-09-11 14:48:23 -0600 build-date: 2012-10-01 06:03:26 +0000 revno: 1854 branch-nick: live-build + bzr log -p -r-1 ------------------------------------------------------------ revno: 1854 committer: Ben Howard branch nick: live-build timestamp: Tue 2012-09-11 14:48:23 -0600 message: Allow for disabling source builds, as they are not needed diff: === modified file 'scripts/build/lb_binary' --- scripts/build/lb_binary 2012-09-05 19:19:59 +0000 +++ scripts/build/lb_binary 2012-09-11 20:48:23 +0000 @@ -113,4 +113,3 @@ lb chroot_selinuxfs remove ${*} lb chroot_proc remove ${*} lb chroot_devpts remove ${*} -set +x === modified file 'scripts/build/lb_source' --- scripts/build/lb_source 2011-11-28 17:56:01 +0000 +++ scripts/build/lb_source 2012-09-11 20:48:23 +0000 @@ -36,6 +36,10 @@ # Setup cleanup function Setup_cleanup +if [ "${LB_SOURCE}" != "true" ]; then + exit 0 +fi + # Enabling network in chroot lb chroot_hosts install ${*} lb chroot_resolv install ${*} + echo '' + echo '====== vmbuilder-0.11 [/tmp/vmbuilder-0.11] ======' ====== vmbuilder-0.11 [/tmp/vmbuilder-0.11] ====== + cd /tmp/vmbuilder-0.11 + bzr info Standalone tree (format: 2a) Location: branch root: . Related branches: parent branch: http://bazaar.launchpad.net/~ubuntu-on-ec2/vmbuilder/0.11a/ + bzr version-info revision-id: ben.howard@canonical.com-20120605221454-crv9cc4612f907lh date: 2012-06-05 16:14:54 -0600 build-date: 2012-10-01 06:03:26 +0000 revno: 398 branch-nick: vmbuilder-0.11 + bzr log -p -r-1 ------------------------------------------------------------ revno: 398 committer: Ben Howard branch nick: vmbuilder timestamp: Tue 2012-06-05 16:14:54 -0600 message: Fix for allow vmbuilder to run on 12.04 LTS. diff: === modified file 'VMBuilder/plugins/ubuntu/dapper.py' --- VMBuilder/plugins/ubuntu/dapper.py 2011-05-18 20:49:25 +0000 +++ VMBuilder/plugins/ubuntu/dapper.py 2012-06-05 22:14:54 +0000 @@ -157,18 +157,15 @@ self.vm.addpkg += ['openssh-server'] def mount_dev_proc(self): - run_cmd('mount', '--bind', '/dev', '%s/dev' % self.destdir) - self.vm.add_clean_cmd('umount', '%s/dev' % self.destdir, ignore_fail=True) - - run_cmd('mount', '--bind', '/dev/pts', '%s/dev/pts' % self.destdir) + run_cmd('mkdir', '-p', '%s/dev/pts' % self.destdir) + run_cmd('mount', '-t', 'devpts', 'devpts-live', '%s/dev/pts' % self.destdir) self.vm.add_clean_cmd('umount', '%s/dev/pts' % self.destdir, ignore_fail=True) - self.run_in_target('mount', '-t', 'proc', 'proc', '/proc') + run_cmd('mount', '-t', 'proc', 'proc-live', '%s/proc' % self.destdir) self.vm.add_clean_cmd('umount', '%s/proc' % self.destdir, ignore_fail=True) def unmount_dev_proc(self): run_cmd('umount', '%s/dev/pts' % self.destdir) - run_cmd('umount', '%s/dev' % self.destdir) run_cmd('sh', '-c', 'grep -q "$1" /proc/mounts || exit 0; umount "$1"', 'umount_binfmt', "%s/proc/sys/fs/binfmt_misc" % self.destdir) run_cmd('umount', '%s/proc' % self.destdir) + echo ''