Example #1
0
    def get_jobs(self, notebook, snippet, logs):
        jobs = []

        if snippet['type'] == 'hive':
            engine = self._get_hive_execution_engine(notebook, snippet)
            jobs_with_state = parse_out_jobs(logs,
                                             engine=engine,
                                             with_state=True)

            jobs = [{
                'name':
                job.get('job_id', ''),
                'url':
                reverse('jobbrowser.views.single_job',
                        kwargs={'job': job.get('job_id', '')}),
                'started':
                job.get('started', False),
                'finished':
                job.get('finished', False)
            } for job in jobs_with_state]
        elif snippet['type'] == 'impala' and has_query_browser:
            query_id = unpack_guid_base64(snippet['result']['handle']['guid'])
            progress = min(self.progress(notebook, snippet, logs),
                           99) if snippet['status'] != 'available' and snippet[
                               'status'] != 'success' else 100
            jobs = [{
                'name': query_id,
                'url': '/hue/jobbrowser#!id=%s' % query_id,
                'started': True,
                'finished': False,
                'percentJob': progress
            }]

        return jobs
Example #2
0
 def _get_impala_query_id(self, snippet):
   guid = None
   if 'result' in snippet and 'handle' in snippet['result'] and 'guid' in snippet['result']['handle']:
     try:
       guid = unpack_guid_base64(snippet['result']['handle']['guid'])
     except Exception, e:
       LOG.warn('Failed to decode operation handle guid: %s' % e)
Example #3
0
 def _get_impala_query_id(self, snippet):
   guid = None
   if 'result' in snippet and 'handle' in snippet['result'] and 'guid' in snippet['result']['handle']:
     try:
       guid = unpack_guid_base64(snippet['result']['handle']['guid'])
     except Exception as e:
       LOG.warn('Failed to decode operation handle guid: %s' % e)
   else:
     LOG.warn('Snippet does not contain a valid result handle, cannot extract Impala query ID.')
   return guid
Example #4
0
    def get_jobs(self, notebook, snippet, logs):
        jobs = []

        patch_snippet_for_connector(snippet)

        if snippet['dialect'] == 'hive':
            engine = self._get_hive_execution_engine(notebook, snippet)
            jobs_with_state = parse_out_jobs(logs,
                                             engine=engine,
                                             with_state=True)
            queries_with_state = parse_out_queries(logs,
                                                   engine=engine,
                                                   with_state=True)

            jobs = [{
                'name':
                job.get('job_id', ''),
                'url':
                reverse('jobbrowser.views.single_job',
                        kwargs={'job': job.get('job_id', '')})
                if has_jobbrowser else '',
                'started':
                job.get('started', False),
                'finished':
                job.get('finished', False)
            } for job in jobs_with_state]
            if has_hive_query_browser:
                jobs += [{
                    'name': job.get('job_id', ''),
                    'url': 'api/job/queries-hive/',
                    'started': job.get('started', False),
                    'finished': job.get('finished', False)
                } for job in queries_with_state]
        elif snippet['dialect'] == 'impala' and has_query_browser:
            guid = snippet['result']['handle']['guid']
            if isinstance(guid, str):
                guid = guid.encode('utf-8')
            query_id = unpack_guid_base64(guid)
            progress = min(self.progress(notebook, snippet, logs),
                           99) if snippet['status'] != 'available' and snippet[
                               'status'] != 'success' else 100
            jobs = [{
                'name': query_id,
                'url': '/hue/jobbrowser#!id=%s' % query_id,
                'started': True,
                'finished': False,
                'percentJob': progress
            }]

        return jobs