Преглед изворни кода

HUE-8737 [py3] Workaround navoptapi module not present

Romain пре 6 година
родитељ
комит
ec0409c37f

+ 2 - 2
desktop/libs/azure/src/azure/conf.py

@@ -17,11 +17,11 @@ from __future__ import absolute_import
 
 import logging
 
-
 from django.utils.translation import ugettext_lazy as _, ugettext as _t
+from hadoop.core_site import get_adls_client_id, get_adls_authentication_code, get_adls_refresh_url
 
 from desktop.lib.conf import Config, UnspecifiedConfigSection, ConfigSection, coerce_password_from_script
-from hadoop.core_site import get_adls_client_id, get_adls_authentication_code, get_adls_refresh_url
+
 
 LOG = logging.getLogger(__name__)
 

+ 2 - 1
desktop/libs/libanalyze/src/libanalyze/models.py

@@ -19,6 +19,7 @@ import json
 from itertools import groupby
 from functools import reduce
 
+
 class Contributor(object):
   def __init__(self, **kwargs):
     self.id = None
@@ -179,4 +180,4 @@ class L(list):
 
   def __call__(self, **kwargs):
       self.__dict__.update(kwargs)
-      return self
+      return self

+ 11 - 4
desktop/libs/libanalyze/src/libanalyze/rules.py

@@ -18,6 +18,7 @@ from __future__ import division
 from builtins import zip
 from builtins import range
 from builtins import object
+from functools import reduce
 from past.utils import old_div
 import copy
 import glob
@@ -26,20 +27,26 @@ import logging
 import os
 import re
 import types
+import sys
 import struct
 
 from dateutil.parser import parse as dtparse
 from itertools import groupby
 
-from libanalyze.utils import Timer
-
 from libanalyze import models
 from libanalyze import exprs
 from libanalyze import utils
-from functools import reduce
+from libanalyze.utils import Timer
+
+if sys.version_info[0] > 2:
+  string_types = str
+else:
+  string_types = types.StringTypes
+
 
 LOG = logging.getLogger(__name__)
 
+
 def to_double(metric_value):
     return struct.unpack('d', struct.pack('q', metric_value))[0]
 
@@ -63,7 +70,7 @@ class SQLOperatorReason(object):
     def __init__(self, node_name, metric_names,
                  rule, exprs=[], to_json=True, **kwargs):
         self.node_name = node_name
-        if isinstance(metric_names, types.StringTypes):
+        if isinstance(metric_names, string_types):
             self.metric_names = [metric_names]
         else:
             self.metric_names = metric_names

+ 6 - 3
desktop/libs/metadata/src/metadata/optimizer_client.py

@@ -28,24 +28,27 @@ from django.core.cache import cache
 from django.utils.functional import wraps
 from django.utils.translation import ugettext as _
 
+from desktop.auth.backend import is_admin
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib import export_csvxls
 from desktop.lib.i18n import smart_unicode
 from desktop.lib.rest.http_client import RestException
 from libsentry.sentry_site import get_hive_sentry_provider
 from libsentry.privilege_checker import get_checker, MissingSentryPrivilegeException
-from navoptapi.api_lib import ApiLib
 
 from metadata.conf import OPTIMIZER, get_optimizer_url
 
-from desktop.auth.backend import is_admin
 
 LOG = logging.getLogger(__name__)
 
-
 _JSON_CONTENT_TYPE = 'application/json'
 OPTIMIZER_TENANT_ID_CACHE_KEY = 'navopt-tenant-id'
 
+try:
+  from navoptapi.api_lib import ApiLib
+except Exception as e:
+  LOG.exception('NavOpt module is not installed: %s' % e)
+
 
 class NavOptException(Exception):
   def __init__(self, message=None):

+ 6 - 5
desktop/libs/notebook/src/notebook/connectors/altus.py

@@ -24,19 +24,20 @@ from datetime import datetime, timedelta
 from django.urls import reverse
 from django.utils.translation import ugettext as _
 
-from metadata.conf import ALTUS, K8S
-from navoptapi.api_lib import ApiLib
-
-
 from desktop.lib.exceptions_renderable import PopupException
 from desktop.lib.rest.http_client import HttpClient
 from desktop.lib.rest.resource import Resource
-
+from metadata.conf import ALTUS, K8S
 
 LOG = logging.getLogger(__name__)
 
 DATE_FORMAT = "%Y-%m-%d"
 
+try:
+  from navoptapi.api_lib import ApiLib
+except Exception as e:
+  LOG.exception('NavOpt module is not installed: %s' % e)
+
 
 def _exec(service, command, parameters=None):
   if parameters is None: