Bläddra i källkod

HUE-3920 [jb] Inform the user when Hive impersonation is off

Impersonation is also ON by default so change it.
Romain Rigaux 9 år sedan
förälder
incheckning
fd2ac2a

+ 2 - 2
apps/beeswax/src/beeswax/hive_site.py

@@ -129,7 +129,7 @@ def get_hiveserver2_authentication():
   return get_conf().get(_CNF_HIVESERVER2_AUTHENTICATION, 'NONE').upper() # NONE == PLAIN SASL
 
 def hiveserver2_impersonation_enabled():
-  return get_conf().get(_CNF_HIVESERVER2_IMPERSONATION, 'FALSE').upper() == 'TRUE'
+  return get_conf().get(_CNF_HIVESERVER2_IMPERSONATION, 'TRUE').upper() == 'TRUE'
 
 def hiveserver2_jdbc_url():
   urlbase = 'jdbc:hive2://%s:%s/default' % (beeswax.conf.HIVE_SERVER_HOST.get(),
@@ -139,7 +139,7 @@ def hiveserver2_jdbc_url():
             get_conf().get(_CNF_HIVESERVER2_TRUSTSTORE_PATH),
             get_conf().get(_CNF_HIVESERVER2_TRUSTSTORE_PASSWORD))
   else:
-     return urlbase
+    return urlbase
 
 def hiveserver2_use_ssl():
   return get_conf().get(_CNF_HIVESERVER2_USE_SSL, 'FALSE').upper() == 'TRUE'

+ 4 - 1
apps/jobbrowser/src/jobbrowser/templates/jobbrowser_components.mako

@@ -229,7 +229,7 @@
     %>
 </%def>
 
-<%def name="menubar()">
+<%def name="menubar(hiveserver2_impersonation_enabled=True)">
   <div class="navbar navbar-inverse navbar-fixed-top nokids">
       <div class="navbar-inner">
         <div class="container-fluid">
@@ -242,6 +242,9 @@
                 </a>
               </li>
             </ul>
+            % if not hiveserver2_impersonation_enabled:
+              <div class="pull-right alert alert-warning" style="margin-top: 4px">${ _("Hive jobs are running as the 'hive' user") }</div>
+            % endif
           </div>
         </div>
       </div>

+ 1 - 1
apps/jobbrowser/src/jobbrowser/templates/jobs.mako

@@ -23,7 +23,7 @@
 <%namespace name="components" file="jobbrowser_components.mako" />
 
 ${ commonheader(None, "jobbrowser", user) | n,unicode }
-${ components.menubar() }
+${ components.menubar(hiveserver2_impersonation_enabled) }
 
 <link href="${ static('jobbrowser/css/jobbrowser.css') }" rel="stylesheet">
 

+ 14 - 8
apps/jobbrowser/src/jobbrowser/views.py

@@ -15,10 +15,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import re
-import time
 import logging
+import re
 import string
+import time
+import urllib2
 import urlparse
 
 from urllib import quote_plus
@@ -42,16 +43,20 @@ from hadoop.api.jobtracker.ttypes import ThriftJobPriority, TaskTrackerNotFoundE
 from hadoop.yarn.clients import get_log_client
 import hadoop.yarn.resource_manager_api as resource_manager_api
 
+LOG = logging.getLogger(__name__)
+
+
+try:
+  from beeswax.hive_site import hiveserver2_impersonation_enabled
+except:
+  LOG.warn('Hive is not enabled')
+  def hiveserver2_impersonation_enabled(): return True
+
 from jobbrowser.conf import SHARE_JOBS
 from jobbrowser.api import get_api, ApplicationNotRunning, JobExpired
 from jobbrowser.models import Job, JobLinkage, Tracker, Cluster, can_view_job, can_modify_job, LinkJobLogs, can_kill_job
 from jobbrowser.yarn_models import Application
 
-import urllib2
-
-
-LOG = logging.getLogger(__name__)
-
 
 def check_job_permission(view_func):
   """
@@ -131,7 +136,8 @@ def jobs(request):
     'text_filter': text,
     'retired': retired,
     'filtered': not (state == 'all' and user == '' and text == ''),
-    'is_yarn': cluster.is_yarn()
+    'is_yarn': cluster.is_yarn(),
+    'hiveserver2_impersonation_enabled': hiveserver2_impersonation_enabled()
   })
 
 def massage_job_for_json(job, request):