Update defaults for s3 materials paths/names
devstack has upgraded to downloading the cirros-0.3.1 image.
This change updates the ari/ami/aki manifest defaults in
tempest.conf.sample to match as otherwise the relevant tests
are fairly quietly skipped.
Adds a configuration option to set the timeout for waiting on
remote ssh commands to finish. This is necessary as the
test_integration_1 now executes with this fix and times out
on the CI systems due to the ssh command taking longer than
the hardcoded timeout.
Change-Id: I744d242416ed63ab49facae70948d5c007df13c7
diff --git a/etc/tempest.conf.sample b/etc/tempest.conf.sample
index 9dca609..a70a7ab 100644
--- a/etc/tempest.conf.sample
+++ b/etc/tempest.conf.sample
@@ -88,6 +88,9 @@
# Number of seconds to wait to authenticate to an instance
ssh_timeout = 300
+# Number of seconds to wait for output from ssh channel
+ssh_channel_timeout = 60
+
# The type of endpoint for a Compute API service. Unless you have a
# custom Keystone service catalog implementation, you probably want to leave
# this value as "compute"
@@ -238,20 +241,20 @@
#Image materials for S3 upload
# ALL content of the specified directory will be uploaded to S3
-s3_materials_path = /opt/stack/devstack/files/images/s3-materials/cirros-0.3.0
+s3_materials_path = /opt/stack/devstack/files/images/s3-materials/cirros-0.3.1
# The manifest.xml files, must be in the s3_materials_path directory
# Subdirectories not allowed!
# The filenames will be used as a Keys in the S3 Buckets
#ARI Ramdisk manifest. Must be in the above s3_materials_path
-ari_manifest = cirros-0.3.0-x86_64-initrd.manifest.xml
+ari_manifest = cirros-0.3.1-x86_64-initrd.manifest.xml
#AMI Machine Image manifest. Must be in the above s3_materials_path
-ami_manifest = cirros-0.3.0-x86_64-blank.img.manifest.xml
+ami_manifest = cirros-0.3.1-x86_64-blank.img.manifest.xml
#AKI Kernel Image manifest, Must be in the above s3_materials_path
-aki_manifest = cirros-0.3.0-x86_64-vmlinuz.manifest.xml
+aki_manifest = cirros-0.3.1-x86_64-vmlinuz.manifest.xml
#Instance type
instance_type = m1.tiny
diff --git a/tempest/common/utils/linux/remote_client.py b/tempest/common/utils/linux/remote_client.py
index b501df4..fd5d3d0 100644
--- a/tempest/common/utils/linux/remote_client.py
+++ b/tempest/common/utils/linux/remote_client.py
@@ -15,6 +15,7 @@
ssh_timeout = TempestConfig().compute.ssh_timeout
network = TempestConfig().compute.network_for_ssh
ip_version = TempestConfig().compute.ip_version_for_ssh
+ ssh_channel_timeout = TempestConfig().compute.ssh_channel_timeout
if isinstance(server, basestring):
ip_address = server
else:
@@ -27,7 +28,8 @@
raise ServerUnreachable()
self.ssh_client = Client(ip_address, username, password, ssh_timeout,
- pkey=pkey)
+ pkey=pkey,
+ channel_timeout=ssh_channel_timeout)
if not self.ssh_client.test_connection_auth():
raise SSHTimeout()
diff --git a/tempest/config.py b/tempest/config.py
index c0e25c7..856be16 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -149,8 +149,12 @@
help="User name used to authenticate to an instance."),
cfg.IntOpt('ssh_timeout',
default=300,
- help="Timeout in seconds to wait for authentcation to "
+ help="Timeout in seconds to wait for authentication to "
"succeed."),
+ cfg.IntOpt('ssh_channel_timeout',
+ default=60,
+ help="Timeout in seconds to wait for output from ssh "
+ "channel."),
cfg.StrOpt('network_for_ssh',
default='public',
help="Network used for SSH connections."),