You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2022/02/14 05:24:33 UTC

[ranger] branch master updated: RANGER-3610 Refactor service creation and fix errors during container restart

This is an automated email from the ASF dual-hosted git repository.

madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new be23736  RANGER-3610 Refactor service creation and fix errors during container restart
be23736 is described below

commit be2373605a3b001d4481971502858b072de42bd5
Author: Abhishek Kumar <ab...@gmail.com>
AuthorDate: Sat Feb 12 13:37:05 2022 -0800

    RANGER-3610 Refactor service creation and fix errors during container restart
    
    Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
 dev-support/ranger-docker/Dockerfile.ranger        |  7 +--
 .../scripts/create-ranger-services.py              | 65 ++++++++++++++++++++++
 .../scripts/ranger-hbase-service-dev_hbase.py      |  8 ---
 .../scripts/ranger-hdfs-service-dev_hdfs.py        |  8 ---
 .../scripts/ranger-hive-service-dev_hive.py        |  8 ---
 .../scripts/ranger-kafka-service-dev_kafka.py      |  8 ---
 .../scripts/ranger-knox-service-dev_knox.py        |  8 ---
 .../scripts/ranger-yarn-service-dev_yarn.py        |  8 ---
 dev-support/ranger-docker/scripts/ranger.sh        |  8 +--
 9 files changed, 67 insertions(+), 61 deletions(-)

diff --git a/dev-support/ranger-docker/Dockerfile.ranger b/dev-support/ranger-docker/Dockerfile.ranger
index ad895dc..16492d4 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger
+++ b/dev-support/ranger-docker/Dockerfile.ranger
@@ -24,12 +24,7 @@ COPY ./downloads/postgresql-42.2.16.jre7.jar      /home/ranger/dist/
 
 COPY ./scripts/ranger.sh                         ${RANGER_SCRIPTS}/
 COPY ./scripts/ranger-admin-install.properties   ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-hdfs-service-dev_hdfs.py   ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-yarn-service-dev_yarn.py   ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-hive-service-dev_hive.py   ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-hbase-service-dev_hbase.py ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-kafka-service-dev_kafka.py ${RANGER_SCRIPTS}/
-COPY ./scripts/ranger-knox-service-dev_knox.py   ${RANGER_SCRIPTS}/
+COPY ./scripts/create-ranger-services.py         ${RANGER_SCRIPTS}/
 
 RUN tar xvfz /home/ranger/dist/ranger-${RANGER_VERSION}-admin.tar.gz --directory=${RANGER_HOME} && \
     ln -s ${RANGER_HOME}/ranger-${RANGER_VERSION}-admin ${RANGER_HOME}/admin && \
diff --git a/dev-support/ranger-docker/scripts/create-ranger-services.py b/dev-support/ranger-docker/scripts/create-ranger-services.py
new file mode 100644
index 0000000..7ce541d
--- /dev/null
+++ b/dev-support/ranger-docker/scripts/create-ranger-services.py
@@ -0,0 +1,65 @@
+from apache_ranger.model.ranger_service import RangerService
+from apache_ranger.client.ranger_client import RangerClient
+from json import JSONDecodeError
+
+ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
+
+
+def service_not_exists(service):
+    try:
+        ranger_client.get_service(service.name)
+    except JSONDecodeError:
+        return 1
+    return 0
+
+
+hdfs = RangerService({'name': 'dev_hdfs', 'type': 'hdfs',
+                      'configs': {'username': 'hdfs', 'password': 'hdfs',
+                                  'fs.default.name': 'hdfs://ranger-hadoop:9000',
+                                  'hadoop.security.authentication': 'simple',
+                                  'hadoop.security.authorization': 'true'}})
+
+hive = RangerService({'name': 'dev_hive', 'type': 'hive',
+                      'configs': {'username': 'hive', 'password': 'hive',
+                                  'jdbc.driverClassName': 'org.apache.hive.jdbc.HiveDriver',
+                                  'jdbc.url': 'jdfb:hive2://ranger-hadoop:10000',
+                                  'hadoop.security.authorization': 'true'}})
+
+kafka = RangerService({'name': 'dev_kafka', 'type': 'kafka',
+                       'configs': {'username': 'kafka', 'password': 'kafka',
+                                   'zookeeper.connect': 'ranger-zk.example.com:2181'}})
+
+knox = RangerService({'name': 'dev_knox', 'type': 'knox',
+                      'configs': {'username': 'knox', 'password': 'knox', 'knox.url': 'http://ranger-hadoop:8088'}})
+
+yarn = RangerService({'name': 'dev_yarn', 'type': 'yarn',
+                      'configs': {'username': 'yarn', 'password': 'yarn',
+                                  'yarn.url': 'http://ranger-hadoop:8088'}})
+
+hbase = RangerService({'name': 'dev_hbase', 'type': 'hbase',
+                       'configs': {'username': 'hbase', 'password': 'hbase',
+                                   'hadoop.security.authentication': 'simple',
+                                   'hbase.security.authentication': 'simple',
+                                   'hadoop.security.authorization': 'true',
+                                   'hbase.zookeeper.property.clientPort': '16181',
+                                   'hbase.zookeeper.quorum': 'ranger-hbase',
+                                   'zookeeper.znode.parent': '/hbase'}})
+
+if service_not_exists(hdfs):
+    ranger_client.create_service(hdfs)
+    print('HDFS service created!')
+if service_not_exists(yarn):
+    ranger_client.create_service(yarn)
+    print('Yarn service created!')
+if service_not_exists(hive):
+    ranger_client.create_service(hive)
+    print('Hive service created!')
+if service_not_exists(hbase):
+    ranger_client.create_service(hbase)
+    print('HBase service created!')
+if service_not_exists(kafka):
+    ranger_client.create_service(kafka)
+    print('Kafka service created!')
+if service_not_exists(knox):
+    ranger_client.create_service(knox)
+    print('Knox service created!')
diff --git a/dev-support/ranger-docker/scripts/ranger-hbase-service-dev_hbase.py b/dev-support/ranger-docker/scripts/ranger-hbase-service-dev_hbase.py
deleted file mode 100644
index 80a3d44..0000000
--- a/dev-support/ranger-docker/scripts/ranger-hbase-service-dev_hbase.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_hbase', 'type': 'hbase', 'configs': {'username':'hbase', 'password':'hbase', 'hadoop.security.authentication': 'simple', 'hbase.security.authentication': 'simple', 'hadoop.security.authorization': 'true', 'hbase.zookeeper.property.clientPort': '16181', 'hbase.zookeeper.quorum': 'ranger-hbase', 'zookeeper.znode.parent': '/hbase'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger-hdfs-service-dev_hdfs.py b/dev-support/ranger-docker/scripts/ranger-hdfs-service-dev_hdfs.py
deleted file mode 100644
index f1b138e..0000000
--- a/dev-support/ranger-docker/scripts/ranger-hdfs-service-dev_hdfs.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_hdfs', 'type': 'hdfs', 'configs': {'username':'hdfs', 'password':'hdfs', 'fs.default.name': 'hdfs://ranger-hadoop:9000', 'hadoop.security.authentication': 'simple', 'hadoop.security.authorization': 'true'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger-hive-service-dev_hive.py b/dev-support/ranger-docker/scripts/ranger-hive-service-dev_hive.py
deleted file mode 100644
index c2bd7d7..0000000
--- a/dev-support/ranger-docker/scripts/ranger-hive-service-dev_hive.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_hive', 'type': 'hive', 'configs': {'username':'hive', 'password':'hive', 'jdbc.driverClassName': 'org.apache.hive.jdbc.HiveDriver', 'jdbc.url': 'jdfb:hive2://ranger-hadoop:10000', 'hadoop.security.authorization': 'true'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger-kafka-service-dev_kafka.py b/dev-support/ranger-docker/scripts/ranger-kafka-service-dev_kafka.py
deleted file mode 100644
index 9f6cd79..0000000
--- a/dev-support/ranger-docker/scripts/ranger-kafka-service-dev_kafka.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_kafka', 'type': 'kafka', 'configs': {'username':'kafka', 'password':'kafka', 'zookeeper.connect': 'ranger-zk.example.com:2181'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger-knox-service-dev_knox.py b/dev-support/ranger-docker/scripts/ranger-knox-service-dev_knox.py
deleted file mode 100644
index dceea53..0000000
--- a/dev-support/ranger-docker/scripts/ranger-knox-service-dev_knox.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_knox', 'type': 'knox', 'configs': {'username':'knox', 'password':'knox', 'knox.url': 'http://ranger-hadoop:8088'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger-yarn-service-dev_yarn.py b/dev-support/ranger-docker/scripts/ranger-yarn-service-dev_yarn.py
deleted file mode 100644
index 8f1ba71..0000000
--- a/dev-support/ranger-docker/scripts/ranger-yarn-service-dev_yarn.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from apache_ranger.model.ranger_service     import RangerService
-from apache_ranger.client.ranger_client     import RangerClient
-
-ranger_client = RangerClient('http://ranger:6080', ('admin', 'rangerR0cks!'))
-
-service = RangerService({'name': 'dev_yarn', 'type': 'yarn', 'configs': {'username':'yarn', 'password':'yarn', 'yarn.url': 'http://ranger-hadoop:8088'}})
-
-ranger_client.create_service(service)
diff --git a/dev-support/ranger-docker/scripts/ranger.sh b/dev-support/ranger-docker/scripts/ranger.sh
index e2c0ddb..46030b1 100755
--- a/dev-support/ranger-docker/scripts/ranger.sh
+++ b/dev-support/ranger-docker/scripts/ranger.sh
@@ -37,13 +37,7 @@ if [ "${SETUP_RANGER}" == "true" ]
 then
   # Wait for Ranger Admin to become ready
   sleep 30
-
-  python3 ${RANGER_SCRIPTS}/ranger-hdfs-service-dev_hdfs.py
-  python3 ${RANGER_SCRIPTS}/ranger-yarn-service-dev_yarn.py
-  python3 ${RANGER_SCRIPTS}/ranger-hive-service-dev_hive.py
-  python3 ${RANGER_SCRIPTS}/ranger-hbase-service-dev_hbase.py
-  python3 ${RANGER_SCRIPTS}/ranger-kafka-service-dev_kafka.py
-  python3 ${RANGER_SCRIPTS}/ranger-knox-service-dev_knox.py
+  python3 ${RANGER_SCRIPTS}/create-ranger-services.py
 fi
 
 RANGER_ADMIN_PID=`ps -ef  | grep -v grep | grep -i "org.apache.ranger.server.tomcat.EmbeddedServer" | awk '{print $2}'`