Merge "only remove network states from Nova when n-net is enabled"
diff --git a/exercises/client-env.sh b/exercises/client-env.sh
index d955e4d..4e8259c 100755
--- a/exercises/client-env.sh
+++ b/exercises/client-env.sh
@@ -64,7 +64,7 @@
STATUS_KEYSTONE="Skipped"
else
echo -e "\nTest Keystone"
- if keystone catalog --service identity; then
+ if openstack endpoint show identity; then
STATUS_KEYSTONE="Succeeded"
else
STATUS_KEYSTONE="Failed"
diff --git a/extras.d/80-opendaylight.sh b/extras.d/80-opendaylight.sh
index 57b4328..c3c85fc 100644
--- a/extras.d/80-opendaylight.sh
+++ b/extras.d/80-opendaylight.sh
@@ -14,6 +14,7 @@
configure_opendaylight
init_opendaylight
elif [[ "$1" == "stack" && "$2" == "post-config" ]]; then
+ configure_ml2_odl
# This has to start before Neutron
start_opendaylight
elif [[ "$1" == "stack" && "$2" == "post-extra" ]]; then
diff --git a/files/rpms-suse/opendaylight b/files/rpms-suse/opendaylight
index d6c7146..f7fafff 100644
--- a/files/rpms-suse/opendaylight
+++ b/files/rpms-suse/opendaylight
@@ -1,4 +1,3 @@
openvswitch # NOPRIME
-openvswitch-controller # NOPRIME
openvswitch-switch # NOPRIME
diff --git a/files/rpms/horizon b/files/rpms/horizon
index 2dd24e0..38d349d 100644
--- a/files/rpms/horizon
+++ b/files/rpms/horizon
@@ -1,5 +1,4 @@
Django
-django-registration
gcc
httpd # NOPRIME
mod_wsgi # NOPRIME
diff --git a/lib/cinder_plugins/nfs b/lib/cinder_plugins/nfs
index 2d9d875..5f4cc53 100644
--- a/lib/cinder_plugins/nfs
+++ b/lib/cinder_plugins/nfs
@@ -30,8 +30,7 @@
function configure_cinder_driver {
iniset $CINDER_CONF DEFAULT volume_driver "cinder.volume.drivers.nfs.NfsDriver"
iniset $CINDER_CONF DEFAULT nfs_shares_config "$CINDER_CONF_DIR/nfs_shares.conf"
- echo "$CINDER_NFS_SERVERPATH" | sudo tee "$CINDER_CONF_DIR/nfs_shares.conf"
- sudo chmod 660 $CINDER_CONF_DIR/nfs_shares.conf
+ echo "$CINDER_NFS_SERVERPATH" | tee "$CINDER_CONF_DIR/nfs_shares.conf"
}
# Restore xtrace
diff --git a/lib/databases/mysql b/lib/databases/mysql
index 7a0145a..0a96cf8 100644
--- a/lib/databases/mysql
+++ b/lib/databases/mysql
@@ -83,36 +83,28 @@
# Now update ``my.cnf`` for some local needs and restart the mysql service
- # Change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0)
- sudo sed -i '/^bind-address/s/127.0.0.1/0.0.0.0/g' $MY_CONF
+ # Change ‘bind-address’ from localhost (127.0.0.1) to any (0.0.0.0) and
+ # set default db type to InnoDB
+ sudo bash -c "source $TOP_DIR/functions && \
+ iniset $MY_CONF mysqld bind-address 0.0.0.0 && \
+ iniset $MY_CONF mysqld default-storage-engine InnoDB"
- # Set default db type to InnoDB
- if sudo grep -q "default-storage-engine" $MY_CONF; then
- # Change it
- sudo bash -c "source $TOP_DIR/functions; iniset $MY_CONF mysqld default-storage-engine InnoDB"
- else
- # Add it
- sudo sed -i -e "/^\[mysqld\]/ a \
-default-storage-engine = InnoDB" $MY_CONF
- fi
if [[ "$DATABASE_QUERY_LOGGING" == "True" ]]; then
echo_summary "Enabling MySQL query logging"
- # Turn on slow query log
- sudo sed -i '/log.slow.queries/d' $MY_CONF
- sudo sed -i -e "/^\[mysqld\]/ a \
- log-slow-queries = /var/log/mysql/mysql-slow.log" $MY_CONF
+ sudo sed -e '/log.slow.queries/d' \
+ -e '/long.query.time/d' \
+ -e '/log.queries.not.using.indexes/d' \
+ -i $MY_CONF
- # 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 = 0" $MY_CONF
-
- # Log all non-indexed queries
- sudo sed -i '/log.queries.not.using.indexes/d' $MY_CONF
- sudo sed -i -e "/^\[mysqld\]/ a \
- log-queries-not-using-indexes" $MY_CONF
+ # Turn on slow query log, log all queries (any query taking longer than
+ # 0 seconds) and log all non-indexed queries
+ sudo bash -c "source $TOP_DIR/functions && \
+ iniset $MY_CONF mysqld slow-query-log 1 && \
+ iniset $MY_CONF mysqld slow-query-log-file /var/log/mysql/mysql-slow.log && \
+ iniset $MY_CONF mysqld long-query-time 0 && \
+ iniset $MY_CONF mysqld log-queries-not-using-indexes 1"
fi
diff --git a/lib/ironic b/lib/ironic
index 979420f..8d7687b 100644
--- a/lib/ironic
+++ b/lib/ironic
@@ -42,6 +42,7 @@
IRONIC_SCRIPTS_DIR=${IRONIC_SCRIPTS_DIR:-$TOP_DIR/tools/ironic/scripts}
IRONIC_TEMPLATES_DIR=${IRONIC_TEMPLATES_DIR:-$TOP_DIR/tools/ironic/templates}
IRONIC_BAREMETAL_BASIC_OPS=$(trueorfalse False $IRONIC_BAREMETAL_BASIC_OPS)
+IRONIC_DRIVERS_WHITELIST=${IRONIC_DRIVERS_WHITELIST:-fake,pxe_ssh}
IRONIC_SSH_USERNAME=${IRONIC_SSH_USERNAME:-`whoami`}
IRONIC_SSH_KEY_DIR=${IRONIC_SSH_KEY_DIR:-$IRONIC_DATA_DIR/ssh_keys}
IRONIC_SSH_KEY_FILENAME=${IRONIC_SSH_KEY_FILENAME:-ironic_key}
@@ -171,6 +172,7 @@
cp -r $IRONIC_DIR/etc/ironic/rootwrap.d $IRONIC_CONF_DIR
iniset $IRONIC_CONF_FILE DEFAULT rootwrap_config $IRONIC_ROOTWRAP_CONF
+ iniset $IRONIC_CONF_FILE DEFAULT drivers_whitelist $IRONIC_DRIVERS_WHITELIST
iniset $IRONIC_CONF_FILE conductor api_url http://$HOST_IP:6385
iniset $IRONIC_CONF_FILE pxe tftp_server $HOST_IP
iniset $IRONIC_CONF_FILE pxe tftp_root $IRONIC_TFTPBOOT_DIR
@@ -496,19 +498,6 @@
fi
done
- SCREEN_NAME=${SCREEN_NAME:-stack}
- SERVICE_DIR=${SERVICE_DIR:-${DEST}/status}
-
- # stop all nova services
- stop_nova || true
-
- # remove any nova services failure status
- find $SERVICE_DIR/$SCREEN_NAME -name 'n-*.failure' -exec rm -f '{}' \;
-
- # start them again
- start_nova_api
- start_nova
-
TOKEN=$(keystone token-get | grep ' id ' | get_field 2)
die_if_not_set $LINENO TOKEN "Keystone fail to get token"
@@ -520,6 +509,11 @@
create_bridge_and_vms
enroll_vms
configure_tftpd
+
+ # restart nova-compute to ensure its resource tracking is up to
+ # date with newly enrolled nodes
+ stop_nova_compute || true
+ start_nova_compute
}
function cleanup_baremetal_basic_ops {
diff --git a/lib/neutron_plugins/ovs_base b/lib/neutron_plugins/ovs_base
index ae7f815..1e293a1 100644
--- a/lib/neutron_plugins/ovs_base
+++ b/lib/neutron_plugins/ovs_base
@@ -44,9 +44,8 @@
# Ensure that the service is started
restart_service openvswitch
elif is_suse; then
- install_package openvswitch
+ install_package openvswitch-switch
restart_service openvswitch-switch
- restart_service openvswitch-controller
fi
}
diff --git a/lib/opendaylight b/lib/opendaylight
index 1022e2c..be3db6e 100644
--- a/lib/opendaylight
+++ b/lib/opendaylight
@@ -35,6 +35,15 @@
# ODL_MGR_IP=
ODL_MGR_IP=${ODL_MGR_IP:-$SERVICE_HOST}
+# The ODL endpoint URL
+ODL_ENDPOINT=${ODL_ENDPOINT:-http://${ODL_MGR_IP}:8080/controller/nb/v2/neutron}
+
+# The ODL username
+ODL_USERNAME=${ODL_USERNAME:-admin}
+
+# The ODL password
+ODL_PASSWORD=${ODL_PASSWORD:-admin}
+
# <define global variables here that belong to this project>
ODL_DIR=$DEST/opendaylight
@@ -80,6 +89,12 @@
echo "ovsdb.of.version=1.3" >> $ODL_DIR/opendaylight/configuration/config.ini
}
+function configure_ml2_odl {
+ populate_ml2_config /$Q_PLUGIN_CONF_FILE ml2_odl url=$ODL_ENDPOINT
+ populate_ml2_config /$Q_PLUGIN_CONF_FILE ml2_odl username=$ODL_USERNAME
+ populate_ml2_config /$Q_PLUGIN_CONF_FILE ml2_odl password=$ODL_PASSWORD
+}
+
# init_opendaylight() - Initialize databases, etc.
function init_opendaylight {
# clean up from previous (possibly aborted) runs
@@ -117,9 +132,8 @@
# Ensure that the service is started
restart_service openvswitch
elif is_suse; then
- install_package openvswitch
+ install_package openvswitch-switch
restart_service openvswitch-switch
- restart_service openvswitch-controller
fi
}
diff --git a/lib/sahara b/lib/sahara
index 1ff0cf9..cb86710 100644
--- a/lib/sahara
+++ b/lib/sahara
@@ -142,6 +142,11 @@
iniset $SAHARA_CONF_FILE DEFAULT use_syslog $SYSLOG
+ # Format logging
+ if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
+ setup_colorized_logging $SAHARA_CONF_FILE DEFAULT
+ fi
+
recreate_database sahara utf8
$SAHARA_BIN_DIR/sahara-db-manage --config-file $SAHARA_CONF_FILE upgrade head
}
diff --git a/lib/tempest b/lib/tempest
index 0b5f332..97e6d22 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -153,6 +153,7 @@
# user and tenant are set up...
ADMIN_USERNAME=${ADMIN_USERNAME:-admin}
ADMIN_TENANT_NAME=${ADMIN_TENANT_NAME:-admin}
+ ADMIN_DOMAIN_NAME=${ADMIN_DOMAIN_NAME:-Default}
TEMPEST_USERNAME=${TEMPEST_USERNAME:-demo}
TEMPEST_TENANT_NAME=${TEMPEST_TENANT_NAME:-demo}
ALT_USERNAME=${ALT_USERNAME:-alt_demo}
@@ -267,6 +268,7 @@
iniset $TEMPEST_CONFIG identity admin_username $ADMIN_USERNAME
iniset $TEMPEST_CONFIG identity admin_password "$password"
iniset $TEMPEST_CONFIG identity admin_tenant_name $ADMIN_TENANT_NAME
+ iniset $TEMPEST_CONFIG identity admin_domain_name $ADMIN_DOMAIN_NAME
iniset $TEMPEST_CONFIG identity auth_version ${TEMPEST_AUTH_VERSION:-v2}
# Image
@@ -357,6 +359,11 @@
# Networking
iniset $TEMPEST_CONFIG network-feature-enabled api_extensions "${NETWORK_API_EXTENSIONS:-all}"
+ # Baremetal
+ if [ "$VIRT_DRIVER" = "ironic" ] ; then
+ iniset $TEMPEST_CONFIG baremetal driver_enabled True
+ fi
+
# service_available
for service in ${TEMPEST_SERVICES//,/ }; do
if is_service_enabled $service ; then
@@ -416,9 +423,9 @@
( #new namespace
# tenant:demo ; user: 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"
+ euca-bundle-image -r x86_64 -i "$kernel" --kernel true -d "$BOTO_MATERIALS_PATH"
+ euca-bundle-image -r x86_64 -i "$ramdisk" --ramdisk true -d "$BOTO_MATERIALS_PATH"
+ euca-bundle-image -r x86_64 -i "$disk_image" -d "$BOTO_MATERIALS_PATH"
) 2>&1 </dev/null | cat
else
echo "Boto materials are not prepared"
diff --git a/stack.sh b/stack.sh
index 4de79bb..4f7b80e 100755
--- a/stack.sh
+++ b/stack.sh
@@ -215,21 +215,24 @@
apt_get install --force-yes gplhost-archive-keyring
fi
-if [[ is_fedora && $DISTRO =~ (rhel6) ]]; then
- # Installing Open vSwitch on RHEL6 requires enabling the RDO repo.
- RHEL6_RDO_REPO_RPM=${RHEL6_RDO_REPO_RPM:-"http://rdo.fedorapeople.org/openstack-havana/rdo-release-havana.rpm"}
- RHEL6_RDO_REPO_ID=${RHEL6_RDO_REPO_ID:-"openstack-havana"}
+if [[ is_fedora && $DISTRO =~ (rhel) ]]; then
+ # Installing Open vSwitch on RHEL requires enabling the RDO repo.
+ RHEL6_RDO_REPO_RPM=${RHEL6_RDO_REPO_RPM:-"http://rdo.fedorapeople.org/openstack-icehouse/rdo-release-icehouse.rpm"}
+ RHEL6_RDO_REPO_ID=${RHEL6_RDO_REPO_ID:-"openstack-icehouse"}
if ! sudo yum repolist enabled $RHEL6_RDO_REPO_ID | grep -q $RHEL6_RDO_REPO_ID; then
echo "RDO repo not detected; installing"
yum_install $RHEL6_RDO_REPO_RPM || \
die $LINENO "Error installing RDO repo, cannot continue"
fi
-
- # RHEL6 requires EPEL for many Open Stack dependencies
- RHEL6_EPEL_RPM=${RHEL6_EPEL_RPM:-"http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm"}
+ # RHEL requires EPEL for many Open Stack dependencies
+ if [[ $DISTRO =~ (rhel7) ]]; then
+ EPEL_RPM=${RHEL7_EPEL_RPM:-"http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.1.noarch.rpm"}
+ else
+ EPEL_RPM=${RHEL6_EPEL_RPM:-"http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm"}
+ fi
if ! sudo yum repolist enabled epel | grep -q 'epel'; then
echo "EPEL not detected; installing"
- yum_install ${RHEL6_EPEL_RPM} || \
+ yum_install ${EPEL_RPM} || \
die $LINENO "Error installing EPEL repo, cannot continue"
fi
@@ -425,7 +428,7 @@
# Rabbit connection info
if is_service_enabled rabbit; then
- RABBIT_HOST=${RABBIT_HOST:-localhost}
+ RABBIT_HOST=${RABBIT_HOST:-$SERVICE_HOST}
read_password RABBIT_PASSWORD "ENTER A PASSWORD TO USE FOR RABBIT."
fi