Adds update and delete agent tests

Adds tests for PUT and DELETE endpoints for the os-agents client
to test_agents_rbac.

Change-Id: I916061e8301876385f3bf1566ed6a2ac14f1467a
Closes-Bug: #1705796
This commit is contained in:
Samantha Blanco 2017-08-03 16:00:07 -04:00
parent 7b9ae3fbc8
commit 428c44ae9d
2 changed files with 55 additions and 0 deletions

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from tempest.lib.common.utils import data_utils
from tempest.lib.common.utils import test_utils
from tempest.lib import decorators
from tempest import test
@ -29,6 +31,16 @@ class AgentsRbacTest(rbac_base.BaseV2ComputeRbacTest):
raise cls.skipException(
'%s skipped as os-agents not enabled' % cls.__name__)
def _param_helper(self, **kwargs):
rand_key = 'architecture'
if rand_key in kwargs:
# NOTE: The rand_name is for avoiding agent conflicts.
# If you try to create an agent with the same hypervisor,
# os and architecture as an existing agent, Nova will return
# an HTTPConflict or HTTPServerError.
kwargs[rand_key] = data_utils.rand_name(kwargs[rand_key])
return kwargs
@rbac_rule_validation.action(
service="nova", rule="os_compute_api:os-agents")
@decorators.idempotent_id('d1bc6d97-07f5-4f45-ac29-1c619a6a7e27')
@ -48,3 +60,41 @@ class AgentsRbacTest(rbac_base.BaseV2ComputeRbacTest):
body = self.agents_client.create_agent(**params)['agent']
self.addCleanup(self.agents_client.delete_agent,
body['agent_id'])
@rbac_rule_validation.action(
service="nova",
rule="os_compute_api:os-agents")
@decorators.idempotent_id('b22f2681-9ffb-439b-b240-dae503e41020')
def test_update_agent(self):
params = self._param_helper(
hypervisor='common', os='linux',
architecture='x86_64', version='7.0',
url='xxx://xxxx/xxx/xxx',
md5hash='add6bb58e139be103324d04d82d8f545')
body = self.agents_client.create_agent(**params)['agent']
self.addCleanup(self.agents_client.delete_agent,
body['agent_id'])
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
update_params = self._param_helper(
version='8.0',
url='xxx://xxxx/xxx/xxx2',
md5hash='add6bb58e139be103324d04d82d8f547')
self.agents_client.update_agent(body['agent_id'], **update_params)
@rbac_rule_validation.action(
service="nova",
rule="os_compute_api:os-agents")
@decorators.idempotent_id('c5042af8-0682-43b0-abc4-bf33349e23dd')
def test_delete_agent(self):
params = self._param_helper(
hypervisor='common', os='linux',
architecture='x86_64', version='7.0',
url='xxx://xxxx/xxx/xxx',
md5hash='add6bb58e139be103324d04d82d8f545')
body = self.agents_client.create_agent(**params)['agent']
self.addCleanup(test_utils.call_and_ignore_notfound_exc,
self.agents_client.delete_agent,
body['agent_id'])
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.agents_client.delete_agent(body['agent_id'])

View File

@ -0,0 +1,5 @@
---
features:
- |
Added tests to test_agents_rbac.py for PUT and
DELETE endpoints.