Ported server meta/personality on create/rebuild tests
* Added checks for metadata provided on server create/rebuild * Added checks for personality files provided on server create/rebuild Change-Id: I89a5542f30c70c9dc085f92bd6f0c7657c44d680
This commit is contained in:
@@ -15,7 +15,6 @@ limitations under the License.
|
||||
"""
|
||||
|
||||
import base64
|
||||
import unittest2 as unittest
|
||||
|
||||
from cafe.drivers.unittest.decorators import tags
|
||||
from cloudcafe.compute.common.types import NovaServerStatusTypes
|
||||
@@ -23,7 +22,6 @@ from cloudcafe.compute.common.datagen import rand_name
|
||||
from test_repo.compute.fixtures import ComputeFixture
|
||||
|
||||
|
||||
|
||||
class RebuildServerTests(ComputeFixture):
|
||||
|
||||
@classmethod
|
||||
@@ -36,19 +34,17 @@ class RebuildServerTests(ComputeFixture):
|
||||
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||
cls.metadata = {'key': 'value'}
|
||||
cls.name = rand_name('testserver')
|
||||
file_contents = 'Test server rebuild.'
|
||||
personality = [{'path': '/etc/rebuild.txt',
|
||||
'contents': base64.b64encode(file_contents)}]
|
||||
cls.file_contents = 'Test server rebuild.'
|
||||
personality = [{'path': '/rebuild.txt',
|
||||
'contents': base64.b64encode(cls.file_contents)}]
|
||||
cls.password = 'rebuild'
|
||||
|
||||
rebuilt_server_response = cls.servers_client.rebuild(cls.server.id,
|
||||
cls.image_ref_alt,
|
||||
name=cls.name,
|
||||
metadata=cls.metadata,
|
||||
personality=personality,
|
||||
admin_pass=cls.password)
|
||||
cls.rebuilt_server_response = cls.server_behaviors.wait_for_server_status(cls.server.id,
|
||||
NovaServerStatusTypes.ACTIVE)
|
||||
cls.rebuilt_server_response = cls.servers_client.rebuild(
|
||||
cls.server.id, cls.image_ref_alt, name=cls.name,
|
||||
metadata=cls.metadata, personality=personality,
|
||||
admin_pass=cls.password)
|
||||
cls.server_behaviors.wait_for_server_status(
|
||||
cls.server.id, NovaServerStatusTypes.ACTIVE)
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
@@ -73,8 +69,11 @@ class RebuildServerTests(ComputeFixture):
|
||||
msg="Image id did not match")
|
||||
self.assertEqual(rebuilt_server.flavor.id, self.flavor_ref,
|
||||
msg="Flavor id did not match")
|
||||
self.assertEqual(rebuilt_server.id, self.server.id, msg="Server id did not match")
|
||||
self.assertEqual(rebuilt_server.links.bookmark, self.server.links.bookmark, msg="Bookmark links do not match")
|
||||
self.assertEqual(rebuilt_server.id, self.server.id,
|
||||
msg="Server id did not match")
|
||||
self.assertEqual(rebuilt_server.links.bookmark,
|
||||
self.server.links.bookmark,
|
||||
msg="Bookmark links do not match")
|
||||
self.assertEqual(rebuilt_server.metadata.key, 'value')
|
||||
self.assertEqual(rebuilt_server.created, self.server.created,
|
||||
msg="Server Created date changed after rebuild")
|
||||
@@ -87,44 +86,71 @@ class RebuildServerTests(ComputeFixture):
|
||||
def test_can_log_into_server_after_rebuild(self):
|
||||
server = self.rebuilt_server_response.entity
|
||||
rebuilt_server = self.rebuilt_server_response.entity
|
||||
public_address = self.server_behaviors.get_public_ip_address(rebuilt_server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(server,
|
||||
config=self.servers_config,
|
||||
password=self.password)
|
||||
self.assertTrue(remote_instance.can_connect_to_public_ip(),
|
||||
msg="Could not connect to server (%s) using new admin password %s" % (public_address,
|
||||
server.admin_pass))
|
||||
public_address = self.server_behaviors.get_public_ip_address(
|
||||
rebuilt_server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(
|
||||
server, config=self.servers_config, password=self.password)
|
||||
self.assertTrue(
|
||||
remote_instance.can_connect_to_public_ip(),
|
||||
msg="Could not connect to server (%s) using new admin password %s"
|
||||
% (public_address, server.admin_pass))
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_rebuilt_server_vcpus(self):
|
||||
"""Verify the number of vCPUs reported is the correct after the rebuild"""
|
||||
"""Verify the number of vCPUs reported is the correct after rebuild"""
|
||||
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
config=self.servers_config,
|
||||
password=self.password)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(
|
||||
self.server, config=self.servers_config, password=self.password)
|
||||
server_actual_vcpus = remote_client.get_number_of_vcpus()
|
||||
self.assertEqual(server_actual_vcpus, self.flavor.vcpus,
|
||||
msg="Expected number of vcpus to be {0}, was {1}.".format(
|
||||
self.flavor.vcpus, server_actual_vcpus))
|
||||
self.assertEqual(
|
||||
server_actual_vcpus, self.flavor.vcpus,
|
||||
msg="Expected number of vcpus to be {0}, was {1}.".format(
|
||||
self.flavor.vcpus, server_actual_vcpus))
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_rebuilt_server_disk_size(self):
|
||||
"""Verify the size of the virtual disk after the server rebuild"""
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
self.servers_config,
|
||||
password=self.password)
|
||||
disk_size = remote_client.get_disk_size_in_gb(self.servers_config.instance_disk_path)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(
|
||||
self.server, self.servers_config, password=self.password)
|
||||
disk_size = remote_client.get_disk_size_in_gb(
|
||||
self.servers_config.instance_disk_path)
|
||||
self.assertEqual(disk_size, self.flavor.disk,
|
||||
msg="Expected disk to be {0} GB, was {1} GB".format(
|
||||
self.flavor.disk, disk_size))
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_server_ram_after_rebuild(self):
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
self.servers_config,
|
||||
password=self.password)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(
|
||||
self.server, self.servers_config, password=self.password)
|
||||
lower_limit = int(self.flavor.ram) - (int(self.flavor.ram) * .1)
|
||||
server_ram_size = int(remote_instance.get_ram_size_in_mb())
|
||||
self.assertTrue(int(self.flavor.ram) == server_ram_size or lower_limit <= server_ram_size,
|
||||
msg="Ram size after confirm-resize did not match. Expected ram size : %s, Actual ram size : %s" %
|
||||
self.assertTrue((int(self.flavor.ram) == server_ram_size
|
||||
or lower_limit <= server_ram_size),
|
||||
msg='Ram size after confirm-resize did not match.'
|
||||
'Expected ram size : %s, Actual ram size : %s.' %
|
||||
(self.flavor.ram, server_ram_size))
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_personality_file_created_on_rebuild(self):
|
||||
"""
|
||||
Validate the injected file was created on the rebuilt server with
|
||||
the correct contents
|
||||
"""
|
||||
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(
|
||||
self.server, self.servers_config, password=self.password)
|
||||
self.assertTrue(remote_client.is_file_present('/rebuild.txt'))
|
||||
self.assertEqual(
|
||||
remote_client.get_file_details('/rebuild.txt').content,
|
||||
self.file_contents)
|
||||
|
||||
@tags(type='smoke', net='no')
|
||||
def test_server_metadata_set_on_rebuild(self):
|
||||
"""Verify the provided metadata was set for the rebuilt server"""
|
||||
rebuilt_server = self.rebuilt_server_response.entity
|
||||
|
||||
# Verify the metadata items were added to the server
|
||||
self.assertTrue(hasattr(rebuilt_server.metadata, 'key'))
|
||||
|
||||
# Verify the values of the metadata items are correct
|
||||
self.assertEqual(rebuilt_server.metadata.key, 'value')
|
||||
|
||||
@@ -31,7 +31,7 @@ class CreateServerTest(ComputeFixture):
|
||||
cls.metadata = {'meta_key_1': 'meta_value_1',
|
||||
'meta_key_2': 'meta_value_2'}
|
||||
cls.file_contents = 'This is a test file.'
|
||||
files = [{'path': '/root/test.txt', 'contents': base64.b64encode(
|
||||
files = [{'path': '/test.txt', 'contents': base64.b64encode(
|
||||
cls.file_contents)}]
|
||||
cls.create_resp = cls.servers_client.create_server(
|
||||
cls.name, cls.image_ref, cls.flavor_ref,
|
||||
@@ -187,9 +187,9 @@ class CreateServerTest(ComputeFixture):
|
||||
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(
|
||||
self.server, self.servers_config)
|
||||
self.assertTrue(remote_client.is_file_present('/root/test.txt'))
|
||||
self.assertTrue(remote_client.is_file_present('/test.txt'))
|
||||
self.assertEqual(
|
||||
remote_client.get_file_details('/root/test.txt').content,
|
||||
remote_client.get_file_details('/test.txt').content,
|
||||
self.file_contents)
|
||||
|
||||
@tags(type='smoke', net='no')
|
||||
|
||||
Reference in New Issue
Block a user