
Since the env option and fixtures depending on it were not in use by any RBAC test anymore, they were removed from code. Fixtures removed: - env Story: 2009156 Task: 43128 Signed-off-by: Rafael Fayan <RafaelShibana.Fayan@windriver.com> Change-Id: I15c3758263c3ec00385e063cad03f82f92fbd21d
123 lines
3.5 KiB
Python
123 lines
3.5 KiB
Python
#
|
|
# Copyright (c) 2021 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# All Rights Reserved.
|
|
#
|
|
|
|
from pytest import fixture
|
|
|
|
from tests.fv_rbac import debug1
|
|
from tests.fv_rbac import OpenStackNetworkingSetup
|
|
from tests.fv_rbac import OpenStackTestingSetup
|
|
|
|
|
|
@fixture(scope='session')
|
|
def rbac_setup(request):
|
|
|
|
if debug1:
|
|
print("\nSession Initialization")
|
|
|
|
cfg = OpenStackTestingSetup()
|
|
|
|
# Create projects
|
|
cfg._create_project("project1", description="project1 for rbac test1")
|
|
cfg._create_project("project2", description="project2 for rbac test1")
|
|
|
|
# NOTE(tbrito): assume roles are already created
|
|
# Create roles
|
|
# for role in ["project_readonly", "project_admin"]:
|
|
# cfg._create_role(role)
|
|
|
|
# Create users
|
|
for user in cfg.users:
|
|
cfg._create_user(user)
|
|
|
|
# Assign Roles to Users
|
|
cfg._grant_role("project_admin", "user11", "project1")
|
|
cfg._grant_role("member", "user12", "project1")
|
|
cfg._grant_role("project_readonly", "user13", "project1")
|
|
cfg._grant_role("admin", "user02", "project2")
|
|
cfg._grant_role("project_admin", "user21", "project2")
|
|
cfg._grant_role("member", "user22", "project2")
|
|
cfg._grant_role("project_readonly", "user23", "project2")
|
|
|
|
image = cfg._create_admin_image()
|
|
|
|
def teardown():
|
|
|
|
if debug1:
|
|
print("\nSession Teardown")
|
|
|
|
cfg._delete_admin_image(image)
|
|
|
|
cfg._revoke_role("project_admin", "user11", "project1")
|
|
cfg._revoke_role("member", "user12", "project1")
|
|
cfg._revoke_role("project_readonly", "user13", "project1")
|
|
cfg._revoke_role("admin", "user02", "project2")
|
|
cfg._revoke_role("project_admin", "user21", "project2")
|
|
cfg._revoke_role("member", "user22", "project2")
|
|
cfg._revoke_role("project_readonly", "user23", "project2")
|
|
|
|
for user in cfg.users:
|
|
cfg._delete_user(user)
|
|
|
|
# NOTE(tbrito): Roles should NOT be removed on a live deployment
|
|
# for role in ["project_readonly", "project_admin"]:
|
|
# cfg._delete_role(role)
|
|
|
|
for project in ["project1", "project2"]:
|
|
cfg._delete_project(project)
|
|
|
|
request.addfinalizer(teardown)
|
|
|
|
return cfg
|
|
|
|
|
|
@fixture(scope='session')
|
|
def network_admin_setup(request, rbac_setup):
|
|
|
|
cfg = OpenStackNetworkingSetup()
|
|
|
|
# Create segment ranges based on projects
|
|
cfg._create_network_segment_range(
|
|
"group0-ext-r0",
|
|
shared=True,
|
|
network_type="vlan",
|
|
physical_network="group0-data0",
|
|
minimum=10, maximum=10
|
|
)
|
|
cfg._create_network_segment_range(
|
|
"group0-data0-r0",
|
|
project_name="project1",
|
|
shared=False,
|
|
network_type="vlan",
|
|
physical_network="group0-data0",
|
|
minimum=400, maximum=499
|
|
)
|
|
cfg._create_network_segment_range(
|
|
"group0-data0b-r0",
|
|
shared=True,
|
|
network_type="vlan",
|
|
physical_network="group0-data0",
|
|
minimum=500, maximum=599
|
|
)
|
|
cfg._create_network_segment_range(
|
|
"group0-data1-r0",
|
|
project="project2",
|
|
shared=False,
|
|
network_type="vlan",
|
|
physical_network="group0-data1",
|
|
minimum=600, maximum=699
|
|
)
|
|
|
|
def network_admin_teardown():
|
|
cfg._delete_network_segment_range("group0-data1-r0")
|
|
cfg._delete_network_segment_range("group0-data0b-r0")
|
|
cfg._delete_network_segment_range("group0-data0-r0")
|
|
cfg._delete_network_segment_range("group0-ext-r0")
|
|
|
|
request.addfinalizer(network_admin_teardown)
|
|
return cfg
|