Selaa lähdekoodia

[beeswax] Closing queries/sessions should report if already closed

Erick Tryzelaar 10 vuotta sitten
vanhempi
commit
f82e63d

+ 8 - 3
apps/beeswax/src/beeswax/management/commands/close_queries.py

@@ -45,7 +45,6 @@ class Command(BaseCommand):
 
     self.stdout.write('Closing (all=%s) HiveServer2 queries older than %s days...\n' % (close_all, days))
 
-    n = 0
     queries = QueryHistory.objects.filter(last_state__in=[QueryHistory.STATE.expired.index, QueryHistory.STATE.failed.index, QueryHistory.STATE.available.index])
 
     if close_all:
@@ -67,6 +66,8 @@ class Command(BaseCommand):
     hive_site.reset()
     hive_site.get_conf()
 
+    closed_queries = 0
+    already_closed_queries = 0
 
     for query in queries:
       try:
@@ -74,14 +75,18 @@ class Command(BaseCommand):
         if query_history.server_id is not None:
           handle = query_history.get_handle()
           dbms.get(user=query_history.owner).close_operation(handle)
-          n += 1
+          closed_queries += 1
+        else:
+          already_closed_queries += 1
+
         query.last_state = QueryHistory.STATE.expired.index
         query.save()
       except Exception, e:
         if 'None' in str(e) or 'Invalid OperationHandle' in str(e):
+          already_closed_queries += 1
           query.last_state = QueryHistory.STATE.expired.index
           query.save()
         else:
           self.stdout.write('Info: %s\n' % e)
 
-    self.stdout.write('%s queries closed.\n' % n)
+    self.stdout.write('%s queries closed. %s queries already closed.\n' % (closed_queries, already_closed_queries))

+ 10 - 4
apps/beeswax/src/beeswax/management/commands/close_sessions.py

@@ -45,7 +45,6 @@ class Command(BaseCommand):
 
     self.stdout.write('Closing (all=%s) HiveServer2 sessions older than %s days...\n' % (close_all, days))
 
-    n = 0
     sessions = Session.objects.all()
 
     if not close_all:
@@ -67,14 +66,21 @@ class Command(BaseCommand):
     hive_site.reset()
     hive_site.get_conf()
 
+    closed_sessions = 0
+    already_closed_sessions = 0
+
     for session in sessions:
       try:
         resp = dbms.get(user=session.owner).close_session(session)
         if not 'Session does not exist!' in str(resp):
           self.stdout.write('Info: %s\n' % resp)
-          n += 1
+          closed_sessions += 1
+        else:
+          already_closed_sessions += 1
       except Exception, e:
-        if not 'Session does not exist!' in str(e):
+        if 'Session does not exist!' in str(e):
+          already_closed_sessions += 1
+        else:
           self.stdout.write('Info: %s\n' % e)
 
-    self.stdout.write('%s sessions closed.\n' % n)
+    self.stdout.write('%s sessions closed. %s sessions already closed.\n' % (closed_sessions, already_closed_sessions))