Adds basic compute burn in tests
* Adds burn in tests for primary server actions Change-Id: I9e6cbd1fd168d22d91b30024f44c91d616967843
This commit is contained in:
15
cloudroast/compute/burn_in/__init__.py
Normal file
15
cloudroast/compute/burn_in/__init__.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
47
cloudroast/compute/burn_in/test_change_password_burn_in.py
Normal file
47
cloudroast/compute/burn_in/test_change_password_burn_in.py
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import unittest2 as unittest
|
||||||
|
|
||||||
|
from cloudcafe.compute.common.types import ComputeHypervisors
|
||||||
|
from cloudcafe.compute.common.types import NovaServerStatusTypes as \
|
||||||
|
ServerStates
|
||||||
|
from cloudcafe.compute.config import ComputeConfig
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
|
||||||
|
compute_config = ComputeConfig()
|
||||||
|
hypervisor = compute_config.hypervisor.lower()
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipIf(
|
||||||
|
hypervisor in [ComputeHypervisors.KVM, ComputeHypervisors.QEMU],
|
||||||
|
'Change password not supported in current configuration.')
|
||||||
|
class ChangePasswordBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(ChangePasswordBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_change_password(self):
|
||||||
|
new_password = "p@ssw0Rd"
|
||||||
|
|
||||||
|
self.servers_client.change_password(self.server.id, new_password)
|
||||||
|
self.server_behaviors.wait_for_server_status(self.server.id,
|
||||||
|
ServerStates.ACTIVE)
|
||||||
24
cloudroast/compute/burn_in/test_create_server_burn_in.py
Normal file
24
cloudroast/compute/burn_in/test_create_server_burn_in.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
|
||||||
|
class CreateServerBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
def test_create_server(self):
|
||||||
|
server = self.server_behaviors.create_active_server().entity
|
||||||
|
self.resources.add(server.id, self.servers_client.delete_server)
|
||||||
30
cloudroast/compute/burn_in/test_delete_server_burn_in.py
Normal file
30
cloudroast/compute/burn_in/test_delete_server_burn_in.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteServerBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(DeleteServerBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
|
||||||
|
def test_delete_server(self):
|
||||||
|
self.servers_client.delete_server(self.server.id)
|
||||||
|
self.server_behaviors.wait_for_server_to_be_deleted(self.server.id)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
from cloudcafe.compute.common.types import NovaServerRebootTypes
|
||||||
|
|
||||||
|
|
||||||
|
class RebootServerHardBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(RebootServerHardBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_reboot_server_hard(self):
|
||||||
|
self.server_behaviors.reboot_and_await(
|
||||||
|
self.server.id, NovaServerRebootTypes.HARD)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
from cloudcafe.compute.common.types import NovaServerRebootTypes
|
||||||
|
|
||||||
|
|
||||||
|
class RebootServerSoftBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(RebootServerSoftBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_reboot_server_soft(self):
|
||||||
|
self.server_behaviors.reboot_and_await(
|
||||||
|
self.server.id, NovaServerRebootTypes.SOFT)
|
||||||
36
cloudroast/compute/burn_in/test_rebuild_server_burn_in.py
Normal file
36
cloudroast/compute/burn_in/test_rebuild_server_burn_in.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from cloudcafe.compute.common.types import NovaServerStatusTypes
|
||||||
|
from cloudcafe.common.tools.datagen import rand_name
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
|
||||||
|
class RebuildServerBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(RebuildServerBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.name = rand_name("server")
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_rebuild_server(self):
|
||||||
|
self.servers_client.rebuild(self.server.id,
|
||||||
|
self.image_ref_alt, name=self.name)
|
||||||
|
self.server_behaviors.wait_for_server_status(
|
||||||
|
self.server.id, NovaServerStatusTypes.ACTIVE)
|
||||||
46
cloudroast/compute/burn_in/test_rescue_server_burn_in.py
Normal file
46
cloudroast/compute/burn_in/test_rescue_server_burn_in.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from unittest2.suite import TestSuite
|
||||||
|
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
|
||||||
|
def load_tests(loader, standard_tests, pattern):
|
||||||
|
suite = TestSuite()
|
||||||
|
suite.addTest(RescueServerBurnIn("test_rescue_server"))
|
||||||
|
suite.addTest(RescueServerBurnIn("test_unrescue_server"))
|
||||||
|
return suite
|
||||||
|
|
||||||
|
|
||||||
|
class RescueServerBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(RescueServerBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_rescue_server(self):
|
||||||
|
self.rescue_client.rescue(self.server.id)
|
||||||
|
self.server_behaviors.wait_for_server_status(
|
||||||
|
self.server.id, 'RESCUE')
|
||||||
|
|
||||||
|
def test_unrescue_server(self):
|
||||||
|
self.rescue_client.unrescue(self.server.id)
|
||||||
|
self.server_behaviors.wait_for_server_status(
|
||||||
|
self.server.id, 'ACTIVE')
|
||||||
51
cloudroast/compute/burn_in/test_resize_server_burn_in.py
Normal file
51
cloudroast/compute/burn_in/test_resize_server_burn_in.py
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
"""
|
||||||
|
Copyright 2013 Rackspace
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import unittest2 as unittest
|
||||||
|
from unittest2.suite import TestSuite
|
||||||
|
|
||||||
|
from cloudcafe.compute.flavors_api.config import FlavorsConfig
|
||||||
|
from cloudroast.compute.fixtures import ComputeFixture
|
||||||
|
|
||||||
|
flavors_config = FlavorsConfig()
|
||||||
|
resize_enabled = flavors_config.resize_enabled
|
||||||
|
|
||||||
|
|
||||||
|
def load_tests(loader, standard_tests, pattern):
|
||||||
|
suite = TestSuite()
|
||||||
|
suite.addTest(ResizeServerBurnIn("test_resize_server"))
|
||||||
|
suite.addTest(ResizeServerBurnIn("test_resize_server_confirm"))
|
||||||
|
return suite
|
||||||
|
|
||||||
|
|
||||||
|
@unittest.skipUnless(
|
||||||
|
resize_enabled, 'Resize not enabled for this flavor class.')
|
||||||
|
class ResizeServerBurnIn(ComputeFixture):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
super(ResizeServerBurnIn, cls).setUpClass()
|
||||||
|
resp = cls.server_behaviors.create_active_server()
|
||||||
|
cls.server = resp.entity
|
||||||
|
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||||
|
|
||||||
|
def test_resize_server(self):
|
||||||
|
self.server_behaviors.resize_and_await(
|
||||||
|
self.server.id, self.flavor_ref_alt)
|
||||||
|
|
||||||
|
def test_resize_server_confirm(self):
|
||||||
|
self.servers_client.confirm_resize(self.server.id)
|
||||||
|
self.server_behaviors.wait_for_server_status(self.server.id, 'ACTIVE')
|
||||||
Reference in New Issue
Block a user