Misc fixes for devstack gate tests

Correct typo in INSTALL_LXD setting.

Correctly set default for for LXD_GROUP.

Rewrite gate pre-test hook to use DEVSTACK_LOCAL_CONFIG.

Use central Cirros version and architecture.

Drop use of Xenial images for tempest tests.

Split out tempest configuration into test-config phase.

Change-Id: Iff0f0a501dae13e2306b9efb87d06c0d917d6233
This commit is contained in:
James Page 2017-06-08 11:43:37 +01:00
parent 52232047f1
commit 41ac333680
6 changed files with 62 additions and 62 deletions

View File

@ -22,4 +22,4 @@ LOGDIR=/opt/stack/logs
# Collect logs from the containers
sudo mkdir -p $LOGDIR/containers/
cp -rp /var/log/lxd/* $LOGDIR/containers
sudo cp -rp /var/log/lxd/* $LOGDIR/containers

View File

@ -21,5 +21,6 @@
source $BASE/new/devstack/functions
localrc_path=$BASE/new/devstack/localrc
echo "LXD_BACKEND_DRIVER=zfs" >> $localrc_path
DEVSTACK_LOCAL_CONFIG+=$'\n'"LXD_BACKEND_DRIVER=zfs"
export DEVSTACK_LOCAL_CONFIG

View File

@ -1,3 +1,2 @@
# Plug-in overrides
VIRT_DRIVER=lxd

View File

@ -77,36 +77,32 @@ function init_nova-lxd() {
--public --container-format bare \
--disk-format raw < $TOP_DIR/files/cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-lxc.tar.gz
if is_service_enabled tempest; then
# Download and install the root-tar image from xenial
UBUNTU_IMAGE_FILE=xenial-server-cloudimg-amd64-root.tar.gz
if [ ! -f $TOP_DIR/files/$UBUNTU_IMAGE_FILE ]; then
wget --progress=dot:giga -c \
https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-root.tar.gz \
-O $TOP_DIR/files/xenial-server-cloudimg-amd64-root.tar.gz
fi
openstack --os-cloud=devstack-admin --os-region-name="$REGION_NAME" image create "ubuntu-16.04-lxd-root" \
--public --container-format bare \
--disk-format raw < $TOP_DIR/files/${UBUNTU_IMAGE_FILE}
TEMPEST_CONFIG=${TEMPEST_CONFIG:-$TEMPEST_DIR/etc/tempest.conf}
TEMPEST_IMAGE=`openstack image list | grep cirros-0.3.4-x86_64-lxd | awk {'print $2'}`
TEMPEST_IMAGE_ALT=`openstack image list | grep ubuntu-16.04-lxd-root | awk {'print $2'}`
iniset $TEMPEST_CONFIG image disk_formats "ami,ari,aki,vhd,raw,iso,root-tar"
iniset $TEMPEST_CONFIG compute volume_device_name sdb
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
iniset $TEMPEST_CONFIG compute-feature-enabled resize False
iniset $TEMPEST_CONFIG compute-feature-enabled attach_encrypted_volume False
iniset $TEMPEST_CONFIG compute image_ref $TEMPEST_IMAGE
iniset $TEMPEST_CONFIG compute image_ref_alt $TEMPEST_IMAGE_ALT
fi
if is_service_enabled cinder; then
# Enable user namespace for ext4, this has only been tested on xenial+
echo Y | sudo tee /sys/module/ext4/parameters/userns_mounts
fi
}
function test_config_nova-lxd() {
# Configure tempest or other tests as required
if is_service_enabled tempest; then
TEMPEST_CONFIG=${TEMPEST_CONFIG:-$TEMPEST_DIR/etc/tempest.conf}
TEMPEST_IMAGE=`openstack image list | grep cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-lxd | awk {'print $2'}`
TEMPEST_IMAGE_ALT=$TEMPEST_IMAGE
iniset $TEMPEST_CONFIG image disk_formats "ami,ari,aki,vhd,raw,iso,root-tar"
iniset $TEMPEST_CONFIG compute volume_device_name sdb
# TODO(jamespage): Review and update
iniset $TEMPEST_CONFIG compute-feature-enabled shelve False
iniset $TEMPEST_CONFIG compute-feature-enabled resize False
iniset $TEMPEST_CONFIG compute-feature-enabled config_drive False
iniset $TEMPEST_CONFIG compute-feature-enabled attach_encrypted_volume False
iniset $TEMPEST_CONFIG compute-feature-enabled vnc_console False
iniset $TEMPEST_CONFIG compute image_ref $TEMPEST_IMAGE
iniset $TEMPEST_CONFIG compute image_ref_alt $TEMPEST_IMAGE_ALT
iniset $TEMPEST_CONFIG scenario img_file cirros-${CIRROS_VERSION}-${CIRROS_ARCH}-lxc.tar.gz
fi
}
function configure_lxd_block() {
echo_summary "Configure LXD storage backend"
if is_ubuntu; then
@ -157,6 +153,11 @@ if is_service_enabled nova-lxd; then
# Initialize and start the nova-lxd service
echo_summary "Initializing nova-lxd"
init_nova-lxd
elif [[ "$1" == "stack" && "$2" == "test-config" ]]; then
# Configure any testing configuration
echo_summary "Test configuration - nova-lxd"
test_config_nova-lxd
fi
if [[ "$1" == "unstack" ]]; then

View File

@ -2,5 +2,5 @@
enable_service nova-lxd
# LXD install/upgrade settings
INTSALL_LXD=${INSTALL_LXD:-False}
LXD_GROUP=${LXD_GROUP:lxd}
INSTALL_LXD=${INSTALL_LXD:-False}
LXD_GROUP=${LXD_GROUP:-lxd}

View File

@ -34,21 +34,6 @@ r="$r(?:.*\[.*\bslow\b.*\])"
# (zulcss) nova-lxd does not support booting ami/aki images
r="$r|(?:tempest\.scenario\.test_minimum_basic\.TestMinimumBasicScenario\.test_minimum_basic_scenario)"
# XXX: zulcss (18 Oct 2016) Tries to configure networking in the container but fails
r="$r|(?:tempest\.scenario\.test_network_advanced_server_ops\.TestNetworkAdvancedServerOps\.test_server_connectivity_pause_unpause)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance after rebuild takes place
r="$r|(?:tempest\.scenario\.test_network_advanced_server_ops\.TestNetworkAdvancedServerOps\.test_server_connectivity_rebuild)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_network_advanced_server_ops\.TestNetworkAdvancedServerOps\.test_server_connectivity_suspend_resume)"
# XXX: zulcss (18 Oct 2016) Tried to configure neworking in the container but fails
r="$r(?:tempest\.scenario\.test_network_v6\.TestGettingAddress.\test_dualnet_multi_prefix_dhcpv6_stateless)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_snapshot_pattern\.TestSnapshotPattern.test_snapshot_pattern)"
# XXX: zulcss (18 Oct 2016) nova-lxd does not support booting from ebs volumes
r="$r|(?:tempest\.scenario\.test_volume_boot_pattern\.TestVolumeBootPattern\.test_create_ebs_image_and_check_boot)"
r="$r|(?:tempest\.scenario\.test_volume_boot_pattern\.TestVolumeBootPattern\.test_volume_boot_pattern)"
@ -56,29 +41,43 @@ r="$r|(?:tempest\.scenario\.test_volume_boot_pattern\.TestVolumeBootPatternV2\.t
r="$r|(?:tempest\.scenario\.test_volume_boot_pattern\.TestVolumeBootPatternV2\.test_volume_boot_pattern)"
# XXX: zulcss (18 Oct 2016) tempest test only passes when there is more than 10 lines in the
# console output.
# console output, and cirros LXD consoles have only a single line of output
r="$r|(?:tempest\.api\.compute\.servers\.test_server_actions\.ServerActionsTestJSON\.test_get_console_output_with_unlimited_size)"
# tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_get_console_output_with_unlimited_size
# XXX: zulcss (18 Oct 2016) Tried to configure networkin the container but fails
r="$r|(?:tempest\.api\.compute\.servers\.test_server_actions\.ServerActionsTestJSON\.test_get_console_output_with_unlimited_size)"
# XXX: zulcss (18 Oct 2016) Interface attaching times out
r="$r|(:tempest\.scenario\.test_network_basic_ops\.TestNetworkBasicOps\.test_port_security_macspoofing_port)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_network_v6\.TestGettingAddress\.test_dualnet_multi_prefix_dhcpv6_stateless)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_snapshot_pattern\.TestSnapshotPattern\.test_snapshot_pattern)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
# XXX: jamespage (09 June 2017) veth pair nics not detected/configured by tempest
# https://review.openstack.org/#/c/472641/
r="$r|(?:tempest\.scenario\.test_network_basic_ops\.TestNetworkBasicOps\.test_hotplug_nic)"
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_network_basic_ops\.TestNetworkBasicOps\.test_port_security_macspoofing_port)"
#tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_hotplug_nic
#tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_port_security_macspoofing_port
# XXX: jamespage (09 June 2017) veth pair nics not detected/configured by tempest
# https://review.openstack.org/#/c/472641/
# XXX: jamespage (09 June 2017) instance not accessible via floating IP.
r="$r|(?:tempest\.scenario\.test_network_v6\.TestGettingAddress\.test_dualnet_multi_prefix_dhcpv6_stateless)"
r="$r|(?:tempest\.scenario\.test_network_v6\.TestGettingAddress\.test_dualnet_multi_prefix_slaac)"
#tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_dhcpv6_stateless
#tempest.scenario.test_network_v6.TestGettingAddress.test_dualnet_multi_prefix_slaac
# XXX: zulcss (18 Oct 2016) Could not connect to instance
r="$r|(?:tempest\.scenario\.test_network_advanced_server_ops\.TestNetworkAdvancedServerOps\.test_server_connectivity_suspend_resume)"
#r="$r|(?:tempest\.scenario\.test_network_advanced_server_ops\.TestNetworkAdvancedServerOps\.test_server_connectivity_suspend_resume)"
# XXX: jamespage (08 June 2017): test failures with a mismatch in the number of disks reported
r="$r|(?:tempest\.api\.compute\.admin\.test_create_server\.ServersWithSpecificFlavorTestJSON\.test_verify_created_server_ephemeral_disk)"
#tempest.api.compute.admin.test_create_server.ServersWithSpecificFlavorTestJSON.test_verify_created_server_ephemeral_disk
# XXX: jamespage (08 June 2017): nova-lxd driver does not support device tagging
r="$r|(?:tempest\.api\.compute\.servers\.test_device_tagging.*)"
#tempest.api.compute.servers.test_device_tagging.DeviceTaggingTestV2_42.test_device_tagging
#tempest.api.compute.servers.test_device_tagging.DeviceTaggingTestV2_42.test_device_tagging
# XXX: jamespage (08 June 2017): mismatching output on LXD instance use-case
#tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume
#tempest.api.compute.volumes.test_attach_volume.AttachVolumeShelveTestJSON.test_attach_detach_volume
r="$r|(?:tempest\.api\.compute\.volumes\.test_attach_volume\.AttachVolumeTestJSON\.test_attach_detach_volume)"
r="$r|(?:tempest\.api\.compute\.volumes\.test_attach_volume\.AttachVolumeShelveTestJSON\.test_attach_detach_volume)"
#testtools.matchers._impl.MismatchError: u'NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda 8:0 0 1073741824 0 disk \nsdb 8:16 0 1073741824 0 disk \nvda 253:0 0 85899345920 0 disk \nvdb 253:16 0 42949672960 0 disk ' matches Contains('\nsdb ')
r="$r).*$"