Commit 400258f2 authored by Francisco-Javier Ramon Salguero's avatar Francisco-Javier Ramon Salguero
Browse files

Merge branch 'quotas' into 'master'

adding project quota test

See merge request !3
parents 5b262170 744d8f0f
Loading
Loading
Loading
Loading
+81 −0
Original line number Diff line number Diff line
@@ -393,6 +393,87 @@ osm vnf-show <VNF_ID>

### \[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