コード例 #1
0
def _filter_oozie_jobs(user, filters, kwargs):
    text_filters = _extract_query_params(filters)

    if not has_dashboard_jobs_access(user):
        kwargs['filters'].append(('user', user.username))
    elif 'username' in text_filters:
        kwargs['filters'].append(('user', text_filters['username']))

    if 'time' in filters:
        kwargs['filters'].extend([
            ('startcreatedtime', '-%s%s' %
             (filters['time']['time_value'], filters['time']['time_unit'][:1]))
        ])

    if hasattr(ENABLE_OOZIE_BACKEND_FILTERING,
               'get') and ENABLE_OOZIE_BACKEND_FILTERING.get(
               ) and text_filters.get('text'):
        kwargs['filters'].extend([('text', text_filters.get('text'))])

    if filters['pagination']:
        kwargs['offset'] = filters['pagination']['offset']
        kwargs['cnt'] = min(
            filters['pagination']['limit'],
            hasattr(OOZIE_JOBS_COUNT, 'get') and OOZIE_JOBS_COUNT.get())

    if filters.get('states'):
        states_filters = {
            'running': ['RUNNING', 'PREP', 'SUSPENDED'],
            'completed': ['SUCCEEDED'],
            'failed': ['FAILED', 'KILLED'],
        }
        for _state in filters.get('states'):
            for _status in states_filters[_state]:
                kwargs['filters'].extend([('status', _status)])
コード例 #2
0
ファイル: workflow_api.py プロジェクト: xixiaohui/hue
    def apps(self, filters):
        kwargs = {'cnt': OOZIE_JOBS_COUNT.get(), 'filters': []}

        text_filters = _extract_query_params(filters)

        if not has_dashboard_jobs_access(self.user):
            kwargs['filters'].append(('user', self.user.username))
        elif 'user' in text_filters:
            kwargs['filters'].append(('user', text_filters['username']))

        if 'time' in filters:
            kwargs['filters'].extend([
                ('startcreatedtime',
                 '-%s%s' % (filters['time']['time_value'],
                            filters['time']['time_unit'][:1]))
            ])

        if ENABLE_OOZIE_BACKEND_FILTERING.get() and text_filters.get('text'):
            kwargs['filters'].extend([('text', text_filters.get('text'))])

        if filters['pagination']:
            kwargs['offset'] = filters['pagination']['offset']
            kwargs['cnt'] = min(filters['pagination']['limit'],
                                OOZIE_JOBS_COUNT.get())

        if filters.get('states'):
            states_filters = {
                'running': ['RUNNING', 'PREP', 'SUSPENDED'],
                'completed': ['SUCCEEDED'],
                'failed': ['FAILED', 'KILLED'],
            }
            for _state in filters.get('states'):
                for _status in states_filters[_state]:
                    kwargs['filters'].extend([('status', _status)])

        oozie_api = get_oozie(self.user)

        wf_list = oozie_api.get_workflows(**kwargs)

        return {
            'apps': [{
                'id': app['id'],
                'name': app['appName'],
                'status': app['status'],
                'apiStatus': self._api_status(app['status']),
                'type': 'workflow',
                'user': app['user'],
                'progress': app['progress'],
                'duration': app['durationInMillis'],
                'submitted': app['startTimeInMillis']
            }
                     for app in massaged_oozie_jobs_for_json(
                         wf_list.jobs, self.user)['jobs']],
            'total':
            wf_list.total
        }
コード例 #3
0
    def apps(self, filters):
        kwargs = {'cnt': OOZIE_JOBS_COUNT.get(), 'filters': []}

        text_filters = _extract_query_params(filters)

        if not has_dashboard_jobs_access(self.user):
            kwargs['filters'].append(('user', self.user.username))
        elif 'user' in text_filters:
            kwargs['filters'].append(('user', text_filters['username']))

        if 'time' in filters:
            kwargs['filters'].extend([
                ('startcreatedtime',
                 '-%s%s' % (filters['time']['time_value'],
                            filters['time']['time_unit'][:1]))
            ])

        if ENABLE_OOZIE_BACKEND_FILTERING.get() and text_filters.get('text'):
            kwargs['filters'].extend([('text', text_filters.get('text'))])

        if filters.get('states'):
            states_filters = {
                'running': ['RUNNING', 'PREP', 'SUSPENDED'],
                'completed': ['SUCCEEDED'],
                'failed': ['FAILED', 'KILLED'],
            }
            for _state in filters.get('states'):
                for _status in states_filters[_state]:
                    kwargs['filters'].extend([('status', _status)])

        oozie_api = get_oozie(self.user)

        wf_list = oozie_api.get_workflows(**kwargs)

        return [{
            'id': app.id,
            'name': app.appName,
            'status': app.status,
            'apiStatus': self._api_status(app.status),
            'type': 'workflow',
            'user': app.user,
            'progress': app.get_progress(),
            'duration': 10 * 3600,
            'submitted': 10 * 3600
        } for app in wf_list.jobs]
コード例 #4
0
ファイル: workflow_api.py プロジェクト: 10sr/hue
  def apps(self, filters):
    kwargs = {'cnt': OOZIE_JOBS_COUNT.get(), 'filters': []}

    text_filters = _extract_query_params(filters)

    if not has_dashboard_jobs_access(self.user):
      kwargs['filters'].append(('user', self.user.username))
    elif 'user' in text_filters:
      kwargs['filters'].append(('user', text_filters['username']))

    if 'time' in filters:
      kwargs['filters'].extend([('startcreatedtime', '-%s%s' % (filters['time']['time_value'], filters['time']['time_unit'][:1]))])

    if ENABLE_OOZIE_BACKEND_FILTERING.get() and text_filters.get('text'):
      kwargs['filters'].extend([('text', text_filters.get('text'))])

    if filters['pagination']:
      kwargs['offset'] = filters['pagination']['offset']
      kwargs['cnt'] = min(filters['pagination']['limit'], OOZIE_JOBS_COUNT.get())

    if filters.get('states'):
      states_filters = {'running': ['RUNNING', 'PREP', 'SUSPENDED'], 'completed': ['SUCCEEDED'], 'failed': ['FAILED', 'KILLED'],}
      for _state in filters.get('states'):
        for _status in states_filters[_state]:
          kwargs['filters'].extend([('status', _status)])

    oozie_api = get_oozie(self.user)

    wf_list = oozie_api.get_workflows(**kwargs)

    return {
      'apps':[{
        'id': app['id'],
        'name': app['appName'],
        'status': app['status'],
        'apiStatus': self._api_status(app['status']),
        'type': 'workflow',
        'user': app['user'],
        'progress': app['progress'],
        'duration': app['durationInMillis'],
        'submitted': app['startTimeInMillis']
      } for app in massaged_oozie_jobs_for_json(wf_list.jobs, self.user)['jobs']],
      'total': wf_list.total
    }
コード例 #5
0
ファイル: workflow_api.py プロジェクト: cloudera/hue
def _filter_oozie_jobs(user, filters, kwargs):
    text_filters = _extract_query_params(filters)

    if has_oozie_installed and not has_dashboard_jobs_access(user):
      kwargs['filters'].append(('user', user.username))
    elif 'username' in text_filters:
      kwargs['filters'].append(('user', text_filters['username']))

    if 'time' in filters:
      kwargs['filters'].extend([('startcreatedtime', '-%s%s' % (filters['time']['time_value'], filters['time']['time_unit'][:1]))])

    if has_oozie_installed and ENABLE_OOZIE_BACKEND_FILTERING.get() and text_filters.get('text'):
      kwargs['filters'].extend([('text', text_filters.get('text'))])

    if filters['pagination']:
      kwargs['offset'] = filters['pagination']['offset']
      kwargs['cnt'] = min(filters['pagination']['limit'], hasattr(OOZIE_JOBS_COUNT, 'get') and OOZIE_JOBS_COUNT.get())

    if filters.get('states'):
      states_filters = {'running': ['RUNNING', 'PREP', 'SUSPENDED'], 'completed': ['SUCCEEDED'], 'failed': ['FAILED', 'KILLED'],}
      for _state in filters.get('states'):
        for _status in states_filters[_state]:
          kwargs['filters'].extend([('status', _status)])