X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Ftests.git;a=blobdiff_plain;f=robot-systest%2Ftestsuite%2Fquotas_01-quota_enforcement.robot;fp=robot-systest%2Ftestsuite%2Fquotas_01-quota_enforcement.robot;h=6558c1718bd1f9d6b4a866f30bce34e8c3bf6835;hp=f37412dacd1627e6c2dbc9d989720962f68aa5d2;hb=5e001f506b744021d5ef25999c9da28cf56d8fbc;hpb=b0db4577db692b0d6c9210099c58c808cbc993c1 diff --git a/robot-systest/testsuite/quotas_01-quota_enforcement.robot b/robot-systest/testsuite/quotas_01-quota_enforcement.robot index f37412d..6558c17 100644 --- a/robot-systest/testsuite/quotas_01-quota_enforcement.robot +++ b/robot-systest/testsuite/quotas_01-quota_enforcement.robot @@ -1,3 +1,4 @@ +*** Comments *** # 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 @@ -10,6 +11,7 @@ # See the License for the specific language governing permissions and # limitations under the License. + *** Settings *** Documentation [QUOTAS-01] Quota enforcement. @@ -17,160 +19,151 @@ Library OperatingSystem Library String Library Collections -Resource %{ROBOT_DEVOPS_FOLDER}/lib/project_lib.robot -Resource %{ROBOT_DEVOPS_FOLDER}/lib/user_lib.robot +Resource ../lib/project_lib.resource +Resource ../lib/user_lib.resource -Force Tags quotas_01 cluster_main daily regression +Test Tags quotas_01 cluster_main daily regression Suite Teardown Run Keyword And Ignore Error Suite Cleanup *** Variables *** # VNFD package to use during test -${vnfd_pkg} hackfest_basic_vnf +${VNFD_PKG} hackfest_basic_vnf # Project names and quotas to use -${project_1_name} quotas_01_proj_1 -${project_2_name} quotas_01_proj_2 -${project_3_name} quotas_01_proj_3 -${project_1_quotas} vnfds=1,nsds=2,ns_instances=3 -${project_2_quotas} vnfds=1,nsds=1,ns_instances=1 -${project_3_quotas} vnfds=5,nsds=,ns_instances= +${PROJECT_1_NAME} quotas_01_proj_1 +${PROJECT_2_NAME} quotas_01_proj_2 +${PROJECT_3_NAME} quotas_01_proj_3 +${PROJECT_1_QUOTAS} vnfds=1,nsds=2,ns_instances=3 +${PROJECT_2_QUOTAS} vnfds=1,nsds=1,ns_instances=1 +${PROJECT_3_QUOTAS} vnfds=5,nsds=,ns_instances= # User name and password for project -${user_name} quotas_01_user -${user_password} Quotas_01_pass -${user_new_password} Quotas_01_new_pass +${USERNAME} quotas_01_user +${USER_PASSWORD} Quotas_01_pass +${USER_NEW_PASSWORD} Quotas_01_new_pass -${success_return_code} 0 +${SUCCESS_RETURN_CODE} 0 *** Test Cases *** Create First Project With Quotas - - Create Project With Quotas ${project_1_name} ${project_1_quotas} - ${project_1_vnfds}= Get Project Quotas ${project_1_name} vnfds + [Documentation] Create a first project with quotas, then get the project quotas and check that they are correct. + Create Project With Quotas ${PROJECT_1_NAME} ${PROJECT_1_QUOTAS} + ${project_1_vnfds}= Get Project Quotas ${PROJECT_1_NAME} vnfds Should Be Equal As Integers 1 ${project_1_vnfds} - ${project_1_nsds}= Get Project Quotas ${project_1_name} nsds + ${project_1_nsds}= Get Project Quotas ${PROJECT_1_NAME} nsds Should Be Equal As Integers 2 ${project_1_nsds} - ${project_1_ns_instances}= Get Project Quotas ${project_1_name} ns_instances + ${project_1_ns_instances}= Get Project Quotas ${PROJECT_1_NAME} ns_instances Should Be Equal As Integers 3 ${project_1_ns_instances} - Create Second Project With Quotas - - Create Project With Quotas ${project_2_name} ${project_2_quotas} - ${project_2_vnfds}= Get Project Quotas ${project_2_name} vnfds + [Documentation] Create a second project with quotas, then get the project quotas and check that they are correct. + Create Project With Quotas ${PROJECT_2_NAME} ${PROJECT_2_QUOTAS} + ${project_2_vnfds}= Get Project Quotas ${PROJECT_2_NAME} vnfds Should Be Equal As Integers 1 ${project_2_vnfds} - ${project_2_nsds}= Get Project Quotas ${project_2_name} nsds + ${project_2_nsds}= Get Project Quotas ${PROJECT_2_NAME} nsds Should Be Equal As Integers 1 ${project_2_nsds} - ${project_2_ns_instances}= Get Project Quotas ${project_2_name} ns_instances + ${project_2_ns_instances}= Get Project Quotas ${PROJECT_2_NAME} ns_instances Should Be Equal As Integers 1 ${project_2_ns_instances} Create User In Projects - - ${rc} ${stdout}= Run And Return RC And Output osm user-create ${user_name} --password ${user_password} --project-role-mappings ${project_1_name},project_admin --project-role-mappings ${project_2_name},project_admin - Should Be Equal As Integers ${rc} ${success_return_code} - Check If User Is Assigned To Project ${user_name} ${project_1_name} - Check If User Is Assigned To Project ${user_name} ${project_2_name} - Update User Password ${user_name} ${user_password} ${user_new_password} - + [Documentation] Create a user with role project_admin in both projects. + ${rc} ${stdout}= Run And Return RC And Output osm user-create ${USERNAME} --password ${USER_PASSWORD} --project-role-mappings ${PROJECT_1_NAME},project_admin --project-role-mappings ${PROJECT_2_NAME},project_admin + Log ${rc},${stdout} + Should Be Equal As Integers ${rc} ${SUCCESS_RETURN_CODE} + Check If User Is Assigned To Project ${USERNAME} ${PROJECT_1_NAME} + Check If User Is Assigned To Project ${USERNAME} ${PROJECT_2_NAME} + Update User Password ${USERNAME} ${USER_PASSWORD} ${USER_NEW_PASSWORD} Change First Project Name to Third Project Name - - Update Project Name ${project_1_name} ${project_3_name} - ${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds + [Documentation] Rename first project. From now on, the project will be considered for the tests a third project. + Update Project Name ${PROJECT_1_NAME} ${PROJECT_3_NAME} + ${project_3_vnfds}= Get Project Quotas ${PROJECT_3_NAME} vnfds Should Be Equal As Integers 1 ${project_3_vnfds} - ${project_3_nsds}= Get Project Quotas ${project_3_name} nsds + ${project_3_nsds}= Get Project Quotas ${PROJECT_3_NAME} nsds Should Be Equal As Integers 2 ${project_3_nsds} - ${project_3_ns_instances}= Get Project Quotas ${project_3_name} ns_instances + ${project_3_ns_instances}= Get Project Quotas ${PROJECT_3_NAME} ns_instances Should Be Equal As Integers 3 ${project_3_ns_instances} - Check If User Is Assigned To Project ${user_name} ${project_3_name} - + Check If User Is Assigned To Project ${USERNAME} ${PROJECT_3_NAME} Create VNFDs On Third Project Until Exceed Quota - - Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v1;product-name=v1' - Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v2;product-name=v2' - + [Documentation] Upload VNF packages in the third project. + Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v1;product-name=v1' + Run Keyword And Expect Error * Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v2;product-name=v2' Increase Third Project Quotas - - Update Project Quotas ${project_3_name} ${project_3_quotas} - ${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds + [Documentation] Update the quotas of the third project. + Update Project Quotas ${PROJECT_3_NAME} ${PROJECT_3_QUOTAS} + ${project_3_vnfds}= Get Project Quotas ${PROJECT_3_NAME} vnfds Should Be Equal As Integers 5 ${project_3_vnfds} - Create More VNFDs On Third Project Until Exceed Quota - - Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v2;product-name=v2' - Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v3;product-name=v3' - Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v4;product-name=v4' - Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v5;product-name=v5' - Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=v6;product-name=v6' - + [Documentation] Upload VNF packages in the third project until the quota is reached, so that an error is obtained. + Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v2;product-name=v2' + Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v3;product-name=v3' + Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v4;product-name=v4' + Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v5;product-name=v5' + Run Keyword And Expect Error * Create VNFD In Project ${PROJECT_3_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=v6;product-name=v6' Create VNFDs On Second Project Until Exceed Quota - - Create VNFD In Project ${project_2_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=vp2_1;product-name=vp2_1' - Run Keyword And Expect Error * Create VNFD In Project ${project_2_name} '%{PACKAGES_FOLDER}/${vnfd_pkg}' ${user_name} ${user_new_password} override='id=vp2_2;product-name=vp2_2' - + [Documentation] Upload VNF packages in the second project until the quota is reached, so that an error is obtained. + Create VNFD In Project ${PROJECT_2_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=vp2_1;product-name=vp2_1' + Run Keyword And Expect Error * Create VNFD In Project ${PROJECT_2_NAME} '%{PACKAGES_FOLDER}/${VNFD_PKG}' ${USERNAME} ${USER_NEW_PASSWORD} override='id=vp2_2;product-name=vp2_2' Check Project Scopes - - ${rc} ${stdout}= Run And Return RC And Output osm --project ${project_3_name} --password ${user_new_password} --user ${user_name} vnfpkg-show vp2_1 + [Documentation] Check that the user can see a VNF package in both projects. + ${rc} ${stdout}= Run And Return RC And Output osm --project ${PROJECT_3_NAME} --password ${USER_NEW_PASSWORD} --user ${USERNAME} vnfpkg-show vp2_1 Log ${stdout} - Should Not Be Equal As Integers ${rc} ${success_return_code} - ${rc} ${stdout}= Run And Return RC And Output osm --project ${project_2_name} --password ${user_new_password} --user ${user_name} vnfpkg-show v1 + Should Not Be Equal As Integers ${rc} ${SUCCESS_RETURN_CODE} + ${rc} ${stdout}= Run And Return RC And Output osm --project ${PROJECT_2_NAME} --password ${USER_NEW_PASSWORD} --user ${USERNAME} vnfpkg-show v1 Log ${stdout} - Should Not Be Equal As Integers ${rc} ${success_return_code} - + Should Not Be Equal As Integers ${rc} ${SUCCESS_RETURN_CODE} Delete Second Project VNFD + [Documentation] Delete VNF packages from second project. [Tags] cleanup - - Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_new_password} - + Delete VNFD In Project ${PROJECT_2_NAME} vp2_1 ${USERNAME} ${USER_NEW_PASSWORD} Delete Third Project VNFDs + [Documentation] Delete VNF packages from third project. [Tags] cleanup - - Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_new_password} - Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_new_password} - Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_new_password} - Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_new_password} - Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_new_password} - + Delete VNFD In Project ${PROJECT_3_NAME} v1 ${USERNAME} ${USER_NEW_PASSWORD} + Delete VNFD In Project ${PROJECT_3_NAME} v2 ${USERNAME} ${USER_NEW_PASSWORD} + Delete VNFD In Project ${PROJECT_3_NAME} v3 ${USERNAME} ${USER_NEW_PASSWORD} + Delete VNFD In Project ${PROJECT_3_NAME} v4 ${USERNAME} ${USER_NEW_PASSWORD} + Delete VNFD In Project ${PROJECT_3_NAME} v5 ${USERNAME} ${USER_NEW_PASSWORD} Delete Second Project After Removing User From It + [Documentation] Delete user from second project, then delete the second project. [Tags] cleanup - - Run Keyword And Expect Error * Delete Project ${project_2_name} - Remove User From Project ${user_name} ${project_2_name} - Delete Project ${project_2_name} - + Run Keyword And Expect Error * Delete Project ${PROJECT_2_NAME} + Remove User From Project ${USERNAME} ${PROJECT_2_NAME} + Delete Project ${PROJECT_2_NAME} Delete Projects User + [Documentation] Delete user. [Tags] cleanup - - ${rc}= Run And Return RC osm user-delete ${user_name} - + ${rc}= Run And Return RC osm user-delete ${USERNAME} + Log ${rc} Delete Third Project + [Documentation] Delete third project. [Tags] cleanup - - Delete Project ${project_3_name} + Delete Project ${PROJECT_3_NAME} *** Keywords *** Suite Cleanup - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_new_password} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete Project ${project_1_name} - Run Keyword If Any Tests Failed Delete Project ${project_2_name} - Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete Project ${project_3_name} - Run And Return RC osm user-delete ${user_name} + [Documentation] Test Suite Cleanup: Deleting VNF packages, projects and users. + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_2_NAME} vp2_1 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_3_NAME} v1 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_3_NAME} v2 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_3_NAME} v3 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_3_NAME} v4 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${PROJECT_3_NAME} v5 ${USERNAME} ${USER_NEW_PASSWORD} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete Project ${PROJECT_1_NAME} + Run Keyword If Any Tests Failed Delete Project ${PROJECT_2_NAME} + Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete Project ${PROJECT_3_NAME} + Run And Return RC osm user-delete ${USERNAME}