Jelajahi Sumber

HUE-8554 [manager] Adding a check if service is installed API

Romain Rigaux 7 tahun lalu
induk
melakukan
cd29a58

+ 1 - 1
desktop/libs/indexer/src/indexer/api3.py

@@ -485,7 +485,7 @@ def _envelope_job(request, file_format, destination, start_time=None, lib_path=N
   collection_name = destination['name']
   indexer = EnvelopeIndexer(request.user, request.fs)
 
-  lib_path = '/tmp/envelope-0.5.0.jar'
+  lib_path = '/tmp/envelope-0.6.0-SNAPSHOT-c6.jar'
   input_path = None
 
   if file_format['inputFormat'] == 'table':

+ 2 - 1
desktop/libs/kafka/src/kafka/kafka_client.py

@@ -52,7 +52,7 @@ class KafkaApi(object):
   """
 
   def __init__(self, user=None, security_enabled=False, ssl_cert_ca_verify=False):
-    self._api_url = KAFKA.API_URL.get().strip('/')
+    self._api_url = KAFKA.API_URL.get().strip('/') if KAFKA.API_URL.get() else ''
 
     self.user = user
     self._client = HttpClient(self._api_url, logger=LOG)
@@ -66,6 +66,7 @@ class KafkaApi(object):
     except RestException, e:
       raise KafkaApiException(e)
 
+
   def create_topic(self, name, partitions=1, replication_factor=1):
     # Create/delete topics are not available in the REST API.
     # Here only works with hack if command is available on the Hue host.

+ 16 - 3
desktop/libs/metadata/src/metadata/manager_client.py

@@ -65,6 +65,19 @@ class ManagerApi(object):
     self._root = Resource(self._client)
 
 
+  def has_service(self, service_name, cluster_name=None):
+    cluster = self._get_cluster(cluster_name)
+    try:
+      services = self._root.get('clusters/%(cluster_name)s/serviceTypes' % {
+        'cluster_name': cluster['name'],
+        'service_name': service_name
+      })['items']
+
+      return service_name in services
+    except RestException, e:
+      raise ManagerApiException(e)
+
+
   def tools_echo(self):
     try:
       params = (
@@ -79,7 +92,7 @@ class ManagerApi(object):
 
   def get_kafka_brokers(self, cluster_name=None):
     try:
-      cluster = self._get_services(cluster_name)
+      cluster = self._get_cluster(cluster_name)
       services = self._root.get('clusters/%(name)s/services' % cluster)['items']
 
       service = [service for service in services if service['type'] == 'KAFKA'][0]
@@ -96,7 +109,7 @@ class ManagerApi(object):
 
   def get_kudu_master(self, cluster_name=None):
     try:
-      cluster = self._get_services(cluster_name)
+      cluster = self._get_cluster(cluster_name)
       services = self._root.get('clusters/%(name)s/services' % cluster)['items']
 
       service = [service for service in services if service['type'] == 'KUDU'][0]
@@ -119,7 +132,7 @@ class ManagerApi(object):
       raise ManagerApiException(e)
 
 
-  def _get_services(self, cluster_name=None):
+  def _get_cluster(self, cluster_name=None):
     clusters = self._root.get('clusters/')['items']
 
     if cluster_name is not None: