Repository: ambari
Updated Branches:
  refs/heads/branch-feature-AMBARI-18901 4942deaf5 -> 5c239d11d


AMBARI-18955. Cleanup 'LLAP package' folder(s) before a given Hive Server 
Interactive (HSI) start/restart.


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

Branch: refs/heads/branch-feature-AMBARI-18901
Commit: 5c239d11dac96f72e205b819ac6527712a2b0c19
Parents: 4942dea
Author: Swapan Shridhar <[email protected]>
Authored: Mon Nov 21 16:47:00 2016 -0800
Committer: Swapan Shridhar <[email protected]>
Committed: Mon Nov 21 17:04:32 2016 -0800

----------------------------------------------------------------------
 .../package/scripts/hive_server_interactive.py  | 35 ++++++++++++++++++++
 1 file changed, 35 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/5c239d11/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_interactive.py
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_interactive.py
 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_interactive.py
index 2c6d4b0..00e5fc1 100644
--- 
a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_interactive.py
+++ 
b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server_interactive.py
@@ -269,6 +269,9 @@ class HiveServerInteractiveDefault(HiveServerInteractive):
           Logger.info("LLAP app '{0}' is not running. llap will be 
started.".format(LLAP_APP_NAME))
         pass
 
+      # Call for cleaning up the earlier run(s) LLAP package folders.
+      self._cleanup_past_llap_package_dirs()
+
       Logger.info("Starting LLAP")
       LLAP_PACKAGE_CREATION_PATH = Script.get_tmp_dir()
 
@@ -342,6 +345,38 @@ class HiveServerInteractiveDefault(HiveServerInteractive):
         raise
 
     """
+    Checks and deletes previous run 'LLAP package' folders, ignoring three 
latest packages.
+    Last three are are ignore for debugging/reference purposes.
+    Helps in keeping check on disk space used.
+    """
+    def _cleanup_past_llap_package_dirs(self):
+      try:
+        import params
+        Logger.info("Determining previous run 'LLAP package' folder(s) to be 
deleted ....")
+        llap_package_folder_name_prefix = "llap-slider" # Package name is like 
: llap-sliderYYYY-MM-DD-HH:MM:SS
+        num_folders_to_retain = 3  # Hardcoding it as of now, as no 
considerable use was found to provide an env param.
+        file_names = [dir_name for dir_name in os.listdir(Script.get_tmp_dir())
+                      if dir_name.startswith(llap_package_folder_name_prefix)]
+
+        file_names.sort()
+        del file_names[-num_folders_to_retain:] # Ignore 
'num_folders_to_retain' latest package folders.
+        Logger.info("Previous run 'LLAP package' folder(s) to be deleted = 
{0}".format(file_names))
+
+        if file_names:
+          for path in file_names:
+            abs_path = Script.get_tmp_dir()+"/"+path
+            if os.path.isdir(abs_path):
+              shutil.rmtree(abs_path)
+              Logger.info("Deleted previous run 'LLAP package' folder : 
{0}".format(abs_path))
+        else:
+          Logger.info("No '{0}*' folder 
deleted.".format(llap_package_folder_name_prefix))
+      except Exception as e:
+        Logger.info("Exception while doing cleanup for past 'LLAP 
package(s)'.")
+        traceback.print_exc()
+
+
+
+    """
     Does kinit and copies keytab for Hive/LLAP to HDFS.
     """
     def setup_security(self):

Reply via email to