summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/run_tests.sh128
1 files changed, 128 insertions, 0 deletions
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
new file mode 100644
index 00000000..1557d3eb
--- /dev/null
+++ b/tests/run_tests.sh
@@ -0,0 +1,128 @@
+#!/usr/bin/env bash
+
+# ==========================================================
+# test for OpenStack/Moon API through moonclient cli
+
+tenant_net_name=public
+
+openstack project list
+
+moon intraextension list
+
+NET_ID=$(nova net-list | grep $tenant_net_name | awk '{print $2}')
+
+echo \* Creating and booting a sample VM ...
+nova boot --flavor m1.tiny --image cirros-0.3.3-x86_64 --security-groups default --nic net-id=$NET_ID --poll moontest
+
+moon intraextension add --policy_model policy_authz --description "test" ie_test
+
+IE_ID=$(moon intraextension list | grep ie_test | awk '{print $2}')
+
+nova list
+
+moon tenant add admin
+
+TENANT_ID=$(moon tenant list | grep "Admin Project" | awk '{print $2}')
+
+moon tenant set --authz ${IE_ID} ${TENANT_ID}
+
+VM_ID=$(nova list | grep moontest | grep ACTIVE | awk '{print $2}')
+echo \*\* Nova VM ID is ${VM_ID}
+
+echo \!\!\! Error is normal here
+nova pause ${VM_ID}
+echo Error is normal here \!\!\!
+
+moon intraextension select ${IE_ID}
+echo \*\* Intraextension ID is ${IE_ID}
+
+echo \*\* Subject list
+moon subject list
+
+echo \*\* Object list
+moon object list
+
+moon object add ${VM_ID}
+
+OBJ_ID=$(moon object list | grep ${VM_ID} | awk '{print $2}')
+echo \*\* Moon Object ID is ${OBJ_ID}
+
+OBJ_CAT_ID=$(moon object category list | grep object_security_level | awk '{print $2}')
+echo \*\* Category object_security_level ID is ${OBJ_CAT_ID}
+
+OBJ_SCOPE_ID=$(moon object scope list ${OBJ_CAT_ID} | grep low | awk '{print $2}')
+echo \*\* Scope low ID is ${OBJ_SCOPE_ID}
+
+moon object assignment add ${OBJ_ID} ${OBJ_CAT_ID} ${OBJ_SCOPE_ID}
+
+moon aggregation algorithm show
+ALGO_ID=$(moon aggregation algorithm list | grep one_true | awk '{print $2}')
+moon aggregation algorithm set ${ALGO_ID}
+moon aggregation algorithm show
+
+nova pause ${VM_ID}
+
+echo \*\* There must be NO error here
+
+nova list
+
+moon log
+
+echo \*\* Deleting test VM
+nova delete ${VM_ID}
+
+echo \* Testing Swift \(may take time... be patient\)
+
+echo \!\!\! Error is normal here
+swift list
+echo Error is normal here \!\!\!
+
+AUTH_ID=$(swift auth | grep STORAGE_URL | cut -d "/" -f "5")
+echo \*\* Auth_id is ${AUTH_ID}
+
+echo \*\* Add ${AUTH_ID} object
+moon object add ${AUTH_ID}
+
+OBJ_ID=$(moon object list | grep ${AUTH_ID} | awk '{print $2}')
+echo \*\*\* Moon Object ID is ${OBJ_ID}
+
+OBJ_CAT_ID=$(moon object category list | grep object_security_level | awk '{print $2}')
+echo \*\*\* Category object_security_level ID is ${OBJ_CAT_ID}
+
+OBJ_SCOPE_ID=$(moon object scope list ${OBJ_CAT_ID} | grep low | awk '{print $2}')
+echo \*\*\* Scope low ID is ${OBJ_SCOPE_ID}
+
+moon object assignment add ${OBJ_ID} ${OBJ_CAT_ID} ${OBJ_SCOPE_ID}
+
+echo \*\* Add get_account_details action
+
+moon action add get_account_details
+ACT_ID=$(moon action list | grep "get_account_details" | awk '{print $2}')
+
+ACT_CAT_ACCESS_ID=$(moon action category list | grep "access" | awk '{print $2}')
+ACT_CAT_RESOURCE_ID=$(moon action category list | grep "resource_action" | awk '{print $2}')
+
+ACT_SCOPE_ACCESS_ID=$(moon action scope list ${ACT_CAT_ACCESS_ID} | grep "read" | awk '{print $2}')
+ACT_SCOPE_RESOURCE_ID=$(moon action scope list ${ACT_CAT_RESOURCE_ID} | grep "storage_access" | awk '{print $2}')
+
+moon action assignment add ${ACT_ID} ${ACT_CAT_ACCESS_ID} ${ACT_SCOPE_ACCESS_ID}
+moon action assignment add ${ACT_ID} ${ACT_CAT_RESOURCE_ID} ${ACT_SCOPE_RESOURCE_ID}
+
+SUBMETARULE_ID=$(moon submetarule show | grep "mls_rule" | awk '{print $2}')
+
+moon rule add ${SUBMETARULE_ID} "high,storage_access,low"
+
+echo \*\* Swift must be OK here
+swift list
+
+echo \* Deleting intraextension
+moon tenant set --authz "" ${TENANT_ID}
+
+moon intraextension delete ${IE_ID}
+
+
+# ==========================================================
+# test for OpenStack OpenDaylight identity federation
+
+# create tenant, user, and password in OpenStack/moon
+# use the created tenant, user, password to access OpenDaylight