# limitations under the License.
*** Settings ***
-Documentation [QUOTAS-01] Quota enforcement.
+Documentation [QUOTAS-01] Quota enforcement.
Library OperatingSystem
Library String
Resource %{ROBOT_DEVOPS_FOLDER}/lib/project_lib.robot
-Variables %{ROBOT_DEVOPS_FOLDER}/resources/quotas_01-quota_enforcement_data.py
+Force Tags quotas_01 cluster_main daily regression
Suite Teardown Run Keyword And Ignore Error Suite Cleanup
*** Variables ***
-${success_return_code} 0
+# VNFD package to use during test
+${vnfd_name} hackfest_basic_vnf
+${vnfd_pkg} %{PACKAGES_FOLDER}/${vnfd_name}
+
+# 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=
-${vnfd_pkg} %{PACKAGES_FOLDER}/${vnfd_name}
+
+# User name and password for project
+${user_name} quotas_01_user
+${user_password} quotas_01_pass
+
+${success_return_code} 0
+
*** Test Cases ***
Create First Project With Quotas
- [Tags] quota_enforcement sanity regression
Create Project With Quotas ${project_1_name} ${project_1_quotas}
${project_1_vnfds}= Get Project Quotas ${project_1_name} vnfds
Create Second Project With Quotas
- [Tags] quota_enforcement sanity regression
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_ns_instances}
Create User In Projects
- [Tags] quota_enforcement sanity regression
${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}
Change First Project Name to Third Project Name
- [Tags] quota_enforcement sanity regression
Update Project Name ${project_1_name} ${project_3_name}
${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds
Create VNFDs On Third Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
- Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v1;product-name=v1'
- Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
+ Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v1;product-name=v1'
+ Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
Increase Third Project Quotas
- [Tags] quota_enforcement sanity regression
Update Project Quotas ${project_3_name} ${project_3_quotas}
${project_3_vnfds}= Get Project Quotas ${project_3_name} vnfds
Create More VNFDs On Third Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
- Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
- Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v3;product-name=v3'
- Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v4;product-name=v4'
- Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v5;product-name=v5'
- Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v6;product-name=v6'
+ Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v2;product-name=v2'
+ Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v3;product-name=v3'
+ Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v4;product-name=v4'
+ Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v5;product-name=v5'
+ Run Keyword And Expect Error * Create VNFD In Project ${project_3_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=v6;product-name=v6'
Create VNFDs On Second Project Until Exceed Quota
- [Tags] quota_enforcement sanity regression
- Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_1;product-name=vp2_1'
- Run Keyword And Expect Error * Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_2;product-name=vp2_2'
+ Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_1;product-name=vp2_1'
+ Run Keyword And Expect Error * Create VNFD In Project ${project_2_name} ${vnfd_pkg} ${user_name} ${user_password} override='id=vp2_2;product-name=vp2_2'
Check Project Scopes
- [Tags] quota_enforcement sanity regression
${rc} ${stdout}= Run And Return RC And Output osm --project ${project_3_name} --password ${user_password} --user ${user_name} vnfpkg-show vp2_1
Log ${stdout}
Delete Second Project VNFD
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
- Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_password}
Delete Third Project VNFDs
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
- Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_password}
- Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_password}
- Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_password}
- Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_password}
- Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_password}
+ Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_password}
Delete Second Project After Removing User From It
- [Tags] quota_enforcement sanity regression cleanup
+ [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 ${user_name} ${project_2_name}
+ Delete Project ${project_2_name}
Delete Projects User
- [Tags] quota_enforcement sanity regression cleanup
+ [Tags] cleanup
${rc}= Run And Return RC osm user-delete ${user_name}
Delete Third Project
- [Tags] quota_enforcement sanity regression cleanup
+ [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_password}
- Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_password}
- Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_password}
- Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_password}
- Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_password}
- Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_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 Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_2_name} vp2_1 ${user_name} ${user_password}
+ Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v1 ${user_name} ${user_password}
+ Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v2 ${user_name} ${user_password}
+ Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v3 ${user_name} ${user_password}
+ Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v4 ${user_name} ${user_password}
+ Run Keyword If Any Tests Failed Run Keyword And Ignore Error Delete VNFD In Project ${project_3_name} v5 ${user_name} ${user_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}