Add of flavor admin and keypair tests

* Modifications to compute fixture to accomidate admin config
* Added basic keypair test
* Added basic add/delete flavor test

Change-Id: I6a1feb1298f876568d1779c47a79644581f07d66
This commit is contained in:
Daryl Walleck
2013-04-14 00:35:16 -05:00
parent 53f5a1c414
commit fb6ca42fc0
5 changed files with 110 additions and 19 deletions

View File

@@ -0,0 +1,33 @@
"""
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 ComputeAdminFixture
class FlavorsAdminTest(ComputeAdminFixture):
@classmethod
def setUpClass(cls):
super(FlavorsAdminTest, cls).setUpClass()
@classmethod
def tearDownClass(cls):
super(FlavorsAdminTest, cls).tearDownClass()
def test_create_delete_flavors(self):
self.admin_flavors_client.create_flavor(name='test2', ram='128', vcpus='1',
disk='10', id='99', is_public=True)
self.admin_flavors_client.delete_flavor('99')

View 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.
"""

View 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.
"""

View File

@@ -0,0 +1,33 @@
"""
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 test_repo.compute.fixtures import ComputeFixture
class FlavorsTest(ComputeFixture):
def test_create_delete_keypair(self):
resp = self.keypairs_client.create_keypair('test3')
self.assertEqual(resp.status_code, 200)
keypair = resp.entity
self.assertEqual(keypair.name, 'test3')
self.assertIsNotNone(keypair.public_key)
self.assertIsNotNone(keypair.fingerprint)
self.keypairs_client.list_keypairs()
self.keypairs_client.delete_keypair('test3')

View File

@@ -24,6 +24,7 @@ from cloudcafe.compute.common.exception_handler import ExceptionHandler
from cloudcafe.compute.flavors_api.client import FlavorsClient
from cloudcafe.compute.servers_api.client import ServersClient
from cloudcafe.compute.images_api.client import ImagesClient
from cloudcafe.compute.extensions.keypairs_api.client import KeypairsClient
from cloudcafe.compute.servers_api.behaviors import ServerBehaviors
from cloudcafe.compute.images_api.behaviors import ImageBehaviors
from cloudcafe.compute.config import ComputeConfig
@@ -33,11 +34,9 @@ from cloudcafe.compute.servers_api.config import ServersConfig
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
from cloudcafe.identity.v2_0.tokens_api.client import TokenAPI_Client as OSTokenAPI_Client
from cloudcafe.identity.v2_0.tokens_api.behaviors import TokenAPI_Behaviors as OSTokenAPI_Behaviors
from cloudcafe.identity.v2_0.tokens_api.config import TokenAPI_Config as OSTokenAPI_Config
from cloudcafe.compute.config import ComputeAdminConfig
@@ -78,6 +77,8 @@ class ComputeFixture(BaseTestFixture):
'json', 'json')
cls.images_client = ImagesClient(url, access_data.token.id_,
'json', 'json')
#cls.keypairs_client = KeypairsClient(url, access_data.token.id_,
# 'json', 'json')
cls.server_behaviors = ServerBehaviors(cls.servers_client,
cls.servers_config,
cls.images_config,
@@ -207,25 +208,19 @@ class ComputeAdminFixture(BaseTestFixture):
compute_service = access_data.get_service(
cls.compute_config.compute_endpoint_name)
url = compute_service.get_endpoint(
cls.compute_config.region).public_url
cls.flavors_client = FlavorsClient(url, access_data.token.id_,
compute_admin_config.region).public_url
cls.admin_flavors_client = FlavorsClient(url, access_data.token.id_,
'json', 'json')
cls.servers_client = ServersClient(url, access_data.token.id_,
cls.admin_servers_client = ServersClient(url, access_data.token.id_,
'json', 'json')
cls.images_client = ImagesClient(url, access_data.token.id_,
'json', 'json')
cls.server_behaviors = ServerBehaviors(cls.servers_client,
cls.admin_server_behaviors = ServerBehaviors(cls.admin_servers_client,
cls.servers_config,
cls.images_config,
cls.flavors_config)
cls.image_behaviors = ImageBehaviors(cls.images_client,
cls.images_config)
cls.flavors_client.add_exception_handler(ExceptionHandler())
cls.resources = ResourcePool()
cls.admin_servers_client.add_exception_handler(ExceptionHandler())
@classmethod
def tearDownClass(cls):
super(ComputeAdminFixture, cls).tearDownClass()
cls.flavors_client.delete_exception_handler(ExceptionHandler())
#cls.resources.release()
cls.resources.release()