RANGER-4105: updated stress_policy.py to create users/groups before creating policies - #2
diff --git a/ranger-tools/src/main/python/stress/stress_policy.py b/ranger-tools/src/main/python/stress/stress_policy.py
index bbe423c..4f48053 100755
--- a/ranger-tools/src/main/python/stress/stress_policy.py
+++ b/ranger-tools/src/main/python/stress/stress_policy.py
@@ -17,12 +17,13 @@
# limitations under the License.
-from apache_ranger.model.ranger_service import *
-from apache_ranger.client.ranger_client import *
-from apache_ranger.model.ranger_policy import *
-from threading import Thread, Lock
-from datetime import datetime
-from random import randrange
+from apache_ranger.model.ranger_service import *
+from apache_ranger.client.ranger_client import *
+from apache_ranger.client.ranger_user_mgmt_client import *
+from apache_ranger.model.ranger_policy import *
+from threading import Thread, Lock
+from datetime import datetime
+from random import randrange
import logging
@@ -201,6 +202,30 @@
lock_progress.release()
+
+##
+## create principals referenced in the policies
+##
+def init_principals(ranger):
+ user_mgmt = RangerUserMgmtClient(ranger)
+
+ for u_idx in range(0, max_user_count):
+ user_name = prefix_user + str(u_idx)
+ existing = user_mgmt.get_user(user_name)
+
+ if existing is None:
+ LOG.info(" CREATING USER: %s", user_name)
+ user_mgmt.create_user(RangerUser({ 'name': user_name, 'firstName': user_name, 'emailAddress': user_name + '@example.com', 'password': 'rangerR0cks!' }))
+
+ for g_idx in range(0, max_group_count):
+ group_name = prefix_group + str(g_idx)
+ existing = user_mgmt.get_group(group_name)
+
+ if existing is None:
+ LOG.info(" CREATING GROUP: %s", group_name)
+ user_mgmt.create_group(RangerGroup({ 'name': group_name }))
+
+
def get_next_resource():
global lock_next_resource
global next_db_idx, next_tbl_idx
@@ -339,6 +364,8 @@
for i in range(0, thread_count):
clients.append(RangerClient(ranger_url, ranger_auth, ranger_qparams, ranger_headers))
+init_principals(clients[0])
+
##
## create threads to create policies
##