Merge "Make screen_service() useful for more than services"
diff --git a/HACKING.rst b/HACKING.rst
index d69bb49..3b86529 100644
--- a/HACKING.rst
+++ b/HACKING.rst
@@ -10,8 +10,8 @@
 Shell script was chosen because it best illustrates the steps used to
 set up and interact with OpenStack components.
 
-DevStack's official repository is located on GitHub at
-https://github.com/openstack-dev/devstack.git.  Besides the master branch that
+DevStack's official repository is located on git.openstack.org at
+https://git.openstack.org/openstack-dev/devstack.  Besides the master branch that
 tracks the OpenStack trunk branches a separate branch is maintained for all
 OpenStack releases starting with Diablo (stable/diablo).
 
diff --git a/MAINTAINERS.rst b/MAINTAINERS.rst
index d754c08..d55135d 100644
--- a/MAINTAINERS.rst
+++ b/MAINTAINERS.rst
@@ -48,7 +48,7 @@
 OpenDaylight
 ~~~~~~~~~~~~
 
-* Kyle Mestery <kmestery@cisco.com>
+* Kyle Mestery <mestery@mestery.com>
 
 OpenFlow Agent (ofagent)
 ~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/doc/source/assets/css/local.css b/doc/source/assets/css/local.css
index 5c703af..c8667c4 100644
--- a/doc/source/assets/css/local.css
+++ b/doc/source/assets/css/local.css
@@ -71,7 +71,7 @@
 	margin-bottom: 14px;
 }
 
-li#github {
+li#git {
 	background-position: left -70px !important;
 	height: 61px;
 	padding: ;
@@ -119,4 +119,4 @@
 
 .wat {
 	margin-top: 33px;
-}
\ No newline at end of file
+}
diff --git a/doc/source/assets/images/quickstart.png b/doc/source/assets/images/quickstart.png
index 5400a6f..735617b 100644
--- a/doc/source/assets/images/quickstart.png
+++ b/doc/source/assets/images/quickstart.png
Binary files differ
diff --git a/doc/source/changes.html b/doc/source/changes.html
index 966b0c9..028e1cf 100644
--- a/doc/source/changes.html
+++ b/doc/source/changes.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/configuration.html b/doc/source/configuration.html
index 044bafc..88d7476 100644
--- a/doc/source/configuration.html
+++ b/doc/source/configuration.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/contributing.html b/doc/source/contributing.html
index f3d4b5a..9826fc7 100644
--- a/doc/source/contributing.html
+++ b/doc/source/contributing.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -52,7 +52,7 @@
           <h3>Things To Know</h3>
 
           <br /><strong>Where Things Are</strong>
-          <p>The official DevStack repository is located at <code>git://github.com/openstack-dev/devstack.git</code> and <code>git://git.openstack.org/openstack-dev/devstack.git</code>, both mirrors of the official repo maintained by Gerrit.</p>
+          <p>The official DevStack repository is located at <code>git://git.openstack.org/openstack-dev/devstack.git</code>, replicated from the repo maintained by Gerrit. GitHub also has a mirror at <code>git://github.com/openstack-dev/devstack.git</code>.</p>
           <p>The <a href="https://blueprints.launchpad.net/devstack">blueprint</a> and <a href="https://bugs.launchpad.net/devstack">bug trackers</a> are on Launchpad.  It should be noted that DevStack generally does not use these as strongly as other projects, but we're trying to change that.</p>
           <p>The <a href="https://review.openstack.org/#/q/project:openstack-dev/devstack,n,z">Gerrit review queue</a> is, however, used for all commits except for the text of this website.  That should also change in the near future.</p>
 
diff --git a/doc/source/eucarc.html b/doc/source/eucarc.html
index df52972..1dd8096 100644
--- a/doc/source/eucarc.html
+++ b/doc/source/eucarc.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/exerciserc.html b/doc/source/exerciserc.html
index 7e4dd54..313b0a1 100644
--- a/doc/source/exerciserc.html
+++ b/doc/source/exerciserc.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/faq.html b/doc/source/faq.html
index 2c74a66..7cbb9d2 100644
--- a/doc/source/faq.html
+++ b/doc/source/faq.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -73,7 +73,7 @@
             <dd>A: DevStack is optimized for documentation &amp; developers.  As some of us use <a href="https://github.com/dellcloudedge/crowbar">Crowbar</a> for production deployments, we hope developers documenting how they setup systems for new features supports projects like Crowbar.</dd>
 
             <dt>Q: I'd like to help!</dt>
-            <dd>A: That isn't a question, but please do!  The source for DevStack is <a href="http://github.com/openstack-dev/devstack">github</a> and bug reports go to <a href="http://bugs.launchpad.net/devstack/">LaunchPad</a>.  Contributions follow the usual process as described in the <a href="http://wiki.openstack.org/HowToContribute">OpenStack wiki</a> even though DevStack is not an official OpenStack project.  This site is housed in the CloudBuilder's <a href="http://github.com/cloudbuilders/devstack">github</a> in the gh-pages branch.</dd>
+            <dd>A: That isn't a question, but please do!  The source for DevStack is at <a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a> and bug reports go to <a href="http://bugs.launchpad.net/devstack/">LaunchPad</a>.  Contributions follow the usual process as described in the <a href="http://wiki.openstack.org/HowToContribute">OpenStack wiki</a> even though DevStack is not an official OpenStack project.  This site is housed in the CloudBuilder's <a href="http://github.com/cloudbuilders/devstack">github</a> in the gh-pages branch.</dd>
 
             <dt>Q: Why not use packages?</dt>
             <dd>A: Unlike packages, DevStack leaves your cloud ready to develop - checkouts of the code and services running in screen. However, many people are doing the hard work of packaging and recipes for production deployments.  We hope this script serves as a way to communicate configuration changes between developers and packagers.</dd>
diff --git a/doc/source/guides/multinode-lab.html b/doc/source/guides/multinode-lab.html
index 62232ef..6a5f98c 100644
--- a/doc/source/guides/multinode-lab.html
+++ b/doc/source/guides/multinode-lab.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -129,8 +129,8 @@
 echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyYjfgyPazTvGpd8OaAvtU2utL8W6gWC4JdRS1J95GhNNfQd657yO6s1AH5KYQWktcE6FO/xNUC2reEXSGC7ezy+sGO1kj9Limv5vrvNHvF1+wts0Cmyx61D2nQw35/Qz8BvpdJANL7VwP/cFI/p3yhvx2lsnjFE3hN8xRB2LtLUopUSVdBwACOVUmH2G+2BWMJDjVINd2DPqRIA4Zhy09KJ3O1Joabr0XpQL0yt/I9x8BVHdAx6l9U0tMg9dj5+tAjZvMAFfye3PJcYwwsfJoFxC8w/SLtqlFX7Ehw++8RtvomvuipLdmWCy+T9hIkl+gHYE4cS3OIqXH7f49jdJf jesse@spacey.local" > ~/.ssh/authorized_keys</pre>
 
         <h3>Download DevStack</h3>
-        <p>Grab the latest version of DevStack from github:</p>
-        <pre>git clone https://github.com/openstack-dev/devstack.git
+        <p>Grab the latest version of DevStack:</p>
+        <pre>git clone https://git.openstack.org/openstack-dev/devstack
 cd devstack</pre>
 
         <p>Up to this point all of the steps apply to each node in the cluster.  From here on
diff --git a/doc/source/guides/pxe-boot.html b/doc/source/guides/pxe-boot.html
index 4dc61a3..d52b25f 100644
--- a/doc/source/guides/pxe-boot.html
+++ b/doc/source/guides/pxe-boot.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/guides/ramdisk.html b/doc/source/guides/ramdisk.html
index eaef16e..23239e2 100644
--- a/doc/source/guides/ramdisk.html
+++ b/doc/source/guides/ramdisk.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -74,7 +74,7 @@
         <h3>Install DevStack</h3>
         <p>Grab the latest version of DevStack via https:</p>
 		<pre>sudo apt-get install git -y
-git clone https://github.com/openstack-dev/devstack.git
+git clone https://git.openstack.org/openstack-dev/devstack
 cd devstack</pre>
 
         <h3>Prepare the Boot RAMdisk</h3>
diff --git a/doc/source/guides/single-machine.html b/doc/source/guides/single-machine.html
index 9471972..06cc981 100644
--- a/doc/source/guides/single-machine.html
+++ b/doc/source/guides/single-machine.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -79,7 +79,7 @@
         <h3>Download DevStack</h3>
         <p>We'll grab the latest version of DevStack via https:</p>
         <pre>sudo apt-get install git -y || yum install -y git
-git clone https://github.com/openstack-dev/devstack.git
+git clone https://git.openstack.org/openstack-dev/devstack
 cd devstack</pre>
 
         <h3>Run DevStack</h3>
diff --git a/doc/source/guides/single-vm.html b/doc/source/guides/single-vm.html
index 2f1990a..d189319 100644
--- a/doc/source/guides/single-vm.html
+++ b/doc/source/guides/single-vm.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -96,7 +96,7 @@
         DEBIAN_FRONTEND=noninteractive sudo apt-get install -qqy git || sudo yum install -qy git
         sudo chown stack:stack /home/stack
         cd /home/stack
-        git clone https://github.com/openstack-dev/devstack.git
+        git clone https://git.openstack.org/openstack-dev/devstack
         cd devstack
         echo '[[local|localrc]]' > local.conf
         echo ADMIN_PASSWORD=password >> local.conf
diff --git a/doc/source/guides/usb-boot.html b/doc/source/guides/usb-boot.html
index 75adc6f..2a05f89 100644
--- a/doc/source/guides/usb-boot.html
+++ b/doc/source/guides/usb-boot.html
@@ -34,7 +34,7 @@
             <li><a href="../overview.html">Overview</a></li>
             <li><a href="../changes.html">Changes</a></li>
             <li><a href="../faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/index.html b/doc/source/index.html
index dada57d..5f1efd7 100644
--- a/doc/source/index.html
+++ b/doc/source/index.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
@@ -55,9 +55,9 @@
         <div class="pull-left">
           <ol id="getting_started">
             <li id="ubuntu">Setup a fresh supported Linux installation.</li>
-            <li id="github">
-              Clone devstack from devstack.
-              <pre>git clone https://github.com/openstack-dev/devstack.git</pre>
+            <li id="git">
+              Clone devstack from git.openstack.org.
+              <pre>git clone https://git.openstack.org/openstack-dev/devstack</pre>
             </li>
             <li id="install">
               Deploy your OpenStack Cloud
@@ -84,7 +84,7 @@
             </li>
             <li>
               <h3>Download DevStack</h3>
-              <pre>git clone https://github.com/openstack-dev/devstack.git</pre>
+              <pre>git clone https://git.openstack.org/openstack-dev/devstack</pre>
               <p>The <code>devstack</code> repo contains a script that installs OpenStack and templates for configuration files</p>
             </li>
             <li>
diff --git a/doc/source/local.conf.html b/doc/source/local.conf.html
index ed53adf..2635ac6 100644
--- a/doc/source/local.conf.html
+++ b/doc/source/local.conf.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/localrc.html b/doc/source/localrc.html
index 0f669bd..40a2004 100644
--- a/doc/source/localrc.html
+++ b/doc/source/localrc.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/openrc.html b/doc/source/openrc.html
index da6697f..94b253d 100644
--- a/doc/source/openrc.html
+++ b/doc/source/openrc.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/overview.html b/doc/source/overview.html
index baee400..9cee052 100644
--- a/doc/source/overview.html
+++ b/doc/source/overview.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/plugins.html b/doc/source/plugins.html
index 3327128..700a209 100644
--- a/doc/source/plugins.html
+++ b/doc/source/plugins.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/doc/source/stackrc.html b/doc/source/stackrc.html
index d83fbc1..2df9d38 100644
--- a/doc/source/stackrc.html
+++ b/doc/source/stackrc.html
@@ -34,7 +34,7 @@
             <li><a href="overview.html">Overview</a></li>
             <li><a href="changes.html">Changes</a></li>
             <li><a href="faq.html">FAQ</a></li>
-            <li><a href="http://github.com/openstack-dev/devstack">GitHub</a></li>
+            <li><a href="https://git.openstack.org/cgit/openstack-dev/devstack">git.openstack.org</a></li>
             <li><a href="https://review.openstack.org/#/q/status:open+project:openstack-dev/devstack,n,z">Gerrit</a></li>
           </ul>
         </div>
diff --git a/files/apts/general b/files/apts/general
index c308c46..3fe7863 100644
--- a/files/apts/general
+++ b/files/apts/general
@@ -27,3 +27,4 @@
 libyaml-dev
 libffi-dev
 libssl-dev # for pyOpenSSL
+gettext  # used for compiling message catalogs
diff --git a/files/rpms/general b/files/rpms/general
index 7a35961..d4a9fcb 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -26,6 +26,7 @@
 which
 bc
 libyaml-devel
+gettext  # used for compiling message catalogs
 
 # [1] : some of installed tools have unversioned dependencies on this,
 # but others have versioned (<=0.7).  So if a later version (0.7.1)
diff --git a/lib/ceilometer b/lib/ceilometer
index c997de7..9046b9d 100644
--- a/lib/ceilometer
+++ b/lib/ceilometer
@@ -155,6 +155,11 @@
     iniset $CEILOMETER_CONF DEFAULT verbose True
     iniset $CEILOMETER_CONF DEFAULT debug "$ENABLE_DEBUG_LOG_LEVEL"
 
+    if [[ -n "$CEILOMETER_COORDINATION_URL" ]]; then
+        iniset $CEILOMETER_CONF coordination backend_url $CEILOMETER_COORDINATION_URL
+        iniset $CEILOMETER_CONF compute workload_partitioning True
+    fi
+
     # Install the policy file for the API server
     cp $CEILOMETER_DIR/etc/ceilometer/policy.json $CEILOMETER_CONF_DIR
     iniset $CEILOMETER_CONF DEFAULT policy_file $CEILOMETER_CONF_DIR/policy.json
@@ -177,7 +182,7 @@
     configure_auth_token_middleware $CEILOMETER_CONF ceilometer $CEILOMETER_AUTH_CACHE_DIR
 
     if [ "$CEILOMETER_BACKEND" = 'mysql' ] || [ "$CEILOMETER_BACKEND" = 'postgresql' ] ; then
-        iniset $CEILOMETER_CONF database connection `database_connection_url ceilometer`
+        iniset $CEILOMETER_CONF database connection $(database_connection_url ceilometer)
         iniset $CEILOMETER_CONF DEFAULT collector_workers $API_WORKERS
     else
         iniset $CEILOMETER_CONF database connection mongodb://localhost:27017/ceilometer
@@ -242,6 +247,9 @@
     git_clone $CEILOMETER_REPO $CEILOMETER_DIR $CEILOMETER_BRANCH
     setup_develop $CEILOMETER_DIR
 
+    if echo $CEILOMETER_COORDINATION_URL | grep -q '^memcached:'; then
+        install_package memcached
+    fi
 }
 
 # install_ceilometerclient() - Collect source and prepare
diff --git a/lib/horizon b/lib/horizon
index 755be18..0213948 100644
--- a/lib/horizon
+++ b/lib/horizon
@@ -84,6 +84,14 @@
 # configure_horizon() - Set config files, create data dirs, etc
 function configure_horizon {
     setup_develop $HORIZON_DIR
+
+    # Compile message catalogs.
+    # Horizon is installed as develop mode, so we can compile here.
+    # Message catalog compilation is handled by Django admin script,
+    # so compiling them after the installation avoids Django installation twice.
+    cd $HORIZON_DIR
+    ./run_tests.sh -N --compilemessages
+    cd -
 }
 
 # init_horizon() - Initialize databases, etc.
@@ -138,6 +146,13 @@
 # install_django_openstack_auth() - Collect source and prepare
 function install_django_openstack_auth {
     git_clone $HORIZONAUTH_REPO $HORIZONAUTH_DIR $HORIZONAUTH_BRANCH
+
+    # Compile message catalogs before installation
+    _prepare_message_catalog_compilation
+    cd $HORIZONAUTH_DIR
+    python setup.py compile_catalog
+    cd -
+
     setup_install $HORIZONAUTH_DIR
 }
 
@@ -160,6 +175,13 @@
     stop_apache_server
 }
 
+# NOTE: It can be moved to common functions, but it is only used by compilation
+# of django_openstack_auth catalogs at the moment.
+function _prepare_message_catalog_compilation {
+    local babel_package=$(grep ^Babel $REQUIREMENTS_DIR/global-requirements.txt)
+    pip_install "$babel_package"
+}
+
 
 # Restore xtrace
 $XTRACE
diff --git a/lib/neutron b/lib/neutron
index 2253eda..ca9b16c 100644
--- a/lib/neutron
+++ b/lib/neutron
@@ -148,16 +148,31 @@
 # If Q_USE_PROVIDERNET_FOR_PUBLIC=True, use a flat provider network
 # for external interface of neutron l3-agent.  In that case,
 # PUBLIC_PHYSICAL_NETWORK specifies provider:physical_network value
-# used for the network.  In case of openvswitch agent, you should
-# add the corresponding entry to your OVS_BRIDGE_MAPPINGS.
+# used for the network.  In case of ofagent, you should add the
+# corresponding entry to your OFAGENT_PHYSICAL_INTERFACE_MAPPINGS.
+# For openvswitch agent, you should add the corresponding entry to
+# your OVS_BRIDGE_MAPPINGS.
 #
-# eg.
+# eg.  (ofagent)
+#    Q_USE_PROVIDERNET_FOR_PUBLIC=True
+#    Q_USE_PUBLIC_VETH=True
+#    PUBLIC_PHYSICAL_NETWORK=public
+#    OFAGENT_PHYSICAL_INTERFACE_MAPPINGS=public:veth-pub-int
+#
+# eg.  (openvswitch agent)
 #    Q_USE_PROVIDERNET_FOR_PUBLIC=True
 #    PUBLIC_PHYSICAL_NETWORK=public
 #    OVS_BRIDGE_MAPPINGS=public:br-ex
 Q_USE_PROVIDERNET_FOR_PUBLIC=${Q_USE_PROVIDERNET_FOR_PUBLIC:-False}
 PUBLIC_PHYSICAL_NETWORK=${PUBLIC_PHYSICAL_NETWORK:-public}
 
+# If Q_USE_PUBLIC_VETH=True, create and use a veth pair instead of
+# PUBLIC_BRIDGE.  This is intended to be used with
+# Q_USE_PROVIDERNET_FOR_PUBLIC=True.
+Q_USE_PUBLIC_VETH=${Q_USE_PUBLIC_VETH:-False}
+Q_PUBLIC_VETH_EX=${Q_PUBLIC_VETH_EX:-veth-pub-ex}
+Q_PUBLIC_VETH_INT=${Q_PUBLIC_VETH_INT:-veth-pub-int}
+
 # The next two variables are configured by plugin
 # e.g.  _configure_neutron_l3_agent or lib/neutron_plugins/*
 #
@@ -543,12 +558,20 @@
         if is_service_enabled q-l3; then
             # logic is specific to using the l3-agent for l3
             if is_neutron_ovs_base_plugin && [[ "$Q_USE_NAMESPACE" = "True" ]]; then
-                # Disable in-band as we are going to use local port
-                # to communicate with VMs
-                sudo ovs-vsctl set Bridge $PUBLIC_BRIDGE other_config:disable-in-band=true
+                local ext_gw_interface
+
+                if [[ "$Q_USE_PUBLIC_VETH" = "True" ]]; then
+                    ext_gw_interface=$Q_PUBLIC_VETH_EX
+                else
+                    # Disable in-band as we are going to use local port
+                    # to communicate with VMs
+                    sudo ovs-vsctl set Bridge $PUBLIC_BRIDGE \
+                        other_config:disable-in-band=true
+                    ext_gw_interface=$PUBLIC_BRIDGE
+                fi
                 CIDR_LEN=${FLOATING_RANGE#*/}
-                sudo ip addr add $EXT_GW_IP/$CIDR_LEN dev $PUBLIC_BRIDGE
-                sudo ip link set $PUBLIC_BRIDGE up
+                sudo ip addr add $EXT_GW_IP/$CIDR_LEN dev $ext_gw_interface
+                sudo ip link set $ext_gw_interface up
                 ROUTER_GW_IP=`neutron port-list -c fixed_ips -c device_owner | grep router_gateway | awk -F '"' '{ print $8; }'`
                 die_if_not_set $LINENO ROUTER_GW_IP "Failure retrieving ROUTER_GW_IP"
                 sudo route add -net $FIXED_RANGE gw $ROUTER_GW_IP
diff --git a/lib/neutron_plugins/cisco b/lib/neutron_plugins/cisco
index 1406e37..95e0ab3 100644
--- a/lib/neutron_plugins/cisco
+++ b/lib/neutron_plugins/cisco
@@ -82,6 +82,7 @@
 }
 
 function neutron_plugin_configure_debug_command {
+    :
 }
 
 function neutron_plugin_configure_dhcp_agent {
@@ -89,6 +90,7 @@
 }
 
 function neutron_plugin_configure_l3_agent {
+    :
 }
 
 # Configure n1kv plugin
@@ -111,6 +113,7 @@
 }
 
 function neutron_plugin_configure_plugin_agent {
+    :
 }
 
 function neutron_plugin_configure_service {
diff --git a/lib/neutron_plugins/ofagent_agent b/lib/neutron_plugins/ofagent_agent
index a5a58f4..1c04f2f 100644
--- a/lib/neutron_plugins/ofagent_agent
+++ b/lib/neutron_plugins/ofagent_agent
@@ -77,6 +77,10 @@
     if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
         iniset /$Q_PLUGIN_CONF_FILE ovs bridge_mappings $OVS_BRIDGE_MAPPINGS
     fi
+    if [[ "$OFAGENT_PHYSICAL_INTERFACE_MAPPINGS" != "" ]]; then
+        iniset /$Q_PLUGIN_CONF_FILE agent physical_interface_mappings \
+            $OFAGENT_PHYSICAL_INTERFACE_MAPPINGS
+    fi
     AGENT_BINARY="$NEUTRON_BIN_DIR/neutron-ofagent-agent"
 
     iniset /$Q_PLUGIN_CONF_FILE agent tunnel_types $Q_TUNNEL_TYPES
diff --git a/lib/neutron_plugins/ovs_base b/lib/neutron_plugins/ovs_base
index d913f7c..f0ef194 100644
--- a/lib/neutron_plugins/ovs_base
+++ b/lib/neutron_plugins/ovs_base
@@ -79,11 +79,20 @@
     fi
 
     neutron-ovs-cleanup
-    # --no-wait causes a race condition if $PUBLIC_BRIDGE is not up when ip addr flush is called
-    sudo ovs-vsctl -- --may-exist add-br $PUBLIC_BRIDGE
-    sudo ovs-vsctl br-set-external-id $PUBLIC_BRIDGE bridge-id $PUBLIC_BRIDGE
-    # ensure no IP is configured on the public bridge
-    sudo ip addr flush dev $PUBLIC_BRIDGE
+    if [[ "$Q_USE_PUBLIC_VETH" = "True" ]]; then
+        ip link show $Q_PUBLIC_VETH_INT > /dev/null 2>&1 ||
+        sudo ip link add $Q_PUBLIC_VETH_INT type veth \
+            peer name $Q_PUBLIC_VETH_EX
+        sudo ip link set $Q_PUBLIC_VETH_INT up
+        sudo ip link set $Q_PUBLIC_VETH_EX up
+        sudo ip addr flush dev $Q_PUBLIC_VETH_EX
+    else
+        # --no-wait causes a race condition if $PUBLIC_BRIDGE is not up when ip addr flush is called
+        sudo ovs-vsctl -- --may-exist add-br $PUBLIC_BRIDGE
+        sudo ovs-vsctl br-set-external-id $PUBLIC_BRIDGE bridge-id $PUBLIC_BRIDGE
+        # ensure no IP is configured on the public bridge
+        sudo ip addr flush dev $PUBLIC_BRIDGE
+    fi
 }
 
 function _neutron_ovs_base_configure_nova_vif_driver {
diff --git a/lib/opendaylight b/lib/opendaylight
index cc29deb..374de95 100644
--- a/lib/opendaylight
+++ b/lib/opendaylight
@@ -48,10 +48,10 @@
 ODL_DIR=$DEST/opendaylight
 
 # The OpenDaylight Package, currently using 'Hydrogen' release
-ODL_PKG=${ODL_PKG:-distributions-virtualization-0.1.1-osgipackage.zip}
+ODL_PKG=${ODL_PKG:-distribution-karaf-0.2.0-Helium.zip}
 
 # The OpenDaylight URL
-ODL_URL=${ODL_URL:-https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distributions-virtualization/0.1.1}
+ODL_URL=${ODL_URL:-https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.2.0-Helium}
 
 # Default arguments for OpenDaylight. This is typically used to set
 # Java memory options.
@@ -59,11 +59,14 @@
 ODL_ARGS=${ODL_ARGS:-"-XX:MaxPermSize=384m"}
 
 # How long to pause after ODL starts to let it complete booting
-ODL_BOOT_WAIT=${ODL_BOOT_WAIT:-60}
+ODL_BOOT_WAIT=${ODL_BOOT_WAIT:-20}
 
 # The physical provider network to device mapping
 ODL_PROVIDER_MAPPINGS=${ODL_PROVIDER_MAPPINGS:-physnet1:eth1}
 
+# Enable OpenDaylight l3 forwarding
+ODL_L3=${ODL_L3:-False}
+
 
 # Entry Points
 # ------------
@@ -83,11 +86,26 @@
 
 # configure_opendaylight() - Set config files, create data dirs, etc
 function configure_opendaylight {
-    # Remove simple forwarder
-    rm -f $ODL_DIR/opendaylight/plugins/org.opendaylight.controller.samples.simpleforwarding*
+    # Add odl-ovsdb-openstack if it's not already there
+    local ODLOVSDB=$(cat $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/org.apache.karaf.features.cfg | grep featuresBoot= | grep odl)
+    if [ "$ODLOVSDB" == "" ]; then
+        sed -i '/^featuresBoot=/ s/$/,odl-ovsdb-openstack/' $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/org.apache.karaf.features.cfg
+    fi
 
-    # Configure OpenFlow 1.3
-    echo "ovsdb.of.version=1.3" >> $ODL_DIR/opendaylight/configuration/config.ini
+    # Configure OpenFlow 1.3 if it's not there
+    local OFLOW13=$(cat $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/custom.properties | grep ^of.version)
+    if [ "$OFLOW13" == "" ]; then
+        echo "ovsdb.of.version=1.3" >> $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/custom.properties
+    fi
+
+    # Configure L3 if the user wants it
+    if [ "${ODL_L3}" == "True" ]; then
+        # Configure L3 FWD if it's not there
+        local L3FWD=$(cat $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/custom.properties | grep ^ovsdb.l3.fwd.enabled)
+        if [ "$L3FWD" == "" ]; then
+            echo "ovsdb.l3.fwd.enabled=yes" >> $ODL_DIR/distribution-karaf-0.2.0-Helium/etc/custom.properties
+        fi
+    fi
 }
 
 function configure_ml2_odl {
@@ -138,9 +156,7 @@
     #   -of13: runs ODL using OpenFlow 1.3 protocol support.
     #   -virt ovsdb: Runs ODL in "virtualization" mode with OVSDB support
 
-    # NOTE(chdent): Leaving this as screen_it instead of run_process until
-    # the right thing for this service is determined.
-    screen_it odl-server "cd $ODL_DIR/opendaylight && JAVA_HOME=$JHOME ./run.sh $ODL_ARGS -of13 -virt ovsdb"
+    run_process odl-server "cd $ODL_DIR/distribution-karaf-0.2.0-Helium && JAVA_HOME=$JHOME bin/karaf"
 
     # Sleep a bit to let OpenDaylight finish starting up
     sleep $ODL_BOOT_WAIT
diff --git a/lib/tempest b/lib/tempest
index d677c7e..3c37918 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -64,8 +64,10 @@
 
 # Cinder/Volume variables
 TEMPEST_VOLUME_DRIVER=${TEMPEST_VOLUME_DRIVER:-default}
-TEMPEST_VOLUME_VENDOR=${TEMPEST_VOLUME_VENDOR:-"Open Source"}
-TEMPEST_STORAGE_PROTOCOL=${TEMPEST_STORAGE_PROTOCOL:-iSCSI}
+TEMPEST_DEFAULT_VOLUME_VENDOR="Open Source"
+TEMPEST_VOLUME_VENDOR=${TEMPEST_VOLUME_VENDOR:-$TEMPEST_DEFAULT_VOLUME_VENDOR}
+TEMPEST_DEFAULT_STORAGE_PROTOCOL="iSCSI"
+TEMPEST_STORAGE_PROTOCOL=${TEMPEST_STORAGE_PROTOCOL:-$TEMPEST_DEFAULT_STORAGE_PROTOCOL}
 
 # Neutron/Network variables
 IPV6_ENABLED=$(trueorfalse True $IPV6_ENABLED)
@@ -369,8 +371,12 @@
         iniset $TEMPEST_CONFIG volume backend2_name "LVM_iSCSI_2"
     fi
 
-    if [ $TEMPEST_VOLUME_DRIVER != "default" ]; then
+    if [ $TEMPEST_VOLUME_DRIVER != "default" -o \
+        $TEMPEST_VOLUME_VENDOR != $TEMPEST_DEFAULT_VOLUME_VENDOR ]; then
         iniset $TEMPEST_CONFIG volume vendor_name "$TEMPEST_VOLUME_VENDOR"
+    fi
+    if [ $TEMPEST_VOLUME_DRIVER != "default" -o \
+        $TEMPEST_STORAGE_PROTOCOL != $TEMPEST_DEFAULT_STORAGE_PROTOCOL ]; then
         iniset $TEMPEST_CONFIG volume storage_protocol $TEMPEST_STORAGE_PROTOCOL
     fi
 
diff --git a/run_tests.sh b/run_tests.sh
index b1aef4f..bf90332 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -43,7 +43,7 @@
 
 echo "Running bash8..."
 
-./tools/bash8.py -v $FILES
+tox -ebashate
 pass_fail $? 0 bash8
 
 
diff --git a/tools/bash8.py b/tools/bash8.py
deleted file mode 100755
index 3abf87b..0000000
--- a/tools/bash8.py
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/env python
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#    http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-# bash8 - a pep8 equivalent for bash scripts
-#
-# this program attempts to be an automated style checker for bash scripts
-# to fill the same part of code review that pep8 does in most OpenStack
-# projects. It starts from humble beginnings, and will evolve over time.
-#
-# Currently Supported checks
-#
-# Errors
-# Basic white space errors, for consistent indenting
-# - E001: check that lines do not end with trailing whitespace
-# - E002: ensure that indents are only spaces, and not hard tabs
-# - E003: ensure all indents are a multiple of 4 spaces
-# - E004: file did not end with a newline
-#
-# Structure errors
-#
-# A set of rules that help keep things consistent in control blocks.
-# These are ignored on long lines that have a continuation, because
-# unrolling that is kind of "interesting"
-#
-# - E010: *do* not on the same line as *for*
-# - E011: *then* not on the same line as *if*
-# - E012: heredoc didn't end before EOF
-
-import argparse
-import fileinput
-import re
-import sys
-
-ERRORS = 0
-IGNORE = None
-
-
-def register_ignores(ignores):
-    global IGNORE
-    if ignores:
-        IGNORE = '^(' + '|'.join(ignores.split(',')) + ')'
-
-
-def should_ignore(error):
-    return IGNORE and re.search(IGNORE, error)
-
-
-def print_error(error, line,
-                filename=None, filelineno=None):
-    if not filename:
-        filename = fileinput.filename()
-    if not filelineno:
-        filelineno = fileinput.filelineno()
-    global ERRORS
-    ERRORS = ERRORS + 1
-    print("%s: '%s'" % (error, line.rstrip('\n')))
-    print(" - %s: L%s" % (filename, filelineno))
-
-
-def not_continuation(line):
-    return not re.search('\\\\$', line)
-
-
-def check_for_do(line):
-    if not_continuation(line):
-        match = re.match('^\s*(for|while|until)\s', line)
-        if match:
-            operator = match.group(1).strip()
-            if not re.search(';\s*do(\b|$)', line):
-                print_error('E010: Do not on same line as %s' % operator,
-                            line)
-
-
-def check_if_then(line):
-    if not_continuation(line):
-        if re.search('^\s*if \[', line):
-            if not re.search(';\s*then(\b|$)', line):
-                print_error('E011: Then non on same line as if', line)
-
-
-def check_no_trailing_whitespace(line):
-    if re.search('[ \t]+$', line):
-        print_error('E001: Trailing Whitespace', line)
-
-
-def check_indents(line):
-    m = re.search('^(?P<indent>[ \t]+)', line)
-    if m:
-        if re.search('\t', m.group('indent')):
-            print_error('E002: Tab indents', line)
-        if (len(m.group('indent')) % 4) != 0:
-            print_error('E003: Indent not multiple of 4', line)
-
-def check_function_decl(line):
-    failed = False
-    if line.startswith("function"):
-        if not re.search('^function [\w-]* \{$', line):
-            failed = True
-    else:
-        # catch the case without "function", e.g.
-        # things like '^foo() {'
-        if re.search('^\s*?\(\)\s*?\{', line):
-            failed = True
-
-    if failed:
-        print_error('E020: Function declaration not in format '
-                    ' "^function name {$"', line)
-
-
-def starts_multiline(line):
-    m = re.search("[^<]<<\s*(?P<token>\w+)", line)
-    if m:
-        return m.group('token')
-    else:
-        return False
-
-
-def end_of_multiline(line, token):
-    if token:
-        return re.search("^%s\s*$" % token, line) is not None
-    return False
-
-
-def check_files(files, verbose):
-    in_multiline = False
-    multiline_start = 0
-    multiline_line = ""
-    logical_line = ""
-    token = False
-    prev_file = None
-    prev_line = ""
-    prev_lineno = 0
-
-    for line in fileinput.input(files):
-        if fileinput.isfirstline():
-            # if in_multiline when the new file starts then we didn't
-            # find the end of a heredoc in the last file.
-            if in_multiline:
-                print_error('E012: heredoc did not end before EOF',
-                            multiline_line,
-                            filename=prev_file, filelineno=multiline_start)
-                in_multiline = False
-
-            # last line of a previous file should always end with a
-            # newline
-            if prev_file and not prev_line.endswith('\n'):
-                print_error('E004: file did not end with a newline',
-                            prev_line,
-                            filename=prev_file, filelineno=prev_lineno)
-
-            prev_file = fileinput.filename()
-
-            if verbose:
-                print "Running bash8 on %s" % fileinput.filename()
-
-        # NOTE(sdague): multiline processing of heredocs is interesting
-        if not in_multiline:
-            logical_line = line
-            token = starts_multiline(line)
-            if token:
-                in_multiline = True
-                multiline_start = fileinput.filelineno()
-                multiline_line = line
-                continue
-        else:
-            logical_line = logical_line + line
-            if not end_of_multiline(line, token):
-                continue
-            else:
-                in_multiline = False
-
-        check_no_trailing_whitespace(logical_line)
-        check_indents(logical_line)
-        check_for_do(logical_line)
-        check_if_then(logical_line)
-        check_function_decl(logical_line)
-
-        prev_line = logical_line
-        prev_lineno = fileinput.filelineno()
-
-def get_options():
-    parser = argparse.ArgumentParser(
-        description='A bash script style checker')
-    parser.add_argument('files', metavar='file', nargs='+',
-                        help='files to scan for errors')
-    parser.add_argument('-i', '--ignore', help='Rules to ignore')
-    parser.add_argument('-v', '--verbose', action='store_true', default=False)
-    return parser.parse_args()
-
-
-def main():
-    opts = get_options()
-    register_ignores(opts.ignore)
-    check_files(opts.files, opts.verbose)
-
-    if ERRORS > 0:
-        print("%d bash8 error(s) found" % ERRORS)
-        return 1
-    else:
-        return 0
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/tools/xen/prepare_guest_template.sh b/tools/xen/prepare_guest_template.sh
index e6a7e02..2d3b898 100755
--- a/tools/xen/prepare_guest_template.sh
+++ b/tools/xen/prepare_guest_template.sh
@@ -93,3 +93,28 @@
 # Need to set barrier=0 to avoid a Xen bug
 # https://bugs.launchpad.net/ubuntu/+source/linux/+bug/824089
 sed -i -e 's/errors=/barrier=0,errors=/' $STAGING_DIR/etc/fstab
+
+# Update ubuntu repositories
+cat > $STAGING_DIR/etc/apt/sources.list << EOF
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} main restricted
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} main restricted
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates main restricted
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates main restricted
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} universe
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} universe
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates universe
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates universe
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} multiverse
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE} multiverse
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates multiverse
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-updates multiverse
+deb http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-backports main restricted universe multiverse
+deb-src http://${UBUNTU_INST_HTTP_HOSTNAME}${UBUNTU_INST_HTTP_DIRECTORY} ${UBUNTU_INST_RELEASE}-backports main restricted universe multiverse
+
+deb http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security main restricted
+deb-src http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security main restricted
+deb http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security universe
+deb-src http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security universe
+deb http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security multiverse
+deb-src http://security.ubuntu.com/ubuntu ${UBUNTU_INST_RELEASE}-security multiverse
+EOF