def queue(queue_id='default'):
    '''
  Fetches the number of jobs being
  processed at a determinate queue endpoint.
  '''
    result = getStatus(queue_id)
    return flask.jsonify(**result)
def computeUsers():
    '''
    Computes information about all users from a
    CKAN instance.

    '''
    key = 'users'
    status = getStatus(key)
    queue = Queue(connection=Redis(host=REDIS_HOST), name=key)
    objects = ckan.action.user_list()
    if status['empty']:
      for object in objects:
        job = queue.enqueue(fetchAndStore, key, object['id'])

    response = {
        'success': True,
        'message': 'Computing user information. {n} before finished.'.format(n=status['count']),
        'endpoint': key,
        'time': None,
        'ETA': None,
        'computations': {
          'total': len(objects),
          'completed': len(objects) - status['count'],
          'queued': status['count'],
          'progress': round(((len(objects) - status['count']) / len(objects)) * 100, 2)
        }
      }

    return flask.jsonify(**response)
def queue(queue_id='default'):
  '''
  Fetches the number of jobs being
  processed at a determinate queue endpoint.
  '''
  result = getStatus(queue_id)
  return flask.jsonify(**result)
def computeCountries():
    '''
    Computes information about all countries of a
    CKAN instance.

    '''
    key = 'countries'
    status = getStatus(key)
    queue = Queue(connection=Redis(host=REDIS_HOST), name=key)
    countries = ckan.action.group_list()
    if status['empty']:
      for country in countries:
        job = queue.enqueue(fetchAndStore, key, country)

    response = {
        'success': True,
        'message': 'Computing countries information. {n} before finished.'.format(n=status['count']),
        'endpoint': key,
        'time': None,
        'ETA': None,
        'computations': {
          'total': len(countries),
          'completed': len(countries) - status['count'],
          'queued': status['count'],
          'progress': round(((len(countries) - status['count']) / len(countries)) * 100, 2)
        }
      }

    return flask.jsonify(**response)
def computeResources():
    '''
    Computes information about all resources from a
    CKAN instance.

    '''
    #
    # TODO: there aren't resource_list
    # method to list all resources from a
    # a CKAN instance.
    #
    # This route should not be registered
    # right now.
    #
    key = 'resources'
    status = getStatus(key)
    queue = Queue(connection=Redis(host=REDIS_HOST), name=key)
    objects = ckan.action.package_list()
    if status['empty']:
        for object in objects:
            job = queue.enqueue(fetchAndStore, key, object)

    response = {
        'success':
        True,
        'message':
        'Computing resource information. {n} before finished.'.format(
            n=status['count']),
        'endpoint':
        key,
        'time':
        None,
        'ETA':
        None,
        'computations': {
            'total':
            len(objects),
            'completed':
            len(objects) - status['count'],
            'queued':
            status['count'],
            'progress':
            round(((len(objects) - status['count']) / len(objects)) * 100, 2)
        }
    }

    return flask.jsonify(**response)
Example #6
0
def computeCountries():
    '''
    Computes information about all countries of a
    CKAN instance.

    '''
    key = 'countries'
    status = getStatus(key)
    queue = Queue(connection=Redis(host=REDIS_HOST), name=key)
    countries = ckan.action.group_list()
    if status['empty']:
        for country in countries:
            job = queue.enqueue(fetchAndStore, key, country)

    response = {
        'success':
        True,
        'message':
        'Computing countries information. {n} before finished.'.format(
            n=status['count']),
        'endpoint':
        key,
        'time':
        None,
        'ETA':
        None,
        'computations': {
            'total':
            len(countries),
            'completed':
            len(countries) - status['count'],
            'queued':
            status['count'],
            'progress':
            round(((len(countries) - status['count']) / len(countries)) * 100,
                  2)
        }
    }

    return flask.jsonify(**response)
def computeResources():
    '''
    Computes information about all resources from a
    CKAN instance.

    '''
    #
    # TODO: there aren't resource_list
    # method to list all resources from a
    # a CKAN instance.
    #
    # This route should not be registered
    # right now.
    #
    key = 'resources'
    status = getStatus(key)
    queue = Queue(connection=Redis(host=REDIS_HOST), name=key)
    objects = ckan.action.package_list()
    if status['empty']:
      for object in objects:
        job = queue.enqueue(fetchAndStore, key, object)

    response = {
        'success': True,
        'message': 'Computing resource information. {n} before finished.'.format(n=status['count']),
        'endpoint': key,
        'time': None,
        'ETA': None,
        'computations': {
          'total': len(objects),
          'completed': len(objects) - status['count'],
          'queued': status['count'],
          'progress': round(((len(objects) - status['count']) / len(objects)) * 100, 2)
        }
      }

    return flask.jsonify(**response)