)]}'
{"lib/nova_plugins/hypervisor-docker":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"eabcef473afed797c7d4d4b97a386ea15c4a38c7","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# Set up default directories"},{"line_number":25,"context_line":"DOCKER_DIR\u003d$DEST/docker"},{"line_number":26,"context_line":"DOCKER_REPO\u003d${DOCKER_REPO:-https://github.com/dotcloud/openstack-docker.git}"},{"line_number":27,"context_line":"DOCKER_BRANCH\u003d${DOCKER_BRANCH:-master}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DOCKER_PID_FILE\u003d/var/run/docker.pid"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2B56s%3D","line":26,"updated":"2013-08-10 10:48:49.000000000","message":"I really don\u0027t like making us dependent on an external git repo like this. Can the docker folks get of onto stackforge first? Then we can actually very easily run custom jobs for them in zuul, and integrating with devstack makes more sense.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"09a9d7acfdb11c98d5bd0f5629c7f526a053e27d","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# Set up default directories"},{"line_number":25,"context_line":"DOCKER_DIR\u003d$DEST/docker"},{"line_number":26,"context_line":"DOCKER_REPO\u003d${DOCKER_REPO:-https://github.com/dotcloud/openstack-docker.git}"},{"line_number":27,"context_line":"DOCKER_BRANCH\u003d${DOCKER_BRANCH:-master}"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DOCKER_PID_FILE\u003d/var/run/docker.pid"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F8pY%3D","line":26,"in_reply_to":"AAAAQn%2F%2B56s%3D","updated":"2013-08-12 16:52:37.000000000","message":"I am the maintainer of this external repos. I am completely fine with Stackforge. I\u0027ll ask Monty if I can get a new slot.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"eabcef473afed797c7d4d4b97a386ea15c4a38c7","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DOCKER_PID_FILE\u003d/var/run/docker.pid"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DOCKER_IMAGE\u003dhttp://get.docker.io/images/openstack/docker-ut.tar.gz"},{"line_number":32,"context_line":"DOCKER_IMAGE_NAME\u003ddocker-busybox"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2B56k%3D","line":31,"updated":"2013-08-10 10:48:49.000000000","message":"why does docker need a special image? and what\u0027s so special about it? This looks like basically just busy box, so I\u0027m not really clear why cirros can\u0027t work with it.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"30dcc684970b21c7ec6e6cc76a602d04c50f9ad7","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DOCKER_PID_FILE\u003d/var/run/docker.pid"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DOCKER_IMAGE\u003dhttp://get.docker.io/images/openstack/docker-ut.tar.gz"},{"line_number":32,"context_line":"DOCKER_IMAGE_NAME\u003ddocker-busybox"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F7%2Bw%3D","line":31,"in_reply_to":"AAAAQ3%2F%2F8o4%3D","updated":"2013-08-12 19:18:16.000000000","message":"It would be interesting to see what it would take to use the Cirros filesystem tarball for this...but a good number of the other hypervisors download specific images.  This is here rather than in stackrc as I intend to move the others out like this.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"09a9d7acfdb11c98d5bd0f5629c7f526a053e27d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"DOCKER_PID_FILE\u003d/var/run/docker.pid"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"DOCKER_IMAGE\u003dhttp://get.docker.io/images/openstack/docker-ut.tar.gz"},{"line_number":32,"context_line":"DOCKER_IMAGE_NAME\u003ddocker-busybox"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F8o4%3D","line":31,"in_reply_to":"AAAAQn%2F%2B56k%3D","updated":"2013-08-12 16:52:37.000000000","message":"Docker does not use standard VM images. Docker image are a simple filesystem tar with metadata. This one is a minimal Docker image to run the tests and be able to start containers.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"eabcef473afed797c7d4d4b97a386ea15c4a38c7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"function install_nova_hypervisor() {"},{"line_number":57,"context_line":"    # So far this is Ubuntu only"},{"line_number":58,"context_line":"    if ! is_ubuntu; then"},{"line_number":59,"context_line":"        die $LINENO \"Docker is only supported on Ubuntu at this time\""},{"line_number":60,"context_line":"    fi"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    install_package python-software-properties \u0026\u0026 \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2B56g%3D","line":59,"updated":"2013-08-10 10:48:49.000000000","message":"isn\u0027t even worse, it\u0027s only supported on raring unless you\u0027ve replaced your kernel?","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"09a9d7acfdb11c98d5bd0f5629c7f526a053e27d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"function install_nova_hypervisor() {"},{"line_number":57,"context_line":"    # So far this is Ubuntu only"},{"line_number":58,"context_line":"    if ! is_ubuntu; then"},{"line_number":59,"context_line":"        die $LINENO \"Docker is only supported on Ubuntu at this time\""},{"line_number":60,"context_line":"    fi"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    install_package python-software-properties \u0026\u0026 \\"}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F8ow%3D","line":59,"in_reply_to":"AAAAQn%2F%2B56g%3D","updated":"2013-08-12 16:52:37.000000000","message":"No, support on kernel 3.2 is fine, you just need aufs. Precise is vanilla kernel is ok to use and works just fine.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"eabcef473afed797c7d4d4b97a386ea15c4a38c7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    fi"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    install_package python-software-properties \u0026\u0026 \\"},{"line_number":63,"context_line":"        sudo add-apt-repository -y ppa:dotcloud/lxc-docker"},{"line_number":64,"context_line":"    apt_get update"},{"line_number":65,"context_line":"    install_package lxc-docker"},{"line_number":66,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQn%2F%2B56Y%3D","line":63,"updated":"2013-08-10 10:48:49.000000000","message":"so this is definitely new for us on ubuntu, to install 3rd party repos.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"30dcc684970b21c7ec6e6cc76a602d04c50f9ad7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    fi"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    install_package python-software-properties \u0026\u0026 \\"},{"line_number":63,"context_line":"        sudo add-apt-repository -y ppa:dotcloud/lxc-docker"},{"line_number":64,"context_line":"    apt_get update"},{"line_number":65,"context_line":"    install_package lxc-docker"},{"line_number":66,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F79E%3D","line":63,"in_reply_to":"AAAAQ3%2F%2F8og%3D","updated":"2013-08-12 19:18:16.000000000","message":"This falls somewhere between the \u0027normal\u0027 in-the-distro hypervisor and Xen, which requires its own installation suite in its own OS (dom0) install.","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"09a9d7acfdb11c98d5bd0f5629c7f526a053e27d","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    fi"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    install_package python-software-properties \u0026\u0026 \\"},{"line_number":63,"context_line":"        sudo add-apt-repository -y ppa:dotcloud/lxc-docker"},{"line_number":64,"context_line":"    apt_get update"},{"line_number":65,"context_line":"    install_package lxc-docker"},{"line_number":66,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":3,"id":"AAAAQ3%2F%2F8og%3D","line":63,"in_reply_to":"AAAAQn%2F%2B56Y%3D","updated":"2013-08-12 16:52:37.000000000","message":"Docker package is being added to Debian and it takes time. The alternative to the PPA is to fetch the binary directly and install it \"manually\".","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7e2211b942979965c6b95b5d2055711104e040b6","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        die $LINENO \"Docker registry image unavailable\""},{"line_number":92,"context_line":"    fi"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    start_service docker"},{"line_number":95,"context_line":"    configure_docker"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    # Import fetched images in Docker"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAASX%2F%2F1KU%3D","line":94,"updated":"2013-08-26 20:06:52.000000000","message":"Starting services belongs in start_nova_hypervisor().  If that means the imports need to move thin they need to move too.","commit_id":"69075186a1557c5135307e504f845073fbd278da"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7e2211b942979965c6b95b5d2055711104e040b6","unresolved":false,"context_lines":[{"line_number":101,"context_line":"}"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# configure_docker - Test Docker socket and set the rights if needed"},{"line_number":104,"context_line":"function configure_docker() {"},{"line_number":105,"context_line":"    echo \"Waiting for docker daemon to start...\""},{"line_number":106,"context_line":"    DOCKER_GROUP\u003d$(groups | cut -d\u0027 \u0027 -f1)"},{"line_number":107,"context_line":"    CONFIGURE_CMD\u003d\"while ! /bin/echo -e \u0027GET /v1.3/version HTTP/1.0\\n\\n\u0027 | socat - unix-connect:$DOCKER_UNIX_SOCKET | grep -q \u0027200 OK\u0027; do"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAASX%2F%2F1Og%3D","line":104,"updated":"2013-08-26 20:06:52.000000000","message":"The use of \u0027configure\u0027 in this function name is inconsistent with DevStack\u0027s usage otherwise and should be changed if this work can not be put into start_nova_hypervisor().","commit_id":"69075186a1557c5135307e504f845073fbd278da"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7e2211b942979965c6b95b5d2055711104e040b6","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    CONFIGURE_CMD\u003d\"while ! /bin/echo -e \u0027GET /v1.3/version HTTP/1.0\\n\\n\u0027 | socat - unix-connect:$DOCKER_UNIX_SOCKET | grep -q \u0027200 OK\u0027; do"},{"line_number":108,"context_line":"        # Set the right group on docker unix socket before retrying"},{"line_number":109,"context_line":"        sudo chgrp $DOCKER_GROUP $DOCKER_UNIX_SOCKET"},{"line_number":110,"context_line":"        sudo chmod g+rwx $DOCKER_UNIX_SOCKET"},{"line_number":111,"context_line":"        sleep 1"},{"line_number":112,"context_line":"    done\""},{"line_number":113,"context_line":"    if ! timeout $SERVICE_TIMEOUT sh -c \"$CONFIGURE_CMD\"; then"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAASX%2F%2F0iA%3D","line":110,"updated":"2013-08-26 20:06:52.000000000","message":"g+rw","commit_id":"69075186a1557c5135307e504f845073fbd278da"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7e2211b942979965c6b95b5d2055711104e040b6","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    configure_docker"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"    # Start a registry container"},{"line_number":124,"context_line":"    docker run -d -p ${DOCKER_REGISTRY_PORT}:5000 \\"},{"line_number":125,"context_line":"        -e SETTINGS_FLAVOR\u003dopenstack -e OS_USERNAME\u003d${OS_USERNAME} \\"},{"line_number":126,"context_line":"        -e OS_PASSWORD\u003d${OS_PASSWORD} -e OS_TENANT_NAME\u003d${OS_TENANT_NAME} \\"},{"line_number":127,"context_line":"        -e OS_GLANCE_URL\u003d\"http://${GLANCE_HOSTPORT}\" \\"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAASX%2F%2F1M8%3D","line":124,"updated":"2013-08-26 20:06:52.000000000","message":"Will this fail cleanly if the container is already running?","commit_id":"69075186a1557c5135307e504f845073fbd278da"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"7e2211b942979965c6b95b5d2055711104e040b6","unresolved":false,"context_lines":[{"line_number":143,"context_line":""},{"line_number":144,"context_line":"# stop_nova_hypervisor - Stop any external services"},{"line_number":145,"context_line":"function stop_nova_hypervisor() {"},{"line_number":146,"context_line":"    stop_service docker"},{"line_number":147,"context_line":"}"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAASX%2F%2F1NU%3D","line":146,"updated":"2013-08-26 20:06:52.000000000","message":"The registry container needs to be shut down here","commit_id":"69075186a1557c5135307e504f845073fbd278da"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"7121eaab6bb4d8b46943e2987959429e2f39ceca","unresolved":false,"context_lines":[{"line_number":45,"context_line":"# ------------"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"# clean_nova_hypervisor - Clean up an installation"},{"line_number":48,"context_line":"function cleanup_nova_hypervisor() {"},{"line_number":49,"context_line":"    stop_service docker"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    # Clean out work area"}],"source_content_type":"application/octet-stream","patch_set":12,"id":"AAAASn%2F%2F1S8%3D","line":48,"updated":"2013-08-29 02:04:48.000000000","message":"This is called by cleanup_nova, which is called in stack.sh right before configuring it. It looks cleanup is here to cleanup some temporary files after a normal install. The result here is that gets killed and images cleaned up after running stack.sh","commit_id":"13fd1e36f234b4711654e4ac81eb2fb4b0b98583"}],"tools/docker/install_docker.sh":[{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"24b0fd42c9c09cb1e3fdf9cb6cf8f8cf9482e513","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# Set up admin creds based on stack.sh defaults"},{"line_number":29,"context_line":"export OS_AUTH_URL\u003d$SERVICE_ENDPOINT"},{"line_number":30,"context_line":"export OS_TENANT_NAME\u003dadmin"},{"line_number":31,"context_line":"export OS_USERNAME\u003dadmin"},{"line_number":32,"context_line":"export OS_PASSWORD\u003d$ADMIN_PASSWORD"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAASn%2F%2F6rI%3D","line":29,"updated":"2013-08-28 00:21:45.000000000","message":"SERVICE_ENDPOINT is not set","commit_id":"1932631439af712511079220fa0d9ddbe4864415"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"24b0fd42c9c09cb1e3fdf9cb6cf8f8cf9482e513","unresolved":false,"context_lines":[{"line_number":86,"context_line":"docker run -d -p ${DOCKER_REGISTRY_PORT}:5000 \\"},{"line_number":87,"context_line":"    -e SETTINGS_FLAVOR\u003dopenstack -e OS_USERNAME\u003d${OS_USERNAME} \\"},{"line_number":88,"context_line":"    -e OS_PASSWORD\u003d${OS_PASSWORD} -e OS_TENANT_NAME\u003d${OS_TENANT_NAME} \\"},{"line_number":89,"context_line":"    -e OS_GLANCE_URL\u003d\"${SERVICE_PROTOCOL}://${GLANCE_HOSTPORT}\" \\"},{"line_number":90,"context_line":"    -e OS_AUTH_URL\u003d${OS_AUTH_URL} \\"},{"line_number":91,"context_line":"    $DOCKER_REGISTRY_IMAGE_NAME ./docker-registry/run.sh"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAASn%2F%2F6qw%3D","line":89,"updated":"2013-08-28 00:21:45.000000000","message":"SERVICE_PROTOCOL is not set","commit_id":"1932631439af712511079220fa0d9ddbe4864415"},{"author":{"_account_id":7838,"name":"Sam Alba","email":"sam.alba@gmail.com","username":"samalba"},"change_message_id":"24b0fd42c9c09cb1e3fdf9cb6cf8f8cf9482e513","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    $DOCKER_REGISTRY_IMAGE_NAME ./docker-registry/run.sh"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"echo \"Waiting for docker registry to start...\""},{"line_number":94,"context_line":"DOCKER_REGISTRY\u003d${SERVICE_HOST}:${DOCKER_REGISTRY_PORT}"},{"line_number":95,"context_line":"if ! timeout $SERVICE_TIMEOUT sh -c \"while ! curl -s $DOCKER_REGISTRY; do sleep 1; done\"; then"},{"line_number":96,"context_line":"    die $LINENO \"docker-registry did not start\""},{"line_number":97,"context_line":"fi"}],"source_content_type":"text/x-sh","patch_set":11,"id":"AAAASn%2F%2F6q0%3D","line":94,"updated":"2013-08-28 00:21:45.000000000","message":"SERVICE_HOST is not set","commit_id":"1932631439af712511079220fa0d9ddbe4864415"}],"unstack.sh":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"eabcef473afed797c7d4d4b97a386ea15c4a38c7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"if is_service_enabled nova \u0026\u0026 [[ -r $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER ]]; then"},{"line_number":71,"context_line":"    # Load plugin"},{"line_number":72,"context_line":"    source $NOVA_PLUGINS/hypervisor-$VIRT_DRIVER"},{"line_number":73,"context_line":"\tstop_nova_hypervisor"},{"line_number":74,"context_line":"fi"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"# Swift runs daemons"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAQn%2F%2B56U%3D","line":73,"updated":"2013-08-10 10:48:49.000000000","message":"hard tab","commit_id":"ec7a888027fbd79dd14eeaa61dc1d0d7a79c8386"}]}
