Updated server actions tests to new project structure
* Fixed imports to auth/clients * Modified remote client calls to work with WIP remote client * Replaced references to providers with behaviors Change-Id: Id86f56c7748dd25ce85a405d49315bd8a412b3df
This commit is contained in:
@@ -30,9 +30,9 @@ from cloudcafe.compute.config import ComputeConfig
|
||||
from cloudcafe.compute.flavors_api.config import FlavorsConfig
|
||||
from cloudcafe.compute.images_api.config import ImagesConfig
|
||||
from cloudcafe.compute.servers_api.config import ServersConfig
|
||||
from cloudcafe.identity.v2_0.tokens_api.client import TokenAPI_Client
|
||||
from cloudcafe.identity.v2_0.tokens_api.behaviors import TokenAPI_Behaviors
|
||||
from cloudcafe.identity.v2_0.tokens_api.config import TokenAPI_Config
|
||||
from cloudcafe.extensions.rax_auth.v2_0.tokens_api.client import TokenAPI_Client
|
||||
from cloudcafe.extensions.rax_auth.v2_0.tokens_api.behaviors import TokenAPI_Behaviors
|
||||
from cloudcafe.extensions.rax_auth.v2_0.tokens_api.config import TokenAPI_Config
|
||||
|
||||
|
||||
class ComputeFixture(BaseTestFixture):
|
||||
@@ -59,8 +59,8 @@ class ComputeFixture(BaseTestFixture):
|
||||
'json', 'json')
|
||||
token_behaviors = TokenAPI_Behaviors(token_client)
|
||||
access_data = token_behaviors.get_access_data(identity_config.username,
|
||||
identity_config.password,
|
||||
identity_config.tenant_name)
|
||||
identity_config.api_key,
|
||||
identity_config.tenant_id)
|
||||
|
||||
compute_service = access_data.get_service(
|
||||
cls.compute_config.compute_endpoint_name)
|
||||
|
||||
@@ -36,17 +36,18 @@ class ChangeServerPasswordTests(CreateServerFixture):
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_can_log_in_with_new_password(self):
|
||||
'''Verify the admin user can log in with the new password'''
|
||||
"""Verify the admin user can log in with the new password"""
|
||||
|
||||
# Get server details
|
||||
response = self.servers_client.get_server(self.server.id)
|
||||
self.server = response.entity
|
||||
# Set the server's adminPass attribute to the new password,vas this field is not set in getServer
|
||||
self.server.adminPass = self.new_password
|
||||
server = self.servers_client.get_server(self.server.id).entity
|
||||
|
||||
public_address = self.server_behaviors.get_public_ip_address(self.server)
|
||||
# Set the server's adminPass attribute to the new password,vas this field is not set in getServer
|
||||
server.admin_pass = self.new_password
|
||||
|
||||
public_address = self.server_behaviors.get_public_ip_address(server)
|
||||
# Get an instance of the remote client
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server, public_address)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(server,
|
||||
config=self.servers_config)
|
||||
|
||||
self.assertTrue(remote_client.can_connect_to_public_ip(),
|
||||
"Could not connect to server (%s) using new admin password %s" %
|
||||
|
||||
@@ -37,13 +37,14 @@ class RebootServerHardTests(ComputeFixture):
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_reboot_server_hard(self):
|
||||
""" The server should be power cycled """
|
||||
public_address = self.server_behaviors.get_public_ip_address(self.server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.server, public_address)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
config=self.servers_config)
|
||||
uptime_start = remote_instance.get_uptime()
|
||||
start = time.time()
|
||||
|
||||
self.server_behaviors.reboot_and_await(self.server.id, NovaServerRebootTypes.HARD)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server, public_address)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
config=self.servers_config)
|
||||
finish = time.time()
|
||||
uptime_post_reboot = remote_client.get_uptime()
|
||||
self.assertLess(uptime_post_reboot, (uptime_start + (finish - start)))
|
||||
|
||||
@@ -38,12 +38,14 @@ class RebootServerSoftTests(ComputeFixture):
|
||||
def test_reboot_server_soft(self):
|
||||
""" The server should be signaled to reboot gracefully """
|
||||
public_address = self.server_behaviors.get_public_ip_address(self.server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.server, public_address)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
config=self.servers_config)
|
||||
uptime_start = remote_instance.get_uptime()
|
||||
start = time.time()
|
||||
|
||||
self.server_behaviors.reboot_and_await(self.server.id, NovaServerRebootTypes.SOFT)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server, public_address)
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server,
|
||||
config=self.servers_config)
|
||||
finish = time.time()
|
||||
uptime_post_reboot = remote_client.get_uptime()
|
||||
self.assertLess(uptime_post_reboot, (uptime_start + (finish - start)))
|
||||
|
||||
@@ -56,7 +56,7 @@ class RebuildServerTests(ComputeFixture):
|
||||
|
||||
@tags(type='smoke', net='no')
|
||||
def test_verify_rebuild_server_response(self):
|
||||
#Verify the properties in the initial response are correct
|
||||
# Verify the properties in the initial response are correct
|
||||
rebuilt_server = self.rebuilt_server_response.entity
|
||||
|
||||
if rebuilt_server.addresses.public is not None:
|
||||
@@ -69,17 +69,12 @@ class RebuildServerTests(ComputeFixture):
|
||||
|
||||
self.assertEqual(rebuilt_server.name, self.name,
|
||||
msg="Server name did not match")
|
||||
self.assertTrue(rebuilt_server.hostId is not None,
|
||||
msg="Host id was not set")
|
||||
self.assertEqual(rebuilt_server.image.id, self.image_ref_alt,
|
||||
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(self.server.links.self, self.rebuilt_server_response['location'],
|
||||
msg="Location url did not match a valid link for the server")
|
||||
self.assertEqual(rebuilt_server.metadata.key, 'value')
|
||||
self.assertEqual(rebuilt_server.created, self.server.created,
|
||||
msg="Server Created date changed after rebuild")
|
||||
@@ -93,7 +88,9 @@ class RebuildServerTests(ComputeFixture):
|
||||
server = self.rebuilt_server_response.entity
|
||||
rebuilt_server = self.rebuilt_server_response.entity
|
||||
public_address = self.server_behaviors.get_public_ip_address(rebuilt_server)
|
||||
server.adminPass = self.password
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(server, public_address)
|
||||
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.adminPass))
|
||||
msg="Could not connect to server (%s) using new admin password %s" % (public_address,
|
||||
server.admin_pass))
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
"""
|
||||
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 cafe.drivers.unittest.decorators import tags
|
||||
from test_repo.compute.fixtures import ComputeFixture
|
||||
|
||||
|
||||
class ServerRescueTests(ComputeFixture):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(ServerRescueTests, cls).setUpClass()
|
||||
server_response = cls.server_behaviors.create_active_server()
|
||||
cls.server = server_response.entity
|
||||
cls.resources.add(cls.server.id, cls.servers_client.delete_server)
|
||||
flavor_response = cls.flavors_client.get_flavor_details(cls.flavor_ref)
|
||||
cls.flavor = flavor_response.entity
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
super(ServerRescueTests, cls).tearDownClass()
|
||||
|
||||
@tags(type='smoke', net='yes')
|
||||
def test_rescue_and_unrescue_server_test(self):
|
||||
"""Verify that a server can enter and exit rescue mode"""
|
||||
rescue_response = self.servers_client.rescue(self.server.id)
|
||||
changed_password = rescue_response.entity.adminPass
|
||||
self.assertTrue(rescue_response.status_code is 200,
|
||||
msg="The response code while rescuing a server is %s instead of 200" % rescue_response.status_code)
|
||||
self.assertTrue(self.server.adminPass is not changed_password,
|
||||
msg="The password did not change after Rescue.")
|
||||
|
||||
#Enter rescue mode
|
||||
rescue_server_response = self.server_behaviors.wait_for_server_status(self.server.id, 'RESCUE')
|
||||
rescue_server = rescue_server_response.entity
|
||||
rescue_server.adminPass = changed_password
|
||||
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(rescue_server)
|
||||
|
||||
#Verify if hard drives are attached
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(rescue_server)
|
||||
partitions = remote_client.get_partition_details()
|
||||
self.assertEqual(3, len(partitions))
|
||||
|
||||
#Exit rescue mode
|
||||
unrescue_response = self.servers_client.unrescue(self.server.id)
|
||||
self.assertTrue(unrescue_response.status_code == 202,
|
||||
msg="The response code while unrescuing a server is %s instead of 202" % rescue_response.status_code)
|
||||
|
||||
self.server_behaviors.wait_for_server_status(self.server.id, 'ACTIVE')
|
||||
remote_client = self.server_behaviors.get_remote_instance_client(self.server)
|
||||
partitions = remote_client.get_partition_details()
|
||||
self.assertEqual(2, len(partitions), msg="The number of partitions after unrescue were not two.")
|
||||
result, message = remote_client.verify_partitions(self.flavor.disk, self.flavor.swap, 'active', partitions)
|
||||
self.assertTrue(result, msg=message)
|
||||
@@ -63,7 +63,9 @@ class ResizeServerUpConfirmTests(ComputeFixture):
|
||||
new_flavor = self.flavors_client.get_flavor_details(self.flavor_ref_alt).entity
|
||||
public_address = self.server_behaviors.get_public_ip_address(self.resized_server)
|
||||
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.resized_server, public_address)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.resized_server,
|
||||
self.servers_config,
|
||||
public_address)
|
||||
|
||||
lower_limit = int(new_flavor.ram) - (int(new_flavor.ram) * .1)
|
||||
server_ram_size = int(remote_instance.get_ram_size_in_mb())
|
||||
@@ -118,7 +120,9 @@ class ResizeServerDownConfirmTests(ComputeFixture):
|
||||
|
||||
new_flavor = self.flavors_client.get_flavor_details(self.flavor_ref).entity
|
||||
public_address = self.server_behaviors.get_public_ip_address(self.resized_server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.resized_server, public_address)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(self.resized_server,
|
||||
self.servers_config,
|
||||
public_address)
|
||||
|
||||
lower_limit = int(new_flavor.ram) - (int(new_flavor.ram) * .1)
|
||||
server_ram_size = int(remote_instance.get_ram_size_in_mb())
|
||||
|
||||
@@ -49,10 +49,6 @@ class ResizeServerUpRevertTests(ComputeFixture):
|
||||
server_response = self.server_behaviors.create_active_server()
|
||||
server_to_resize = server_response.entity
|
||||
self.resources.add(server_to_resize.id, self.servers_client.delete_server)
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(server_to_resize)
|
||||
file_name = rand_name('file') + '.txt'
|
||||
file_content = 'This is a test file'
|
||||
file_details = remote_instance.create_file(file_name, file_content)
|
||||
|
||||
#resize server and revert
|
||||
self.servers_client.resize(server_to_resize.id, self.flavor_ref_alt)
|
||||
@@ -66,12 +62,10 @@ class ResizeServerUpRevertTests(ComputeFixture):
|
||||
|
||||
# Verify that the server resize was reverted
|
||||
public_address = self.server_behaviors.get_public_ip_address(reverted_server)
|
||||
reverted_server.adminPass = server_to_resize.adminPass
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(reverted_server, public_address)
|
||||
actual_file_content = remote_instance.get_file_details(file_details.name)
|
||||
|
||||
# Verify that the file content does not change after resize revert
|
||||
self.assertEqual(actual_file_content, file_details, msg="file changed after resize revert")
|
||||
reverted_server.admin_pass = server_to_resize.admin_pass
|
||||
remote_instance = self.server_behaviors.get_remote_instance_client(reverted_server,
|
||||
self.servers_config,
|
||||
public_address)
|
||||
|
||||
self.assertEqual(self.flavor_ref, reverted_server.flavor.id,
|
||||
msg="Flavor id not reverted")
|
||||
|
||||
@@ -20,7 +20,6 @@ from cafe.drivers.unittest.decorators import tags
|
||||
from cloudcafe.compute.common.types import NovaServerStatusTypes
|
||||
from cloudcafe.compute.common.datagen import rand_name
|
||||
from test_repo.compute.fixtures import ComputeFixture
|
||||
from cafe.engine.clients.remote_instance.instance_client import InstanceClientFactory
|
||||
|
||||
|
||||
class CreateServerTest(ComputeFixture):
|
||||
|
||||
Reference in New Issue
Block a user