Move shelve server logic in compute utility
shelve server logic has been duplicated many place and also needed by more tests. It better to make that a utils function and used from there. Change-Id: I391f0bb92da1ddc76efcf026e8dea536edfd3706
This commit is contained in:
parent
9aa74e4de9
commit
017b5fe060
|
@ -16,6 +16,7 @@
|
|||
import testtools
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common import compute
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest import test
|
||||
|
@ -84,16 +85,8 @@ class DeleteServersTestJSON(base.BaseV2ComputeTest):
|
|||
def test_delete_server_while_in_shelved_state(self):
|
||||
# Delete a server while it's VM state is Shelved
|
||||
server = self.create_test_server(wait_until='ACTIVE')
|
||||
self.client.shelve_server(server['id'])
|
||||
compute.shelve_server(self.client, server['id'])
|
||||
|
||||
offload_time = CONF.compute.shelved_offload_time
|
||||
if offload_time >= 0:
|
||||
waiters.wait_for_server_status(self.client, server['id'],
|
||||
'SHELVED_OFFLOADED',
|
||||
extra_timeout=offload_time)
|
||||
else:
|
||||
waiters.wait_for_server_status(self.client, server['id'],
|
||||
'SHELVED')
|
||||
self.client.delete_server(server['id'])
|
||||
waiters.wait_for_server_termination(self.client, server['id'])
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ from six.moves.urllib import parse as urlparse
|
|||
import testtools
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common import compute
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.common.utils.linux import remote_client
|
||||
from tempest.common import waiters
|
||||
|
@ -440,20 +441,8 @@ class ServerActionsTestJSON(base.BaseV2ComputeTest):
|
|||
@testtools.skipUnless(CONF.compute_feature_enabled.shelve,
|
||||
'Shelve is not available.')
|
||||
def test_shelve_unshelve_server(self):
|
||||
self.client.shelve_server(self.server_id)
|
||||
|
||||
offload_time = CONF.compute.shelved_offload_time
|
||||
if offload_time >= 0:
|
||||
waiters.wait_for_server_status(self.client, self.server_id,
|
||||
'SHELVED_OFFLOADED',
|
||||
extra_timeout=offload_time)
|
||||
else:
|
||||
waiters.wait_for_server_status(self.client, self.server_id,
|
||||
'SHELVED')
|
||||
|
||||
self.client.shelve_offload_server(self.server_id)
|
||||
waiters.wait_for_server_status(self.client, self.server_id,
|
||||
'SHELVED_OFFLOADED')
|
||||
compute.shelve_server(self.client, self.server_id,
|
||||
force_shelve_offload=True)
|
||||
|
||||
server = self.client.show_server(self.server_id)['server']
|
||||
image_name = server['name'] + '-shelved'
|
||||
|
|
|
@ -18,6 +18,7 @@ import sys
|
|||
import testtools
|
||||
|
||||
from tempest.api.compute import base
|
||||
from tempest.common import compute
|
||||
from tempest.common.utils import data_utils
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
|
@ -453,18 +454,7 @@ class ServersNegativeTestJSON(base.BaseV2ComputeTest):
|
|||
@test.attr(type=['negative'])
|
||||
def test_shelve_shelved_server(self):
|
||||
# shelve a shelved server.
|
||||
self.client.shelve_server(self.server_id)
|
||||
|
||||
offload_time = CONF.compute.shelved_offload_time
|
||||
if offload_time >= 0:
|
||||
waiters.wait_for_server_status(self.client,
|
||||
self.server_id,
|
||||
'SHELVED_OFFLOADED',
|
||||
extra_timeout=offload_time)
|
||||
else:
|
||||
waiters.wait_for_server_status(self.client,
|
||||
self.server_id,
|
||||
'SHELVED')
|
||||
compute.shelve_server(self.client, self.server_id)
|
||||
|
||||
server = self.client.show_server(self.server_id)['server']
|
||||
image_name = server['name'] + '-shelved'
|
||||
|
|
|
@ -157,3 +157,29 @@ def create_test_server(clients, validatable=False, validation_resources=None,
|
|||
% server['id'])
|
||||
|
||||
return body, servers
|
||||
|
||||
|
||||
def shelve_server(client, server_id, force_shelve_offload=False):
|
||||
"""Common wrapper utility to shelve server.
|
||||
|
||||
This method is a common wrapper to make server in 'SHELVED'
|
||||
or 'SHELVED_OFFLOADED' state.
|
||||
|
||||
:param server_id: Server to make in shelve state
|
||||
:param force_shelve_offload: Forcefully offload shelve server if it
|
||||
is configured not to offload server
|
||||
automatically after offload time.
|
||||
"""
|
||||
client.shelve_server(server_id)
|
||||
|
||||
offload_time = CONF.compute.shelved_offload_time
|
||||
if offload_time >= 0:
|
||||
waiters.wait_for_server_status(client, server_id,
|
||||
'SHELVED_OFFLOADED',
|
||||
extra_timeout=offload_time)
|
||||
else:
|
||||
waiters.wait_for_server_status(client, server_id, 'SHELVED')
|
||||
if force_shelve_offload:
|
||||
client.shelve_offload_server(server_id)
|
||||
waiters.wait_for_server_status(client, server_id,
|
||||
'SHELVED_OFFLOADED')
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
import testtools
|
||||
|
||||
from tempest.common import compute
|
||||
from tempest.common import waiters
|
||||
from tempest import config
|
||||
from tempest.scenario import manager
|
||||
|
@ -35,18 +36,9 @@ class TestShelveInstance(manager.ScenarioTest):
|
|||
"""
|
||||
|
||||
def _shelve_then_unshelve_server(self, server):
|
||||
self.servers_client.shelve_server(server['id'])
|
||||
offload_time = CONF.compute.shelved_offload_time
|
||||
if offload_time >= 0:
|
||||
waiters.wait_for_server_status(self.servers_client, server['id'],
|
||||
'SHELVED_OFFLOADED',
|
||||
extra_timeout=offload_time)
|
||||
else:
|
||||
waiters.wait_for_server_status(self.servers_client,
|
||||
server['id'], 'SHELVED')
|
||||
self.servers_client.shelve_offload_server(server['id'])
|
||||
waiters.wait_for_server_status(self.servers_client, server['id'],
|
||||
'SHELVED_OFFLOADED')
|
||||
compute.shelve_server(self.servers_client, server['id'],
|
||||
force_shelve_offload=True)
|
||||
|
||||
self.servers_client.unshelve_server(server['id'])
|
||||
waiters.wait_for_server_status(self.servers_client, server['id'],
|
||||
'ACTIVE')
|
||||
|
|
Loading…
Reference in New Issue