AMBARI-22626. Zeppelin Interpreter settings are getting updated after zeppelin 
restart. (Prabhjyot Singh via yusaku)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ed04e8f1
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ed04e8f1
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ed04e8f1

Branch: refs/heads/branch-feature-AMBARI-22008-isilon
Commit: ed04e8f1d127422f150606df850b3f5836b0ba34
Parents: d80db80
Author: Yusaku Sako <yus...@hortonworks.com>
Authored: Tue Dec 12 08:15:08 2017 -0800
Committer: Attila Magyar <amag...@hortonworks.com>
Committed: Mon Dec 18 09:12:46 2017 +0100

----------------------------------------------------------------------
 .../scripts/interpreter_json_template.py        | 152 +++++++++++++++++++
 .../package/scripts/livy2_config_template.py    | 112 --------------
 .../ZEPPELIN/0.7.0/package/scripts/master.py    |  22 ---
 .../package/scripts/spark2_config_template.py   |  84 ----------
 .../2.6/ZEPPELIN/interpreter_json_generated.py  |   2 +-
 5 files changed, 153 insertions(+), 219 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ed04e8f1/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/interpreter_json_template.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/interpreter_json_template.py
 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/interpreter_json_template.py
index 713db23..b373e22 100644
--- 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/interpreter_json_template.py
+++ 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/interpreter_json_template.py
@@ -128,6 +128,68 @@ template = '''
         "isUserImpersonate": false
       }
     },
+    "2C4U48MY3_spark2": {
+      "id": "2C4U48MY3_spark2",
+      "name": "spark2",
+      "group": "spark",
+      "properties": {
+        "spark.executor.memory": "",
+        "args": "",
+        "zeppelin.spark.printREPLOutput": "true",
+        "spark.cores.max": "",
+        "zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";,
+        "zeppelin.spark.importImplicit": "true",
+        "zeppelin.spark.sql.stacktrace": "false",
+        "zeppelin.spark.concurrentSQL": "false",
+        "zeppelin.spark.useHiveContext": "true",
+        "zeppelin.pyspark.python": "python",
+        "zeppelin.dep.localrepo": "local-repo",
+        "zeppelin.R.knitr": "true",
+        "zeppelin.spark.maxResult": "1000",
+        "master": "local[*]",
+        "spark.app.name": "Zeppelin",
+        "zeppelin.R.image.width": "100%",
+        "zeppelin.R.render.options": "out.format \u003d \u0027html\u0027, 
comment \u003d NA, echo \u003d FALSE, results \u003d \u0027asis\u0027, message 
\u003d F, warning \u003d F",
+        "zeppelin.R.cmd": "R"
+      },
+      "status": "READY",
+      "interpreterGroup": [
+        {
+          "name": "spark",
+          "class": "org.apache.zeppelin.spark.SparkInterpreter",
+          "defaultInterpreter": true
+        },
+        {
+          "name": "sql",
+          "class": "org.apache.zeppelin.spark.SparkSqlInterpreter",
+          "defaultInterpreter": false
+        },
+        {
+          "name": "dep",
+          "class": "org.apache.zeppelin.spark.DepInterpreter",
+          "defaultInterpreter": false
+        },
+        {
+          "name": "pyspark",
+          "class": "org.apache.zeppelin.spark.PySparkInterpreter",
+          "defaultInterpreter": false
+        },
+        {
+          "name": "r",
+          "class": "org.apache.zeppelin.spark.SparkRInterpreter",
+          "defaultInterpreter": false
+        }
+      ],
+      "dependencies": [],
+      "option": {
+        "remote": true,
+        "port": -1,
+        "perNoteSession": false,
+        "perNoteProcess": false,
+        "isExistingProcess": false,
+        "setPermission": false
+      }
+    },
     "2CK8A9MEG": {
       "id": "2CK8A9MEG",
       "name": "jdbc",
@@ -259,6 +321,96 @@ template = '''
         "isUserImpersonate": false
       }
     },
+    "2C8A4SZ9T_livy2": {
+      "id": "2C8A4SZ9T_livy2",
+      "status": "READY",
+      "group": "livy",
+      "name": "livy2",
+      "properties": {
+        "zeppelin.livy.keytab": "",
+        "zeppelin.livy.spark.sql.maxResult": "1000",
+        "livy.spark.executor.instances": "",
+        "livy.spark.executor.memory": "",
+        "livy.spark.dynamicAllocation.enabled": "",
+        "livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "",
+        "livy.spark.dynamicAllocation.initialExecutors": "",
+        "zeppelin.livy.session.create_timeout": "120",
+        "livy.spark.driver.memory": "",
+        "zeppelin.livy.displayAppInfo": "true",
+        "livy.spark.jars.packages": "",
+        "livy.spark.dynamicAllocation.maxExecutors": "",
+        "zeppelin.livy.concurrentSQL": "false",
+        "zeppelin.livy.principal": "",
+        "livy.spark.executor.cores": "",
+        "zeppelin.livy.url": "http://localhost:8998";,
+        "zeppelin.livy.pull_status.interval.millis": "1000",
+        "livy.spark.driver.cores": "",
+        "livy.spark.dynamicAllocation.minExecutors": ""
+      },
+      "interpreterGroup": [
+        {
+          "class": "org.apache.zeppelin.livy.LivySparkInterpreter",
+          "editor": {
+            "editOnDblClick": false,
+            "language": "scala"
+          },
+          "name": "spark",
+          "defaultInterpreter": false
+        },
+        {
+          "class": "org.apache.zeppelin.livy.LivySparkSQLInterpreter",
+          "editor": {
+            "editOnDblClick": false,
+            "language": "sql"
+          },
+          "name": "sql",
+          "defaultInterpreter": false
+        },
+        {
+          "class": "org.apache.zeppelin.livy.LivyPySparkInterpreter",
+          "editor": {
+            "editOnDblClick": false,
+            "language": "python"
+          },
+          "name": "pyspark",
+          "defaultInterpreter": false
+        },
+        {
+          "class": "org.apache.zeppelin.livy.LivyPySpark3Interpreter",
+          "editor": {
+            "editOnDblClick": false,
+            "language": "python"
+          },
+          "name": "pyspark3",
+          "defaultInterpreter": false
+        },
+        {
+          "class": "org.apache.zeppelin.livy.LivySparkRInterpreter",
+          "editor": {
+            "editOnDblClick": false,
+            "language": "r"
+          },
+          "name": "sparkr",
+          "defaultInterpreter": false
+        },
+        {
+          "name": "shared",
+          "class": "org.apache.zeppelin.livy.LivySharedInterpreter",
+          "defaultInterpreter": false
+        }
+      ],
+      "dependencies": [],
+      "option": {
+        "setPermission": false,
+        "remote": true,
+        "users": [],
+        "isExistingProcess": false,
+        "perUser": "scoped",
+        "isUserImpersonate": false,
+        "perNote": "shared",
+        "port": -1
+      }
+    },
     "2CKAY1A8Y": {
       "id": "2CKAY1A8Y",
       "name": "md",

http://git-wip-us.apache.org/repos/asf/ambari/blob/ed04e8f1/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/livy2_config_template.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/livy2_config_template.py
 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/livy2_config_template.py
deleted file mode 100644
index c9030bd..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/livy2_config_template.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-"""
-
-template = '''
-{
-  "id": "2C8A4SZ9T_livy2",
-  "status": "READY",
-  "group": "livy",
-  "name": "livy2",
-  "properties": {
-    "zeppelin.livy.keytab": "",
-    "zeppelin.livy.spark.sql.maxResult": "1000",
-    "livy.spark.executor.instances": "",
-    "livy.spark.executor.memory": "",
-    "livy.spark.dynamicAllocation.enabled": "",
-    "livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "",
-    "livy.spark.dynamicAllocation.initialExecutors": "",
-    "zeppelin.livy.session.create_timeout": "120",
-    "livy.spark.driver.memory": "",
-    "zeppelin.livy.displayAppInfo": "true",
-    "livy.spark.jars.packages": "",
-    "livy.spark.dynamicAllocation.maxExecutors": "",
-    "zeppelin.livy.concurrentSQL": "false",
-    "zeppelin.livy.principal": "",
-    "livy.spark.executor.cores": "",
-    "zeppelin.livy.url": "http://localhost:8998";,
-    "zeppelin.livy.pull_status.interval.millis": "1000",
-    "livy.spark.driver.cores": "",
-    "livy.spark.dynamicAllocation.minExecutors": ""
-  },
-  "interpreterGroup": [
-    {
-      "class": "org.apache.zeppelin.livy.LivySparkInterpreter",
-      "editor": {
-        "editOnDblClick": false,
-        "language": "scala"
-      },
-      "name": "spark",
-      "defaultInterpreter": false
-    },
-    {
-      "class": "org.apache.zeppelin.livy.LivySparkSQLInterpreter",
-      "editor": {
-        "editOnDblClick": false,
-        "language": "sql"
-      },
-      "name": "sql",
-      "defaultInterpreter": false
-    },
-    {
-      "class": "org.apache.zeppelin.livy.LivyPySparkInterpreter",
-      "editor": {
-        "editOnDblClick": false,
-        "language": "python"
-      },
-      "name": "pyspark",
-      "defaultInterpreter": false
-              },
-    {
-      "class": "org.apache.zeppelin.livy.LivyPySpark3Interpreter",
-      "editor": {
-        "editOnDblClick": false,
-        "language": "python"
-      },
-      "name": "pyspark3",
-      "defaultInterpreter": false
-    },
-    {
-      "class": "org.apache.zeppelin.livy.LivySparkRInterpreter",
-      "editor": {
-        "editOnDblClick": false,
-        "language": "r"
-      },
-      "name": "sparkr",
-      "defaultInterpreter": false
-    },
-    {
-      "name": "shared",
-      "class": "org.apache.zeppelin.livy.LivySharedInterpreter",
-      "defaultInterpreter": false
-    }
-  ],
-  "dependencies": [],
-  "option": {
-    "setPermission": false,
-    "remote": true,
-    "users": [],
-    "isExistingProcess": false,
-    "perUser": "scoped",
-    "isUserImpersonate": false,
-    "perNote": "shared",
-    "port": -1
-  }
-}
-'''

http://git-wip-us.apache.org/repos/asf/ambari/blob/ed04e8f1/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/master.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/master.py
 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/master.py
index bb4c5b2..ee264a4 100644
--- 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/master.py
+++ 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/master.py
@@ -450,16 +450,6 @@ class Master(Script):
     config_data = self.get_interpreter_settings()
     interpreter_settings = config_data['interpreterSettings']
 
-    if 'spark2-defaults' in params.config['configurations']:
-      spark2_config = self.get_spark2_interpreter_config()
-      config_id = spark2_config["id"]
-      interpreter_settings[config_id] = spark2_config
-
-    if params.livy2_livyserver_host:
-      livy2_config = self.get_livy2_interpreter_config()
-      config_id = livy2_config["id"]
-      interpreter_settings[config_id] = livy2_config
-
     if params.zeppelin_interpreter:
       settings_to_delete = []
       for settings_key, interpreter in interpreter_settings.items():
@@ -612,17 +602,5 @@ class Master(Script):
     import params
     return glob.glob(params.zeppelin_dir + 
'/interpreter/spark/dep/zeppelin-spark-dependencies*.jar')
 
-  def get_spark2_interpreter_config(self):
-    import spark2_config_template
-    import json
-
-    return json.loads(spark2_config_template.template)
-
-  def get_livy2_interpreter_config(self):
-    import livy2_config_template
-    import json
-
-    return json.loads(livy2_config_template.template)
-
 if __name__ == "__main__":
   Master().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/ed04e8f1/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/spark2_config_template.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/spark2_config_template.py
 
b/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/spark2_config_template.py
deleted file mode 100644
index 28a63c6..0000000
--- 
a/ambari-server/src/main/resources/common-services/ZEPPELIN/0.7.0/package/scripts/spark2_config_template.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-"""
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-"""
-
-template = '''
-{
-  "id": "2C4U48MY3_spark2",
-  "name": "spark2",
-  "group": "spark",
-  "properties": {
-    "spark.executor.memory": "",
-    "args": "",
-    "zeppelin.spark.printREPLOutput": "true",
-    "spark.cores.max": "",
-    "zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";,
-    "zeppelin.spark.importImplicit": "true",
-    "zeppelin.spark.sql.stacktrace": "false",
-    "zeppelin.spark.concurrentSQL": "false",
-    "zeppelin.spark.useHiveContext": "true",
-    "zeppelin.pyspark.python": "python",
-    "zeppelin.dep.localrepo": "local-repo",
-    "zeppelin.R.knitr": "true",
-    "zeppelin.spark.maxResult": "1000",
-    "master": "local[*]",
-    "spark.app.name": "Zeppelin",
-    "zeppelin.R.image.width": "100%",
-    "zeppelin.R.render.options": "out.format \u003d \u0027html\u0027, comment 
\u003d NA, echo \u003d FALSE, results \u003d \u0027asis\u0027, message \u003d 
F, warning \u003d F",
-    "zeppelin.R.cmd": "R"
-  },
-  "status": "READY",
-  "interpreterGroup": [
-    {
-      "name": "spark",
-      "class": "org.apache.zeppelin.spark.SparkInterpreter",
-      "defaultInterpreter": true
-    },
-    {
-      "name": "sql",
-      "class": "org.apache.zeppelin.spark.SparkSqlInterpreter",
-      "defaultInterpreter": false
-    },
-    {
-      "name": "dep",
-      "class": "org.apache.zeppelin.spark.DepInterpreter",
-      "defaultInterpreter": false
-    },
-    {
-      "name": "pyspark",
-      "class": "org.apache.zeppelin.spark.PySparkInterpreter",
-      "defaultInterpreter": false
-    },
-    {
-      "name": "r",
-      "class": "org.apache.zeppelin.spark.SparkRInterpreter",
-      "defaultInterpreter": false
-    }
-  ],
-  "dependencies": [],
-  "option": {
-    "remote": true,
-    "port": -1,
-    "perNoteSession": false,
-    "perNoteProcess": false,
-    "isExistingProcess": false,
-    "setPermission": false
-  }
-}
-'''
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/ed04e8f1/ambari-server/src/test/python/stacks/2.6/ZEPPELIN/interpreter_json_generated.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/python/stacks/2.6/ZEPPELIN/interpreter_json_generated.py
 
b/ambari-server/src/test/python/stacks/2.6/ZEPPELIN/interpreter_json_generated.py
index 4b4dc1f..9bc8905 100644
--- 
a/ambari-server/src/test/python/stacks/2.6/ZEPPELIN/interpreter_json_generated.py
+++ 
b/ambari-server/src/test/python/stacks/2.6/ZEPPELIN/interpreter_json_generated.py
@@ -20,7 +20,7 @@ limitations under the License.
 
 template = '\n{\n  "interpreterSettings": {\n    "2CKEKWY8Z": {\n      "id": 
"2CKEKWY8Z",\n      "name": "angular",\n      "group": "angular",\n      
"properties": {},\n      "status": "READY",\n      "interpreterGroup": [\n      
  {\n          "name": "angular",\n          "class": 
"org.apache.zeppelin.angular.AngularInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            
"editOnDblClick": true\n          }\n        }\n      ],\n      "dependencies": 
[],\n      "option": {\n        "remote": true,\n        "port": -1,\n        
"perNote": "shared",\n        "perUser": "shared",\n        
"isExistingProcess": false,\n        "setPermission": false,\n        "users": 
[],\n        "isUserImpersonate": false\n      }\n    },\n    "2CKX8WPU1": {\n  
    "id": "2CKX8WPU1",\n      "name": "spark",\n      "group": "spark",\n      
"properties": {\n        "spark.executor.memory": "512m",\n        "args": 
"",\n        "zeppelin.spark.printREPLOutput": "true",\n
         "spark.cores.max": "",\n        
"zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;",\n        
"zeppelin.spark.sql.stacktrace": "false",\n        
"zeppelin.spark.importImplicit": "true",\n        
"zeppelin.spark.concurrentSQL": "false",\n        
"zeppelin.spark.useHiveContext": "true",\n        "zeppelin.pyspark.python": 
"python",\n        "zeppelin.dep.localrepo": "local-repo",\n        
"zeppelin.R.knitr": "true",\n        "zeppelin.spark.maxResult": "1000",\n      
  "master": "yarn-client",\n        "spark.app.name": "Zeppelin",\n        
"zeppelin.R.image.width": "100%",\n        "zeppelin.R.render.options": 
"out.format \\u003d \\u0027html\\u0027, comment \\u003d NA, echo \\u003d FALSE, 
results \\u003d \\u0027asis\\u0027, message \\u003d F, warning \\u003d F",\n    
    "zeppelin.R.cmd": "R"\n      },\n      "status": "READY",\n      
"interpreterGroup": [\n        {\n          "name": "spark",\n          
"class": "org
 .apache.zeppelin.spark.SparkInterpreter",\n          "defaultInterpreter": 
true,\n          "editor": {\n            "language": "scala"\n          }\n    
    },\n        {\n          "name": "sql",\n          "class": 
"org.apache.zeppelin.spark.SparkSqlInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"sql"\n          }\n        },\n        {\n          "name": "dep",\n          
"class": "org.apache.zeppelin.spark.DepInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"scala"\n          }\n        },\n        {\n          "name": "pyspark",\n     
     "class": "org.apache.zeppelin.spark.PySparkInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"python"\n          }\n        },\n        {\n          "name": "r",\n          
"class": "org.apache.zeppelin.spark.SparkRInterpreter",\n          
"defaultInterpreter": false,\n          "edi
 tor": {\n            "language": "r"\n          }\n        }\n      ],\n      
"dependencies": [],\n      "option": {\n        "remote": true,\n        
"port": -1,\n        "perNote": "shared",\n        "perUser": "shared",\n       
 "isExistingProcess": false,\n        "setPermission": false,\n        "users": 
[],\n        "isUserImpersonate": false\n      }\n    },\n    "2CK8A9MEG": {\n  
    "id": "2CK8A9MEG",\n      "name": "jdbc",\n      "group": "jdbc",\n      
"properties": {\n        "default.password": "",\n        
"zeppelin.jdbc.auth.type": "",\n        "common.max_count": "1000",\n        
"zeppelin.jdbc.principal": "",\n        "default.user": "gpadmin",\n        
"default.url": "jdbc:postgresql://localhost:5432/",\n        "default.driver": 
"org.postgresql.Driver",\n        "zeppelin.jdbc.keytab.location": "",\n        
"zeppelin.jdbc.concurrent.use": "true",\n        
"zeppelin.jdbc.concurrent.max_connection": "10"\n      },\n      "status": 
"READY",\n      "interpreterGroup":
  [\n        {\n          "name": "sql",\n          "class": 
"org.apache.zeppelin.jdbc.JDBCInterpreter",\n          "defaultInterpreter": 
false,\n          "editor": {\n            "language": "sql",\n            
"editOnDblClick": false\n          }\n        }\n      ],\n      
"dependencies": [],\n      "option": {\n        "remote": true,\n        
"port": -1,\n        "perNote": "shared",\n        "perUser": "shared",\n       
 "isExistingProcess": false,\n        "setPermission": false,\n        "users": 
[],\n        "isUserImpersonate": false\n      }\n    },\n    "2CKX6DGQZ": {\n  
    "id": "2CKX6DGQZ",\n      "name": "livy",\n      "group": "livy",\n      
"properties": {\n        "zeppelin.livy.pull_status.interval.millis": "1000",\n 
       "livy.spark.executor.memory": "",\n        
"zeppelin.livy.session.create_timeout": "120",\n        
"zeppelin.livy.principal": "",\n        "zeppelin.livy.spark.sql.maxResult": 
"1000",\n        "zeppelin.livy.keytab": "",\n        "zeppelin.liv
 y.concurrentSQL": "false",\n        "zeppelin.livy.spark.sql.field.truncate": 
"true",\n        "livy.spark.executor.cores": "",\n        
"zeppelin.livy.displayAppInfo": "false",\n        "zeppelin.livy.url": 
"http://localhost:8998",\n        "livy.spark.dynamicAllocation.minExecutors": 
"",\n        "livy.spark.driver.cores": "",\n        
"livy.spark.jars.packages": "",\n        
"livy.spark.dynamicAllocation.enabled": "",\n        
"livy.spark.executor.instances": "",\n        
"livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "",\n        
"livy.spark.dynamicAllocation.maxExecutors": "",\n        
"livy.spark.dynamicAllocation.initialExecutors": "",\n        
"livy.spark.driver.memory": ""\n      },\n      "status": "READY",\n      
"interpreterGroup": [\n        {\n          "name": "spark",\n          
"class": "org.apache.zeppelin.livy.LivySparkInterpreter",\n          
"defaultInterpreter": true,\n          "editor": {\n            "language": 
"scala",\n            "editOnDblCli
 ck": false\n          }\n        },\n        {\n          "name": "sql",\n     
     "class": "org.apache.zeppelin.livy.LivySparkSQLInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"sql",\n            "editOnDblClick": false\n          }\n        },\n        
{\n          "name": "pyspark",\n          "class": 
"org.apache.zeppelin.livy.LivyPySparkInterpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"python",\n            "editOnDblClick": false\n          }\n        },\n       
 {\n          "name": "pyspark3",\n          "class": 
"org.apache.zeppelin.livy.LivyPySpark3Interpreter",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"python",\n            "editOnDblClick": false\n          }\n        },\n       
 {\n          "name": "sparkr",\n          "class": 
"org.apache.zeppelin.livy.LivySparkRInterpreter",\n          
"defaultInterpreter": false,
 \n          "editor": {\n            "language": "r",\n            
"editOnDblClick": false\n          }\n        }\n      ],\n      
"dependencies": [],\n      "option": {\n        "remote": true,\n        
"port": -1,\n        "perNote": "shared",\n        "perUser": "scoped",\n       
 "isExistingProcess": false,\n        "setPermission": false,\n        "users": 
[],\n        "isUserImpersonate": false\n      }\n    },\n    "2CKAY1A8Y": {\n  
    "id": "2CKAY1A8Y",\n      "name": "md",\n      "group": "md",\n      
"properties": {\n        "markdown.parser.type": "markdown4j"\n      },\n      
"status": "READY",\n      "interpreterGroup": [\n        {\n          "name": 
"md",\n          "class": "org.apache.zeppelin.markdown.Markdown",\n          
"defaultInterpreter": false,\n          "editor": {\n            "language": 
"markdown",\n            "editOnDblClick": true\n          }\n        }\n      
],\n      "dependencies": [],\n      "option": {\n        "remote": true,\n     
   "port
 ": -1,\n        "perNote": "shared",\n        "perUser": "shared",\n        
"isExistingProcess": false,\n        "setPermission": false,\n        "users": 
[],\n        "isUserImpersonate": false\n      }\n    },\n    "2CHS8UYQQ": {\n  
    "id": "2CHS8UYQQ",\n      "name": "sh",\n      "group": "sh",\n      
"properties": {\n        "zeppelin.shell.keytab.location": "",\n        
"shell.command.timeout.millisecs": "60000",\n        
"zeppelin.shell.principal": "",\n        "zeppelin.shell.auth.type": ""\n      
},\n      "status": "READY",\n      "interpreterGroup": [\n        {\n          
"name": "sh",\n          "class": 
"org.apache.zeppelin.shell.ShellInterpreter",\n          "defaultInterpreter": 
false,\n          "editor": {\n            "language": "sh",\n            
"editOnDblClick": false\n          }\n        }\n      ],\n      
"dependencies": [],\n      "option": {\n        "remote": true,\n        
"port": -1,\n        "perNote": "shared",\n        "perUser": "shared",\n       
  "isExistingProcess": false,\n        "setPermission": false,\n        
"users": [],\n        "isUserImpersonate": false\n      }\n    }\n  },\n  
"interpreterBindings": {},\n  "interpreterRepositories": [\n    {\n      "id": 
"central",\n      "type": "default",\n      "url": 
"http://repo1.maven.org/maven2/",\n      "releasePolicy": {\n        "enabled": 
true,\n        "updatePolicy": "daily",\n        "checksumPolicy": "warn"\n     
 },\n      "snapshotPolicy": {\n        "enabled": true,\n        
"updatePolicy": "daily",\n        "checksumPolicy": "warn"\n      },\n      
"mirroredRepositories": [],\n      "repositoryManager": false\n    },\n    {\n  
    "id": "local",\n      "type": "default",\n      "url": 
"file:///home/zeppelin/.m2/repository",\n      "releasePolicy": {\n        
"enabled": true,\n        "updatePolicy": "daily",\n        "checksumPolicy": 
"warn"\n      },\n      "snapshotPolicy": {\n        "enabled": true,\n        
"updatePolicy": "daily",\n        "checksumPolicy
 ": "warn"\n      },\n      "mirroredRepositories": [],\n      
"repositoryManager": false\n    }\n  ]\n}\n'
 
-template_after_base = '{\n  "interpreterSettings": {\n    "2CHS8UYQQ": {\n     
 "status": "READY", \n      "group": "sh", \n      "name": "sh", \n      "id": 
"2CHS8UYQQ", \n      "interpreterGroup": [\n        {\n          "editor": {\n  
          "editOnDblClick": false, \n            "language": "sh"\n          }, 
\n          "defaultInterpreter": false, \n          "name": "sh", \n          
"class": "org.apache.zeppelin.shell.ShellInterpreter"\n        }\n      ], \n   
   "dependencies": [], \n      "properties": {\n        
"shell.command.timeout.millisecs": "60000", \n        
"zeppelin.shell.auth.type": "", \n        "zeppelin.shell.keytab.location": "", 
\n        "zeppelin.shell.principal": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \
 n    "2CKAY1A8Y": {\n      "status": "READY", \n      "group": "md", \n      
"name": "md", \n      "id": "2CKAY1A8Y", \n      "interpreterGroup": [\n        
{\n          "editor": {\n            "editOnDblClick": true, \n            
"language": "markdown"\n          }, \n          "defaultInterpreter": false, 
\n          "name": "md", \n          "class": 
"org.apache.zeppelin.markdown.Markdown"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "markdown.parser.type": 
"markdown4j"\n      }, \n      "option": {\n        "setPermission": false, \n  
      "remote": true, \n        "users": [], \n        "isExistingProcess": 
false, \n        "perUser": "shared", \n        "isUserImpersonate": false, \n  
      "perNote": "shared", \n        "port": -1\n      }\n    }, \n    
"2CKX8WPU1": {\n      "status": "READY", \n      "group": "spark", \n      
"name": "spark", \n      "id": "2CKX8WPU1", \n      "interpreterGroup": [\n     
   {\n          "editor": {\n  
           "language": "scala"\n          }, \n          "defaultInterpreter": 
true, \n          "name": "spark", \n          "class": 
"org.apache.zeppelin.spark.SparkInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "sql"\n          }, \n          
"defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.spark.SparkSqlInterpreter"\n        }, \n        {\n       
   "editor": {\n            "language": "scala"\n          }, \n          
"defaultInterpreter": false, \n          "name": "dep", \n          "class": 
"org.apache.zeppelin.spark.DepInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "python"\n          }, \n          
"defaultInterpreter": false, \n          "name": "pyspark", \n          
"class": "org.apache.zeppelin.spark.PySparkInterpreter"\n        }, \n        
{\n          "editor": {\n            "language": "r"\n          }, \n          
"defaultInterpreter": fals
 e, \n          "name": "r", \n          "class": 
"org.apache.zeppelin.spark.SparkRInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";, \n        
"zeppelin.dep.localrepo": "local-repo", \n        
"zeppelin.spark.useHiveContext": "true", \n        
"zeppelin.spark.printREPLOutput": "true", \n        "zeppelin.R.image.width": 
"100%", \n        "zeppelin.spark.importImplicit": "true", \n        
"spark.app.name": "Zeppelin", \n        "args": "", \n        
"zeppelin.spark.sql.stacktrace": "false", \n        
"zeppelin.spark.concurrentSQL": "false", \n        "zeppelin.R.cmd": "R", \n    
    "master": "yarn-client", \n        "zeppelin.pyspark.python": "python", \n  
      "zeppelin.R.knitr": "true", \n        "zeppelin.R.render.options": 
"out.format = \'html\', comment = NA, echo = FALSE, results = \'asis\', message 
= F, warning = F", \n   
      "spark.executor.memory": "512m", \n        "zeppelin.spark.maxResult": 
"1000", \n        "spark.cores.max": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \n    "2CK8A9MEG": {\n      "status": "READY", \n      
"group": "jdbc", \n      "name": "jdbc", \n      "id": "2CK8A9MEG", \n      
"interpreterGroup": [\n        {\n          "editor": {\n            
"editOnDblClick": false, \n            "language": "sql"\n          }, \n       
   "defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.jdbc.JDBCInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "common.max_count": 
"1000", \n        "zeppelin.jdbc.keytab.location": "", \n        
"zeppelin.jdbc.concurre
 nt.max_connection": "10", \n        "default.user": "gpadmin", \n        
"zeppelin.jdbc.auth.type": "", \n        "default.url": 
"jdbc:postgresql://localhost:5432/", \n        "default.driver": 
"org.postgresql.Driver", \n        "zeppelin.jdbc.concurrent.use": "true", \n   
     "default.password": "", \n        "zeppelin.jdbc.principal": ""\n      }, 
\n      "option": {\n        "setPermission": false, \n        "remote": true, 
\n        "users": [], \n        "isExistingProcess": false, \n        
"perUser": "shared", \n        "isUserImpersonate": false, \n        "perNote": 
"shared", \n        "port": -1\n      }\n    }, \n    "2CKEKWY8Z": {\n      
"status": "READY", \n      "group": "angular", \n      "name": "angular", \n    
  "id": "2CKEKWY8Z", \n      "interpreterGroup": [\n        {\n          
"editor": {\n            "editOnDblClick": true\n          }, \n          
"defaultInterpreter": false, \n          "name": "angular", \n          
"class": "org.apache.zeppelin.angular.A
 ngularInterpreter"\n        }\n      ], \n      "dependencies": [], \n      
"properties": {}, \n      "option": {\n        "setPermission": false, \n       
 "remote": true, \n        "users": [], \n        "isExistingProcess": false, 
\n        "perUser": "shared", \n        "isUserImpersonate": false, \n        
"perNote": "shared", \n        "port": -1\n      }\n    }, \n    "2CKX6DGQZ": 
{\n      "status": "READY", \n      "group": "livy", \n      "name": "livy", \n 
     "id": "2CKX6DGQZ", \n      "interpreterGroup": [\n        {\n          
"editor": {\n            "editOnDblClick": false, \n            "language": 
"scala"\n          }, \n          "defaultInterpreter": true, \n          
"name": "spark", \n          "class": 
"org.apache.zeppelin.livy.LivySparkInterpreter"\n        }, \n        {\n       
   "editor": {\n            "editOnDblClick": false, \n            "language": 
"sql"\n          }, \n          "defaultInterpreter": false, \n          
"name": "sql", \n          "cl
 ass": "org.apache.zeppelin.livy.LivySparkSQLInterpreter"\n        }, \n        
{\n          "editor": {\n            "editOnDblClick": false, \n            
"language": "python"\n          }, \n          "defaultInterpreter": false, \n  
        "name": "pyspark", \n          "class": 
"org.apache.zeppelin.livy.LivyPySparkInterpreter"\n        }, \n        {\n     
     "editor": {\n            "editOnDblClick": false, \n            
"language": "python"\n          }, \n          "defaultInterpreter": false, \n  
        "name": "pyspark3", \n          "class": 
"org.apache.zeppelin.livy.LivyPySpark3Interpreter"\n        }, \n        {\n    
      "editor": {\n            "editOnDblClick": false, \n            
"language": "r"\n          }, \n          "defaultInterpreter": false, \n       
   "name": "sparkr", \n          "class": 
"org.apache.zeppelin.livy.LivySparkRInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"livy.spark.dynamicAllocation.in
 itialExecutors": "", \n        "zeppelin.livy.keytab": "", \n        
"zeppelin.livy.spark.sql.maxResult": "1000", \n        
"livy.spark.executor.instances": "", \n        "livy.spark.driver.memory": "", 
\n        "livy.spark.executor.memory": "", \n        
"livy.spark.dynamicAllocation.enabled": "", \n        
"livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "", \n        
"livy.spark.driver.cores": "", \n        
"zeppelin.livy.session.create_timeout": "120", \n        
"zeppelin.livy.principal": "", \n        "livy.spark.jars.packages": "", \n     
   "livy.spark.dynamicAllocation.maxExecutors": "", \n        
"zeppelin.livy.concurrentSQL": "false", \n        
"zeppelin.livy.displayAppInfo": "false", \n        
"livy.spark.dynamicAllocation.minExecutors": "", \n        "zeppelin.livy.url": 
"http://localhost:8998";, \n        "zeppelin.livy.spark.sql.field.truncate": 
"true", \n        "zeppelin.livy.pull_status.interval.millis": "1000", \n       
 "livy.spark.executor.cores": ""\n  
     }, \n      "option": {\n        "setPermission": false, \n        
"remote": true, \n        "users": [], \n        "isExistingProcess": false, \n 
       "perUser": "scoped", \n        "isUserImpersonate": false, \n        
"perNote": "shared", \n        "port": -1\n      }\n    }\n  }, \n  
"interpreterBindings": {}, \n  "interpreterRepositories": [\n    {\n      
"releasePolicy": {\n        "checksumPolicy": "warn", \n        "enabled": 
true, \n        "updatePolicy": "daily"\n      }, \n      
"mirroredRepositories": [], \n      "snapshotPolicy": {\n        
"checksumPolicy": "warn", \n        "enabled": true, \n        "updatePolicy": 
"daily"\n      }, \n      "url": "http://repo1.maven.org/maven2/";, \n      
"repositoryManager": false, \n      "type": "default", \n      "id": 
"central"\n    }, \n    {\n      "releasePolicy": {\n        "checksumPolicy": 
"warn", \n        "enabled": true, \n        "updatePolicy": "daily"\n      }, 
\n      "mirroredRepositories": [], \n      "snaps
 hotPolicy": {\n        "checksumPolicy": "warn", \n        "enabled": true, \n 
       "updatePolicy": "daily"\n      }, \n      "url": 
"file:///home/zeppelin/.m2/repository", \n      "repositoryManager": false, \n  
    "type": "default", \n      "id": "local"\n    }\n  ]\n}'
+template_after_base = '{\n  "interpreterSettings": {\n    "2CHS8UYQQ": {\n     
 "status": "READY", \n      "group": "sh", \n      "name": "sh", \n      "id": 
"2CHS8UYQQ", \n      "interpreterGroup": [\n        {\n          "editor": {\n  
          "editOnDblClick": false, \n            "language": "sh"\n          }, 
\n          "defaultInterpreter": false, \n          "name": "sh", \n          
"class": "org.apache.zeppelin.shell.ShellInterpreter"\n        }\n      ], \n   
   "dependencies": [], \n      "properties": {\n        
"shell.command.timeout.millisecs": "60000", \n        
"zeppelin.shell.auth.type": "", \n        "zeppelin.shell.keytab.location": "", 
\n        "zeppelin.shell.principal": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \
 n    "2CKAY1A8Y": {\n      "status": "READY", \n      "group": "md", \n      
"name": "md", \n      "id": "2CKAY1A8Y", \n      "interpreterGroup": [\n        
{\n          "editor": {\n            "editOnDblClick": true, \n            
"language": "markdown"\n          }, \n          "defaultInterpreter": false, 
\n          "name": "md", \n          "class": 
"org.apache.zeppelin.markdown.Markdown"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "markdown.parser.type": 
"markdown4j"\n      }, \n      "option": {\n        "setPermission": false, \n  
      "remote": true, \n        "users": [], \n        "isExistingProcess": 
false, \n        "perUser": "shared", \n        "isUserImpersonate": false, \n  
      "perNote": "shared", \n        "port": -1\n      }\n    }, \n    
"2CKX8WPU1": {\n      "status": "READY", \n      "group": "spark", \n      
"name": "spark", \n      "id": "2CKX8WPU1", \n      "interpreterGroup": [\n     
   {\n          "editor": {\n  
           "language": "scala"\n          }, \n          "defaultInterpreter": 
true, \n          "name": "spark", \n          "class": 
"org.apache.zeppelin.spark.SparkInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "sql"\n          }, \n          
"defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.spark.SparkSqlInterpreter"\n        }, \n        {\n       
   "editor": {\n            "language": "scala"\n          }, \n          
"defaultInterpreter": false, \n          "name": "dep", \n          "class": 
"org.apache.zeppelin.spark.DepInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "python"\n          }, \n          
"defaultInterpreter": false, \n          "name": "pyspark", \n          
"class": "org.apache.zeppelin.spark.PySparkInterpreter"\n        }, \n        
{\n          "editor": {\n            "language": "r"\n          }, \n          
"defaultInterpreter": fals
 e, \n          "name": "r", \n          "class": 
"org.apache.zeppelin.spark.SparkRInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";, \n        
"zeppelin.dep.localrepo": "local-repo", \n        
"zeppelin.spark.useHiveContext": "true", \n        
"zeppelin.spark.printREPLOutput": "true", \n        "zeppelin.R.image.width": 
"100%", \n        "zeppelin.spark.importImplicit": "true", \n        
"spark.app.name": "Zeppelin", \n        "args": "", \n        
"zeppelin.spark.sql.stacktrace": "false", \n        
"zeppelin.spark.concurrentSQL": "false", \n        "zeppelin.R.cmd": "R", \n    
    "master": "yarn-client", \n        "zeppelin.pyspark.python": "python", \n  
      "zeppelin.R.knitr": "true", \n        "zeppelin.R.render.options": 
"out.format = \'html\', comment = NA, echo = FALSE, results = \'asis\', message 
= F, warning = F", \n   
      "spark.executor.memory": "512m", \n        "zeppelin.spark.maxResult": 
"1000", \n        "spark.cores.max": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \n    "2CK8A9MEG": {\n      "status": "READY", \n      
"group": "jdbc", \n      "name": "jdbc", \n      "id": "2CK8A9MEG", \n      
"interpreterGroup": [\n        {\n          "editor": {\n            
"editOnDblClick": false, \n            "language": "sql"\n          }, \n       
   "defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.jdbc.JDBCInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "common.max_count": 
"1000", \n        "zeppelin.jdbc.keytab.location": "", \n        
"zeppelin.jdbc.concurre
 nt.max_connection": "10", \n        "default.user": "gpadmin", \n        
"zeppelin.jdbc.auth.type": "", \n        "default.url": 
"jdbc:postgresql://localhost:5432/", \n        "default.driver": 
"org.postgresql.Driver", \n        "zeppelin.jdbc.concurrent.use": "true", \n   
     "default.password": "", \n        "zeppelin.jdbc.principal": ""\n      }, 
\n      "option": {\n        "setPermission": false, \n        "remote": true, 
\n        "users": [], \n        "isExistingProcess": false, \n        
"perUser": "shared", \n        "isUserImpersonate": false, \n        "perNote": 
"shared", \n        "port": -1\n      }\n    }, \n    "2C4U48MY3_spark2": {\n   
   "status": "READY", \n      "group": "spark", \n      "name": "spark2", \n    
  "id": "2C4U48MY3_spark2", \n      "interpreterGroup": [\n        {\n          
"defaultInterpreter": true, \n          "name": "spark", \n          "class": 
"org.apache.zeppelin.spark.SparkInterpreter"\n        }, \n        {\n          
"defaultInterpre
 ter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.spark.SparkSqlInterpreter"\n        }, \n        {\n       
   "defaultInterpreter": false, \n          "name": "dep", \n          "class": 
"org.apache.zeppelin.spark.DepInterpreter"\n        }, \n        {\n          
"defaultInterpreter": false, \n          "name": "pyspark", \n          
"class": "org.apache.zeppelin.spark.PySparkInterpreter"\n        }, \n        
{\n          "defaultInterpreter": false, \n          "name": "r", \n          
"class": "org.apache.zeppelin.spark.SparkRInterpreter"\n        }\n      ], \n  
    "dependencies": [], \n      "properties": {\n        
"zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";, \n        
"zeppelin.dep.localrepo": "local-repo", \n        
"zeppelin.spark.useHiveContext": "true", \n        
"zeppelin.spark.printREPLOutput": "true", \n        "zeppelin.R.image.width": 
"100%", \n        "zeppelin.spar
 k.importImplicit": "true", \n        "spark.app.name": "Zeppelin", \n        
"args": "", \n        "zeppelin.spark.sql.stacktrace": "false", \n        
"zeppelin.spark.concurrentSQL": "false", \n        "zeppelin.R.cmd": "R", \n    
    "master": "local[*]", \n        "zeppelin.pyspark.python": "python", \n     
   "zeppelin.R.knitr": "true", \n        "zeppelin.R.render.options": 
"out.format = \'html\', comment = NA, echo = FALSE, results = \'asis\', message 
= F, warning = F", \n        "spark.executor.memory": "", \n        
"zeppelin.spark.maxResult": "1000", \n        "spark.cores.max": ""\n      }, 
\n      "option": {\n        "setPermission": false, \n        
"perNoteProcess": false, \n        "remote": true, \n        "perNoteSession": 
false, \n        "isExistingProcess": false, \n        "port": -1\n      }\n    
}, \n    "2CKEKWY8Z": {\n      "status": "READY", \n      "group": "angular", 
\n      "name": "angular", \n      "id": "2CKEKWY8Z", \n      
"interpreterGroup": [\n     
    {\n          "editor": {\n            "editOnDblClick": true\n          }, 
\n          "defaultInterpreter": false, \n          "name": "angular", \n      
    "class": "org.apache.zeppelin.angular.AngularInterpreter"\n        }\n      
], \n      "dependencies": [], \n      "properties": {}, \n      "option": {\n  
      "setPermission": false, \n        "remote": true, \n        "users": [], 
\n        "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \n    "2C8A4SZ9T_livy2": {\n      "status": "READY", \n     
 "group": "livy", \n      "name": "livy2", \n      "id": "2C8A4SZ9T_livy2", \n  
    "interpreterGroup": [\n        {\n          "defaultInterpreter": false, \n 
         "class": "org.apache.zeppelin.livy.LivySparkInterpreter", \n          
"name": "spark", \n          "editor": {\n            "editOnDblClick": false, 
\n            "language": "scala"\n          }
 \n        }, \n        {\n          "defaultInterpreter": false, \n          
"class": "org.apache.zeppelin.livy.LivySparkSQLInterpreter", \n          
"name": "sql", \n          "editor": {\n            "editOnDblClick": false, \n 
           "language": "sql"\n          }\n        }, \n        {\n          
"defaultInterpreter": false, \n          "class": 
"org.apache.zeppelin.livy.LivyPySparkInterpreter", \n          "name": 
"pyspark", \n          "editor": {\n            "editOnDblClick": false, \n     
       "language": "python"\n          }\n        }, \n        {\n          
"defaultInterpreter": false, \n          "class": 
"org.apache.zeppelin.livy.LivyPySpark3Interpreter", \n          "name": 
"pyspark3", \n          "editor": {\n            "editOnDblClick": false, \n    
        "language": "python"\n          }\n        }, \n        {\n          
"defaultInterpreter": false, \n          "class": 
"org.apache.zeppelin.livy.LivySparkRInterpreter", \n          "name": "sparkr", 
\n  
         "editor": {\n            "editOnDblClick": false, \n            
"language": "r"\n          }\n        }, \n        {\n          
"defaultInterpreter": false, \n          "name": "shared", \n          "class": 
"org.apache.zeppelin.livy.LivySharedInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "zeppelin.livy.keytab": 
"", \n        "zeppelin.livy.spark.sql.maxResult": "1000", \n        
"livy.spark.executor.instances": "", \n        "livy.spark.executor.memory": 
"", \n        "livy.spark.dynamicAllocation.enabled": "", \n        
"livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "", \n        
"livy.spark.dynamicAllocation.initialExecutors": "", \n        
"zeppelin.livy.principal": "", \n        
"zeppelin.livy.session.create_timeout": "120", \n        
"livy.spark.driver.memory": "", \n        "livy.spark.jars.packages": "", \n    
    "livy.spark.dynamicAllocation.maxExecutors": "", \n        
"zeppelin.livy.concurrentSQL": "fals
 e", \n        "zeppelin.livy.displayAppInfo": "true", \n        
"livy.spark.dynamicAllocation.minExecutors": "", \n        "zeppelin.livy.url": 
"http://localhost:8998";, \n        "zeppelin.livy.pull_status.interval.millis": 
"1000", \n        "livy.spark.driver.cores": "", \n        
"livy.spark.executor.cores": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "scoped", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \n    "2CKX6DGQZ": {\n      "status": "READY", \n      
"group": "livy", \n      "name": "livy", \n      "id": "2CKX6DGQZ", \n      
"interpreterGroup": [\n        {\n          "editor": {\n            
"editOnDblClick": false, \n            "language": "scala"\n          }, \n     
     "defaultInterpreter": true, \n          "name": "spark", \n          
"class": "org.apache.zeppelin.livy.LivyS
 parkInterpreter"\n        }, \n        {\n          "editor": {\n            
"editOnDblClick": false, \n            "language": "sql"\n          }, \n       
   "defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.livy.LivySparkSQLInterpreter"\n        }, \n        {\n    
      "editor": {\n            "editOnDblClick": false, \n            
"language": "python"\n          }, \n          "defaultInterpreter": false, \n  
        "name": "pyspark", \n          "class": 
"org.apache.zeppelin.livy.LivyPySparkInterpreter"\n        }, \n        {\n     
     "editor": {\n            "editOnDblClick": false, \n            
"language": "python"\n          }, \n          "defaultInterpreter": false, \n  
        "name": "pyspark3", \n          "class": 
"org.apache.zeppelin.livy.LivyPySpark3Interpreter"\n        }, \n        {\n    
      "editor": {\n            "editOnDblClick": false, \n            
"language": "r"\n          }, \n          "defaultInte
 rpreter": false, \n          "name": "sparkr", \n          "class": 
"org.apache.zeppelin.livy.LivySparkRInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"livy.spark.dynamicAllocation.initialExecutors": "", \n        
"zeppelin.livy.keytab": "", \n        "zeppelin.livy.spark.sql.maxResult": 
"1000", \n        "livy.spark.executor.instances": "", \n        
"livy.spark.driver.memory": "", \n        "livy.spark.executor.memory": "", \n  
      "livy.spark.dynamicAllocation.enabled": "", \n        
"livy.spark.dynamicAllocation.cachedExecutorIdleTimeout": "", \n        
"livy.spark.driver.cores": "", \n        
"zeppelin.livy.session.create_timeout": "120", \n        
"zeppelin.livy.principal": "", \n        "livy.spark.jars.packages": "", \n     
   "livy.spark.dynamicAllocation.maxExecutors": "", \n        
"zeppelin.livy.concurrentSQL": "false", \n        
"zeppelin.livy.displayAppInfo": "false", \n        
"livy.spark.dynamicAllocation.minExecutors
 ": "", \n        "zeppelin.livy.url": "http://localhost:8998";, \n        
"zeppelin.livy.spark.sql.field.truncate": "true", \n        
"zeppelin.livy.pull_status.interval.millis": "1000", \n        
"livy.spark.executor.cores": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "scoped", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }\n  }, \n  "interpreterBindings": {}, \n  
"interpreterRepositories": [\n    {\n      "releasePolicy": {\n        
"checksumPolicy": "warn", \n        "enabled": true, \n        "updatePolicy": 
"daily"\n      }, \n      "mirroredRepositories": [], \n      "snapshotPolicy": 
{\n        "checksumPolicy": "warn", \n        "enabled": true, \n        
"updatePolicy": "daily"\n      }, \n      "url": 
"http://repo1.maven.org/maven2/";, \n      "repositoryManager": false, \n      
"type": "d
 efault", \n      "id": "central"\n    }, \n    {\n      "releasePolicy": {\n   
     "checksumPolicy": "warn", \n        "enabled": true, \n        
"updatePolicy": "daily"\n      }, \n      "mirroredRepositories": [], \n      
"snapshotPolicy": {\n        "checksumPolicy": "warn", \n        "enabled": 
true, \n        "updatePolicy": "daily"\n      }, \n      "url": 
"file:///home/zeppelin/.m2/repository", \n      "repositoryManager": false, \n  
    "type": "default", \n      "id": "local"\n    }\n  ]\n}'
 
 template_after_without_spark_and_livy = '{\n  "interpreterSettings": {\n    
"2CHS8UYQQ": {\n      "status": "READY", \n      "group": "sh", \n      "name": 
"sh", \n      "id": "2CHS8UYQQ", \n      "interpreterGroup": [\n        {\n     
     "editor": {\n            "editOnDblClick": false, \n            
"language": "sh"\n          }, \n          "defaultInterpreter": false, \n      
    "name": "sh", \n          "class": 
"org.apache.zeppelin.shell.ShellInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"shell.command.timeout.millisecs": "60000", \n        
"zeppelin.shell.auth.type": "", \n        "zeppelin.shell.keytab.location": "", 
\n        "zeppelin.shell.principal": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": -1\
 n      }\n    }, \n    "2CKAY1A8Y": {\n      "status": "READY", \n      
"group": "md", \n      "name": "md", \n      "id": "2CKAY1A8Y", \n      
"interpreterGroup": [\n        {\n          "editor": {\n            
"editOnDblClick": true, \n            "language": "markdown"\n          }, \n   
       "defaultInterpreter": false, \n          "name": "md", \n          
"class": "org.apache.zeppelin.markdown.Markdown"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "markdown.parser.type": 
"markdown4j"\n      }, \n      "option": {\n        "setPermission": false, \n  
      "remote": true, \n        "users": [], \n        "isExistingProcess": 
false, \n        "perUser": "shared", \n        "isUserImpersonate": false, \n  
      "perNote": "shared", \n        "port": -1\n      }\n    }, \n    
"2CKX8WPU1": {\n      "status": "READY", \n      "group": "spark", \n      
"name": "spark", \n      "id": "2CKX8WPU1", \n      "interpreterGroup": [\n     
   {\n       
    "editor": {\n            "language": "scala"\n          }, \n          
"defaultInterpreter": true, \n          "name": "spark", \n          "class": 
"org.apache.zeppelin.spark.SparkInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "sql"\n          }, \n          
"defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.spark.SparkSqlInterpreter"\n        }, \n        {\n       
   "editor": {\n            "language": "scala"\n          }, \n          
"defaultInterpreter": false, \n          "name": "dep", \n          "class": 
"org.apache.zeppelin.spark.DepInterpreter"\n        }, \n        {\n          
"editor": {\n            "language": "python"\n          }, \n          
"defaultInterpreter": false, \n          "name": "pyspark", \n          
"class": "org.apache.zeppelin.spark.PySparkInterpreter"\n        }, \n        
{\n          "editor": {\n            "language": "r"\n          }, \n          
"default
 Interpreter": false, \n          "name": "r", \n          "class": 
"org.apache.zeppelin.spark.SparkRInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        
"zeppelin.dep.additionalRemoteRepository": 
"spark-packages,http://dl.bintray.com/spark-packages/maven,false;";, \n        
"zeppelin.dep.localrepo": "local-repo", \n        
"zeppelin.spark.useHiveContext": "true", \n        
"zeppelin.spark.printREPLOutput": "true", \n        "zeppelin.R.image.width": 
"100%", \n        "zeppelin.spark.importImplicit": "true", \n        
"spark.app.name": "Zeppelin", \n        "args": "", \n        
"zeppelin.spark.sql.stacktrace": "false", \n        
"zeppelin.spark.concurrentSQL": "false", \n        "SPARK_HOME": 
"/usr/hdp/current/spark-client/", \n        "zeppelin.R.cmd": "R", \n        
"master": "yarn-client", \n        "zeppelin.pyspark.python": "python", \n      
  "zeppelin.R.knitr": "true", \n        "zeppelin.R.render.options": 
"out.format = \'html\', comm
 ent = NA, echo = FALSE, results = \'asis\', message = F, warning = F", \n      
  "spark.executor.memory": "512m", \n        "zeppelin.spark.maxResult": 
"1000", \n        "spark.cores.max": ""\n      }, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }, \n    "2CK8A9MEG": {\n      "status": "READY", \n      
"group": "jdbc", \n      "name": "jdbc", \n      "id": "2CK8A9MEG", \n      
"interpreterGroup": [\n        {\n          "editor": {\n            
"editOnDblClick": false, \n            "language": "sql"\n          }, \n       
   "defaultInterpreter": false, \n          "name": "sql", \n          "class": 
"org.apache.zeppelin.jdbc.JDBCInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {\n        "common.max_count": 
"1000", \n  
       "zeppelin.jdbc.keytab.location": "", \n        
"zeppelin.jdbc.concurrent.max_connection": "10", \n        "default.user": 
"gpadmin", \n        "zeppelin.jdbc.auth.type": "", \n        "default.url": 
"jdbc:postgresql://localhost:5432/", \n        "default.driver": 
"org.postgresql.Driver", \n        "zeppelin.jdbc.concurrent.use": "true", \n   
     "default.password": "", \n        "zeppelin.jdbc.principal": ""\n      }, 
\n      "option": {\n        "setPermission": false, \n        "remote": true, 
\n        "users": [], \n        "isExistingProcess": false, \n        
"perUser": "shared", \n        "isUserImpersonate": false, \n        "perNote": 
"shared", \n        "port": -1\n      }\n    }, \n    "2CKEKWY8Z": {\n      
"status": "READY", \n      "group": "angular", \n      "name": "angular", \n    
  "id": "2CKEKWY8Z", \n      "interpreterGroup": [\n        {\n          
"editor": {\n            "editOnDblClick": true\n          }, \n          
"defaultInterpreter": false, \n    
       "name": "angular", \n          "class": 
"org.apache.zeppelin.angular.AngularInterpreter"\n        }\n      ], \n      
"dependencies": [], \n      "properties": {}, \n      "option": {\n        
"setPermission": false, \n        "remote": true, \n        "users": [], \n     
   "isExistingProcess": false, \n        "perUser": "shared", \n        
"isUserImpersonate": false, \n        "perNote": "shared", \n        "port": 
-1\n      }\n    }\n  }, \n  "interpreterBindings": {}, \n  
"interpreterRepositories": [\n    {\n      "releasePolicy": {\n        
"checksumPolicy": "warn", \n        "enabled": true, \n        "updatePolicy": 
"daily"\n      }, \n      "mirroredRepositories": [], \n      "snapshotPolicy": 
{\n        "checksumPolicy": "warn", \n        "enabled": true, \n        
"updatePolicy": "daily"\n      }, \n      "url": 
"http://repo1.maven.org/maven2/";, \n      "repositoryManager": false, \n      
"type": "default", \n      "id": "central"\n    }, \n    {\n      "releasePoli
 cy": {\n        "checksumPolicy": "warn", \n        "enabled": true, \n        
"updatePolicy": "daily"\n      }, \n      "mirroredRepositories": [], \n      
"snapshotPolicy": {\n        "checksumPolicy": "warn", \n        "enabled": 
true, \n        "updatePolicy": "daily"\n      }, \n      "url": 
"file:///home/zeppelin/.m2/repository", \n      "repositoryManager": false, \n  
    "type": "default", \n      "id": "local"\n    }\n  ]\n}'
 

Reply via email to