Merge "Add check for RABBIT_HOST and RABBIT_PASSWORD in iniset_rpc_backend"
diff --git a/files/apts/nova b/files/apts/nova
index b7d1e92..39b4060 100644
--- a/files/apts/nova
+++ b/files/apts/nova
@@ -31,6 +31,7 @@
 python-libxml2
 python-routes
 python-netaddr
+python-numpy # used by websockify for spice console
 python-pastedeploy
 python-eventlet
 python-cheetah
diff --git a/files/rpms/nova b/files/rpms/nova
index 88ad8c3..568ee7f 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -10,6 +10,7 @@
 libvirt-bin # NOPRIME
 libvirt-python
 libxml2-python
+numpy # needed by websockify for spice console
 m2crypto
 mysql-server # NOPRIME
 parted
diff --git a/lib/cinder b/lib/cinder
index a730cd6..5f4f979 100644
--- a/lib/cinder
+++ b/lib/cinder
@@ -172,7 +172,7 @@
     iniset $CINDER_CONF DEFAULT sql_connection $dburl
     iniset $CINDER_CONF DEFAULT api_paste_config $CINDER_API_PASTE_INI
     iniset $CINDER_CONF DEFAULT root_helper "sudo ${CINDER_ROOTWRAP}"
-    iniset $CINDER_CONF DEFAULT osapi_volume_extension cinder.api.openstack.volume.contrib.standard_extensions
+    iniset $CINDER_CONF DEFAULT osapi_volume_extension cinder.api.contrib.standard_extensions
     iniset $CINDER_CONF DEFAULT state_path $CINDER_STATE_PATH
 
     if is_service_enabled tls-proxy; then
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 965df6e..94aedc6 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -5,7 +5,7 @@
 # DATABASE_{HOST,USER,PASSWORD} must be defined
 
 # Save trace setting
-XTRACE=$(set +o | grep xtrace)
+MY_XTRACE=$(set +o | grep xtrace)
 set +o xtrace
 
 register_database mysql
@@ -68,10 +68,10 @@
     sudo sed -i -e "/^\[mysqld\]/ a \
 log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
 
-    # Log any query taking longer than a second
+    # Log all queries (any query taking longer than 0 seconds)
     sudo sed -i '/long.query.time/d' $MY_CONF
     sudo sed -i -e "/^\[mysqld\]/ a \
-long-query-time = 1" $MY_CONF
+long-query-time = 0" $MY_CONF
 
     # Log all non-indexed queries
     sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
@@ -121,4 +121,4 @@
 }
 
 # Restore xtrace
-$XTRACE
+$MY_XTRACE
diff --git a/lib/databases/postgresql b/lib/databases/postgresql
index 04db714..2c37f49 100644
--- a/lib/databases/postgresql
+++ b/lib/databases/postgresql
@@ -5,7 +5,7 @@
 # DATABASE_{HOST,USER,PASSWORD} must be defined
 
 # Save trace setting
-XTRACE=$(set +o | grep xtrace)
+PG_XTRACE=$(set +o | grep xtrace)
 set +o xtrace
 
 register_database postgresql
@@ -76,4 +76,4 @@
 }
 
 # Restore xtrace
-$XTRACE
+$PG_XTRACE
diff --git a/lib/nova b/lib/nova
index 7165ae2..7e5bb99 100644
--- a/lib/nova
+++ b/lib/nova
@@ -247,11 +247,25 @@
             LIBVIRT_DAEMON=libvirtd
         fi
 
-        # For distributions using polkit to authorize access to libvirt,
-        # configure polkit accordingly.
-        # Based on http://wiki.libvirt.org/page/SSHPolicyKitSetup
+
+
         if is_fedora; then
-            sudo bash -c 'cat <<EOF >/etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
+            # Starting with fedora 18 enable stack-user to virsh -c qemu:///system
+            # by creating a policy-kit rule for stack-user
+            if [[ "$os_RELEASE" -ge "18" ]]; then
+                rules_dir=/etc/polkit-1/rules.d
+                sudo mkdir -p $rules_dir
+                sudo bash -c "cat <<EOF > $rules_dir/50-libvirt-$STACK_USER.rules
+polkit.addRule(function(action, subject) {
+     if (action.id == 'org.libvirt.unix.manage' &&
+         subject.user == '"$STACK_USER"') {
+         return polkit.Result.YES;
+     }
+});
+EOF"
+                unset rules_dir
+            else
+                sudo bash -c 'cat <<EOF >/etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
 [libvirt Management Access]
 Identity=unix-group:libvirtd
 Action=org.libvirt.unix.manage
@@ -259,6 +273,7 @@
 ResultInactive=yes
 ResultActive=yes
 EOF'
+            fi
         elif is_suse; then
             # Work around the fact that polkit-default-privs overrules pklas
             # with 'unix-group:$group'.
diff --git a/lib/quantum b/lib/quantum
index 27b3509..c5fc6e8 100644
--- a/lib/quantum
+++ b/lib/quantum
@@ -472,9 +472,8 @@
 # _configure_quantum_plugin_agent() - Set config files for quantum plugin agent
 # It is called when q-agt is enabled.
 function _configure_quantum_plugin_agent() {
-
     # Specify the default root helper prior to agent configuration to
-    # ensure that an agent's configuration can override the default.
+    # ensure that an agent's configuration can override the default
     iniset /$Q_PLUGIN_CONF_FILE AGENT root_helper "$Q_RR_COMMAND"
 
     # Configure agent for plugin
@@ -544,6 +543,9 @@
     chmod 0440 $TEMPFILE
     sudo chown root:root $TEMPFILE
     sudo mv $TEMPFILE /etc/sudoers.d/quantum-rootwrap
+
+    # Update the root_helper
+    iniset $QUANTUM_CONF AGENT root_helper "$Q_RR_COMMAND"
 }
 
 # Configures keystone integration for quantum service and agents
diff --git a/lib/tempest b/lib/tempest
index 9057854..cb172a8 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -5,7 +5,7 @@
 # ``functions`` file
 # ``lib/nova`` service is runing
 # <list other global vars that are assumed to be defined>
-# - ``DEST``
+# - ``DEST``, ``FILES``
 # - ``ADMIN_PASSWORD``
 # - ``DEFAULT_IMAGE_NAME``
 # - ``S3_SERVICE_PORT``
@@ -48,13 +48,14 @@
 BUILD_TIMEOUT=400
 
 
-BOTO_MATERIALS_PATH="$DEST/devstack/files/images/s3-materials/cirros-0.3.0"
+BOTO_MATERIALS_PATH="$FILES/images/s3-materials/cirros-0.3.0"
 
 # Entry Points
 # ------------
 
 # configure_tempest() - Set config files, create data dirs, etc
 function configure_tempest() {
+    setup_develop $TEMPEST_DIR
     local image_lines
     local images
     local num_images
@@ -294,8 +295,7 @@
 function init_tempest() {
     local base_image_name=cirros-0.3.0-x86_64
     # /opt/stack/devstack/files/images/cirros-0.3.0-x86_64-uec
-    local devstack_dir="$DEST/devstack"
-    local image_dir="$devstack_dir/files/images/${base_image_name}-uec"
+    local image_dir="$FILES/images/${base_image_name}-uec"
     local kernel="$image_dir/${base_image_name}-vmlinuz"
     local ramdisk="$image_dir/${base_image_name}-initrd"
     local disk_image="$image_dir/${base_image_name}-blank.img"
@@ -305,7 +305,7 @@
        echo "Prepare aki/ari/ami Images"
        ( #new namespace
            # tenant:demo ; user: demo
-           source $devstack_dir/accrc/demo/demo
+           source $TOP_DIR/accrc/demo/demo
            euca-bundle-image -i "$kernel" --kernel true -d "$BOTO_MATERIALS_PATH"
            euca-bundle-image -i "$ramdisk" --ramdisk true -d "$BOTO_MATERIALS_PATH"
            euca-bundle-image -i "$disk_image" -d "$BOTO_MATERIALS_PATH"