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:
Daryl Walleck
2013-04-09 00:11:43 -05:00
parent bdea0bb4ca
commit 00930454bd
9 changed files with 37 additions and 107 deletions

View File

@@ -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)

View File

@@ -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" %

View File

@@ -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)))

View File

@@ -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)))

View File

@@ -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))

View File

@@ -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)

View File

@@ -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())

View File

@@ -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")

View File

@@ -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):