ssh before shelve to avoid ssh failures
The current test to attach / detach volumes on a shelved
server, performe the shelves before having verified that the
server was ssh-able. This makes failures in the VM setup
before and after shelve non distinguishable.
Adding an ssh check before shelve.
Change-Id: I0ec375d24f6aac69a79578180efe5018b25a1bdd
diff --git a/tempest/api/compute/volumes/test_attach_volume.py b/tempest/api/compute/volumes/test_attach_volume.py
index 4cd363d..fa3fdfe 100644
--- a/tempest/api/compute/volumes/test_attach_volume.py
+++ b/tempest/api/compute/volumes/test_attach_volume.py
@@ -84,6 +84,19 @@
self.volume['id'], 'available')
if shelve_server:
+ # NOTE(andreaf) If we are going to shelve a server, we should
+ # check first whether the server is ssh-able. Otherwise we won't
+ # be able to distinguish failures introduced by shelve from
+ # pre-existing ones. Also it's good to wait for cloud-init to be
+ # done and sshd server to be running before shelving to avoid
+ # breaking the VM
+ linux_client = remote_client.RemoteClient(
+ self.get_server_ip(self.server),
+ self.image_ssh_user,
+ self.admin_pass,
+ self.validation_resources['keypair']['private_key'])
+ linux_client.validate_authentication()
+ # If validation went ok, shelve the server
compute.shelve_server(self.servers_client, self.server['id'])
# Attach the volume to the server