)]}'
{"elements/README.rst":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"and just enter your password when it asks and then rely on sudo caching. To"},{"line_number":33,"context_line":"be on the safe side, you might want to look at all the rules, or at least"},{"line_number":34,"context_line":"have a root shell open somewhere in case something about the rules is bad"},{"line_number":35,"context_line":"for your system so that you don\u0027t get into a bad state."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"::"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"AAAAQn%2F%2FPPk%3D","line":35,"updated":"2013-08-04 20:43:03.000000000","message":"We\u0027re deleting those rules; skip these steps. Just tell folk that dib will invoke sudo and they need to unlock it, or permit passwordless for their account, or run it as root.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/infra-puppet/extra-data.d/10-fetch-puppetlabs-deb":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"case $DISTRO in"},{"line_number":8,"context_line":"    \u0027Ubuntu\u0027|\u0027Debian\u0027)"},{"line_number":9,"context_line":"    PUPPET_REPO_DEB\u003d~/.cache/image-create/puppet-repo.deb"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    $TMP_HOOKS_PATH/bin/cache-url http://apt.puppetlabs.com/puppetlabs-release-$DIB_RELEASE.deb $PUPPET_REPO_DEB"},{"line_number":12,"context_line":"    sudo cp $PUPPET_REPO_DEB $TMP_MOUNT_PATH/root/puppet-repo.deb"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAQn%2F%2FPPg%3D","line":9,"updated":"2013-08-04 20:43:03.000000000","message":"The cache url should be unique - that is, do puppet-repo-$DIB_RELEASE.deb. Otherwise building different releases will conflict and break.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    $TMP_HOOKS_PATH/bin/cache-url http://apt.puppetlabs.com/puppetlabs-release-$DIB_RELEASE.deb $PUPPET_REPO_DEB"},{"line_number":12,"context_line":"    sudo cp $PUPPET_REPO_DEB $TMP_MOUNT_PATH/root/puppet-repo.deb"},{"line_number":13,"context_line":"    ;;"},{"line_number":14,"context_line":"esac"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAQn%2F%2FPPc%3D","line":13,"updated":"2013-08-04 20:43:03.000000000","message":"Might want an error on unknown DISTROs.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/infra-puppet/install.d/05-puppet":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":7,"context_line":""},{"line_number":8,"context_line":"# Unset the download cache for this invocation to prevent bleed from build"},{"line_number":9,"context_line":"# host. Also, the next command creates the jenkins user, so making the"},{"line_number":10,"context_line":"# download cache be the normal location would be weird."},{"line_number":11,"context_line":"export PIP_DOWNLOAD_CACHE\u003d"},{"line_number":12,"context_line":"puppet apply --modulepath\u003d/tmp/config/modules:/etc/puppet/modules -e \"class {\u0027openstack_project::slave_template\u0027: }\""}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAQn%2F%2FPPY%3D","line":10,"updated":"2013-08-04 20:43:03.000000000","message":"isn\u0027t \u0027unset PIP_DOWNLOAD_CACHE\u0027 the more usual way? What you have here sets it to \u0027\u0027.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/infra-puppet/pre-install.d/10-preseed":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"d-i iptables-persistent/autosave_done boolean true"},{"line_number":12,"context_line":"d-i iptables-persistent/autosave_v4 boolean false"},{"line_number":13,"context_line":"d-i iptables-persistent/autosave_v6 boolean false"},{"line_number":14,"context_line":"EOF"},{"line_number":15,"context_line":"    debconf-set-selections $PRESEED"},{"line_number":16,"context_line":"    rm $PRESEED"},{"line_number":17,"context_line":"    ;;"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAQn%2F%2FPPU%3D","line":14,"updated":"2013-08-04 20:43:03.000000000","message":"Is this a workaround for the broken maintainer script you told me about on IRC? If so worth a comment I think.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/openstack-repos/README.md":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Download all repos and pacakges that a devstack run might need."}],"source_content_type":"text/x-gfm","patch_set":10,"id":"AAAAQn%2F%2FPPQ%3D","line":1,"updated":"2013-08-04 20:43:03.000000000","message":"Typo.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/openstack-repos/install.d/10-install-packages":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -e"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"install-packages -d `cat /home/jenkins/packages-to-install | sort | uniq`"},{"line_number":5,"context_line":"rm /home/jenkins/packages-to-install"}],"source_content_type":"application/x-shellscript","patch_set":10,"id":"AAAAQn%2F%2FPPE%3D","line":4,"updated":"2013-08-04 20:43:03.000000000","message":"You can just do \u0027sort -u\u0027.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"elements/precache/element-deps":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"puppet"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAAQn%2F%2FlVc%3D","line":1,"updated":"2013-07-27 08:49:49.000000000","message":"missing source-repositories.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/precache/install.d/05-prereqs":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -e"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"install-packages build-essential python-dev linux-headers-virtual linux-headers-`uname -r`"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlWM%3D","line":4,"updated":"2013-07-27 08:49:49.000000000","message":"`uname -r` will DTWT if you are building Fedora on Ubuntu, for instance. linux-headers-generic should DTRT always (and we can map that on Fedora etc).","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/precache/install.d/15-cache-things":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -e"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"mkdir -p /home/jenkins/cache/files"},{"line_number":5,"context_line":"mkdir -p /home/jenkins/cache/pip"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlWI%3D","line":2,"updated":"2013-07-27 08:49:49.000000000","message":"We often set -eu if there are variables in use :).","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"DISTRO\u003d`lsb_release -si`"},{"line_number":11,"context_line":"for branch in `git branch -a | grep \u0027remotes/origin\u0027 | grep -v \u0027-\u003e\u0027` ; do"},{"line_number":12,"context_line":"    git checkout $branch"},{"line_number":13,"context_line":"    for image in `grep IMAGE_URLS stackrc | grep \u003d | cut -f2 -d\\\" | cut -f1`"},{"line_number":14,"context_line":"    do"},{"line_number":15,"context_line":"        ( cd ~/cache/files ; wget -nv -c $image )"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlV0%3D","line":12,"updated":"2013-07-27 08:49:49.000000000","message":"git branch -r --list origin/* | grep -v -\u003e might be a little tidier.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":28,"context_line":"                # We are using BASH regexp matching feature."},{"line_number":29,"context_line":"                package\u003d${BASH_REMATCH[1]}"},{"line_number":30,"context_line":"                distros\u003d${BASH_REMATCH[2]}"},{"line_number":31,"context_line":"                # In bash ${VAR,,} will lowecase VAR"},{"line_number":32,"context_line":"                [[ ${distros,,} \u003d~ ${DISTRO,,} ]] \u0026\u0026 echo $package"},{"line_number":33,"context_line":"                continue"},{"line_number":34,"context_line":"            fi"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlVs%3D","line":31,"updated":"2013-07-27 08:49:49.000000000","message":"typo - lower.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":40,"context_line":"done"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"git checkout master"},{"line_number":43,"context_line":"git reset --hard origin/master"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlVo%3D","line":43,"updated":"2013-07-27 08:49:49.000000000","message":"Why do you reset the repo *after* you install deps from files within it?","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/precache/install.d/95-chown-jenkins":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -e"},{"line_number":3,"context_line":"        "},{"line_number":4,"context_line":"chown -R jenkins:jenkins /home/jenkins"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlVk%3D","line":3,"updated":"2013-07-27 08:49:49.000000000","message":"trailing WS.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/puppet/README.md":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Bootstrap puppet on a node"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAQn%2F%2FlVg%3D","line":1,"updated":"2013-07-27 08:49:49.000000000","message":"We try to include hints like \u0027set foo to bar to make it quux.\u0027 in the docs.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/puppet/install.d/05-puppet":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":3,"context_line":""},{"line_number":4,"context_line":"install-packages git puppet"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"/bin/bash /root/config/install_modules.sh"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"puppet apply --modulepath\u003d/root/config/modules:/etc/puppet/modules -e \"class {\u0027openstack_project::slave_template\u0027: }\""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlVY%3D","line":6,"updated":"2013-07-27 08:49:49.000000000","message":"Where does this come from? The puppet package?","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"elements/puppet/pre-install.d/05-apt-repo":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"88b4dea305fda36c1e9b9c74f185db4ec86ffcca","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#!/bin/bash"},{"line_number":2,"context_line":"set -e"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"/usr/bin/wget http://apt.puppetlabs.com/puppetlabs-release-`lsb_release -c -s`.deb -O /tmp/puppet-repo.deb"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"dpkg -i /tmp/puppet-repo.deb"},{"line_number":7,"context_line":"rm /tmp/puppet-repo.deb"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAQn%2F%2FlVU%3D","line":4,"updated":"2013-07-27 08:49:49.000000000","message":"This should use source-repositories to get the file, if possible. If not perhaps file a bug? Then you can dpkg -i the potentially cached file.","commit_id":"98478a61cec9ef9b8a1f5042a24bea8a0914719d"}],"reboot-image.sh":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":51,"context_line":"apt-get --option \"Dpkg::Options::\u003d--force-confold\" --assume-yes install kexec-tools"},{"line_number":52,"context_line":"sed -i /etc/default/kexec -e s/LOAD_KEXEC\u003dfalse/LOAD_KEXEC\u003dtrue/"},{"line_number":53,"context_line":"kexec -l /vmlinuz --initrd\u003d/initrd.img --append\u003d\"`cat /proc/cmdline`\""},{"line_number":54,"context_line":"nohup bash -c \"sleep 2; kexec -e\" \u003c/dev/null \u003e/dev/null 2\u003e\u00261 \u0026"}],"source_content_type":"text/x-sh","patch_set":10,"id":"AAAAQn%2F%2FPPA%3D","line":54,"updated":"2013-08-04 20:43:03.000000000","message":"This probably needs to live somewhere else eventually. We could make a separate takeovernode repo I guess, or you could update the copy in openstack/tripleo-incubator.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9783ac9caa0290ecd2b1125ca9723c407c45f868","unresolved":false,"context_lines":[{"line_number":51,"context_line":"apt-get --option \"Dpkg::Options::\u003d--force-confold\" --assume-yes install kexec-tools"},{"line_number":52,"context_line":"sed -i /etc/default/kexec -e s/LOAD_KEXEC\u003dfalse/LOAD_KEXEC\u003dtrue/"},{"line_number":53,"context_line":"kexec -l /vmlinuz --initrd\u003d/initrd.img --append\u003d\"`cat /proc/cmdline`\""},{"line_number":54,"context_line":"nohup bash -c \"sleep 2; kexec -e\" \u003c/dev/null \u003e/dev/null 2\u003e\u00261 \u0026"}],"source_content_type":"text/x-sh","patch_set":10,"id":"AAAARX%2F%2F%2F00%3D","line":54,"in_reply_to":"AAAAQn%2F%2FPPA%3D","updated":"2013-08-18 04:37:53.000000000","message":"If we start using this in the gate, it needs to be somewhere there I can gate on changes to it - so I think t-i is the wrong place. Perhaps a takeovernode repo would be the right choice.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}],"unmount-image.sh":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"c5af94ace2602344a587eb695b8825c1a0f7ca7b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"umount /tmp/newimage"},{"line_number":2,"context_line":"qemu-nbd -d /dev/nbd1"}],"source_content_type":"text/x-sh","patch_set":10,"id":"AAAAQn%2F%2FPO8%3D","line":2,"updated":"2013-08-04 20:43:03.000000000","message":"The hardcoding of nbd1 is a bit odd; but then qemu-nbd sucks for scripting use.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"9783ac9caa0290ecd2b1125ca9723c407c45f868","unresolved":false,"context_lines":[{"line_number":1,"context_line":"umount /tmp/newimage"},{"line_number":2,"context_line":"qemu-nbd -d /dev/nbd1"}],"source_content_type":"text/x-sh","patch_set":10,"id":"AAAARX%2F%2F%2F0w%3D","line":2,"in_reply_to":"AAAAQn%2F%2FPO8%3D","updated":"2013-08-18 04:37:53.000000000","message":"Yeah, tell me about it. These mount/unmount scripts are really just convenience anyway.","commit_id":"114d8510a577b578435d7b87af2a837490d34bd7"}]}
