From 744d8f0fc4da5509d04130d4523efa2e401afa48 Mon Sep 17 00:00:00 2001 From: tierno Date: Mon, 1 Jun 2020 14:45:18 +0200 Subject: [PATCH] adding project quotas test Signed-off-by: tierno --- 02-osm-nfvi-test-plan.md | 81 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/02-osm-nfvi-test-plan.md b/02-osm-nfvi-test-plan.md index 8f0abf7..7fc317e 100644 --- a/02-osm-nfvi-test-plan.md +++ b/02-osm-nfvi-test-plan.md @@ -393,6 +393,87 @@ osm vnf-show ### \[BASIC-16\] RBAC enforcement +### \[BASIC-17\] Quotas and project + +This test will check project creation edition and isolation. It tests the quotas per project (Feature 9015). Finally it tests projects cannot be deleted with dependencies. + +```bash +# create with quotas. Test osmclient with both comma separated list and repetition of --quotas option +osm project-create p3 --quotas vnfds=1,nsds=1 --quotas nsrs=1 +osm project-show p3 | grep -q -e '"vnfds": 1' || echo "FAIL" +osm project-show p3 | grep -q -e '"nsds": 1' || echo "FAIL" +osm project-show p3 | grep -q -e '"nsds": 1' || echo "FAIL" + +osm project-create p2 --quotas vnfds=1,nsds=1,nsrs=1 +osm project-show p2 | grep -q -e '"vnfds": 1' || echo "FAIL" +osm project-show p2 | grep -q -e '"nsds": 1' || echo "FAIL" +osm project-show p2 | grep -q -e '"nsds": 1' || echo "FAIL" + +# create user and assign both projecst with project_admin role +osm user-create u --password u --project-role-mappings p3,project_admin --project-role-mappings p2,project_admin + +# change project name +osm project-update p3 --name p1 +osm project-show p1 | grep -q -e '"vnfds": 1' || echo "FAIL" +osm project-show p1 | grep -q -e '"nsds": 1' || echo "FAIL" +osm project-show p1 | grep -q -e '"nsds": 1' || echo "FAIL" +osm user-show u | grep -q -e '"p3"' && echo "FAIL" # user uses renamed project 'p1', not 'p3' + +# list packages, must be empty, without any uuid. Using regular expression for grep +osm --project p1 --password u --user u vnfpkg-list | grep -q -E "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}" && echo "FAIL" + +# add packages +osm --project p1 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=v1;name=v1" || echo "FAIL" +# this must fail for quota exceeded +osm --project p1 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=v2;name=v2" && echo "FAIL" + +# enlarge quota +osm project-update p1 --quotas "vnfds=10,nsds=,nsrs=" +osm project-show p1 | grep -q -e '"vnfds": 10' || echo "FAIL" +osm project-show p1 | grep -q -e '"nsds":' && echo "FAIL" + +# Add more packages +for i in {2..10} ; do + osm --project p1 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=v${i};name=v${i}" || echo "FAIL" +done +# Another vnfpkg created will fail for quota +osm --project p1 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=v11;name=v11" && echo "FAIL" + +# Switch to project 2 +osm --project p2 --password u --user u vnfpkg-list | grep -q -E "[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}" && echo "FAIL" +# test quota +osm --project p2 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=vp2_1;name=vp2_1" +osm --project p2 --password u --user u vnfpkg-create hackfest_basic_vnf.tar.gz --override "id=vp2_2;name=vp2_2" && echo "FAIL" + +# test that one project cannot see the scope of other +osm --project p2 --password u --user u --all-projects vnfpkg-list && echo "FAIL" +osm --project p1 --password u --user u --all-projects vnfpkg-show vp2_1 && echo "FAIL" +osm --project p2 --password u --user u --all-projects vnfpkg-show v1 && echo "FAIL" +``` + +Delete. Test dependencies + +```bash +# Remove packages +for i in {1..10} ; do + osm --project p1 --password u --user u vnfpkg-delete v${i} +done +osm --project p2 --password u --user u vnfpkg-delete v1p2_1 + +# delete project will fail because in use by user 'u' +osm project-delete p2 && echo "FAIL" + +osm user-update u --remove-project p2 # remove project from user +osm user-show u | grep -q -e '"p2"' && echo "FAIL" +osm project-delete p2 || echo "FAIL" # p2 can be deleted +osm project-delete p1 && echo "FAIL" # p1 still in use by user 'u' + +osm user-delete u +osm project-delete p1 + +osm project-list | grep -e p1 -e p2 && echo "FAIL" +``` + ## Service Assurance ### \[SA-01\] VNF with VIM-based metrics -- GitLab