Ejemplo n.º 1
0
def iter_orgs_dict():
    spec = {
        'type': ORG_DEFAULT,
    }

    org_user_count = get_user_count()

    for doc in Organization.collection.find(spec).sort('name'):
        org = Organization(doc=doc)
        org.user_count = org_user_count.get(org.id, 0)
        yield org.dict()
Ejemplo n.º 2
0
def iter_orgs(spec=None, type=ORG_DEFAULT, fields=None, page=None):
    limit = None
    skip = None
    page_count = settings.app.org_page_count

    if spec is None:
        spec = {}

    if type is not None:
        spec['type'] = type

    if page is not None:
        limit = page_count
        skip = page * page_count if page else 0

    if fields:
        fields = {key: True for key in fields}

    cursor = Organization.collection.find(spec, fields).sort('name')

    if skip is not None:
        cursor = cursor.skip(page * page_count if page else 0)
    if limit is not None:
        cursor = cursor.limit(limit)

    for doc in cursor:
        yield Organization(doc=doc, fields=fields)
Ejemplo n.º 3
0
def get_by_token(token, fields=None):
    doc = Organization.collection.find_one({
        'auth_token': token,
    }, fields)

    if doc:
        return Organization(doc=doc, fields=fields)
Ejemplo n.º 4
0
def get_by_name(name, fields=None):
    doc = Organization.collection.find_one({
        'name': name,
    }, fields)

    if doc:
        return Organization(doc=doc, fields=fields)
Ejemplo n.º 5
0
def new_org(type=ORG_DEFAULT, block=True, **kwargs):
    if type == ORG_DEFAULT:
        org = reserve_pooled(type=type, **kwargs)

        if not org:
            org = queue.reserve('queued_org', block=block, type=type, **kwargs)

            if org:
                logger.debug(
                    'Reserved queued org',
                    'organization',
                    org_id=org.id,
                )
        else:
            logger.debug(
                'Reserved pooled org',
                'organization',
                org_id=org.id,
            )

        if org:
            new_pooled()
            return org

        org = Organization(type=type, **kwargs)
        org.initialize()
        org.commit()

        logger.debug(
            'Org init',
            'organization',
            org_id=org.id,
        )

        return org
    else:
        org = Organization(type=type, **kwargs)
        org.queue_initialize(block=block)

        logger.debug(
            'Queue org init',
            'organization',
            org_id=org.id,
        )

        return org
Ejemplo n.º 6
0
def iter_orgs(spec=None, type=ORG_DEFAULT, fields=None):
    if spec is None:
        spec = {}
    if type is not None:
        spec['type'] = type

    if fields:
        fields = {key: True for key in fields}

    for doc in Organization.collection.find(spec, fields).sort('name'):
        yield Organization(doc=doc, fields=fields)
Ejemplo n.º 7
0
def new_org(type=ORG_DEFAULT, block=True, **kwargs):
    if type == ORG_DEFAULT:
        org = reserve_pooled(type=type, **kwargs)

        if not org:
            org = queue.reserve('queued_org', block=block, type=type, **kwargs)

        if org:
            new_pooled()
            return org

        org = Organization(type=type, **kwargs)
        org.initialize()
        org.commit()

        return org
    else:
        org = Organization(type=type, **kwargs)
        org.queue_initialize(block=block)

        return org
Ejemplo n.º 8
0
def reserve_pooled(name=None, type=ORG_DEFAULT):
    doc = {}

    if name is not None:
        doc['name'] = name
    if type is not None:
        doc['type'] = type

    doc = Organization.collection.find_and_modify({
        'type': ORG_POOL,
    }, {
        '$set': doc,
    }, new=True)

    if doc:
        return Organization(doc=doc)
Ejemplo n.º 9
0
def new_org(type=ORG_DEFAULT, block=True, **kwargs):
    if type == ORG_DEFAULT:
        org = reserve_pooled(type=type, **kwargs)

        if not org:
            org = queue.reserve("queued_org", block=block, type=type, **kwargs)

        if org:
            new_pooled()
            return org

        org = Organization(type=type, **kwargs)
        org.initialize()
        org.commit()

        return org
    else:
        org = Organization(type=type, **kwargs)
        org.queue_initialize(block=block)

        return org
Ejemplo n.º 10
0
def new_org(type=ORG_DEFAULT, block=True, **kwargs):
    if type == ORG_DEFAULT:
        org = reserve_pooled(type=type, **kwargs)

        if not org:
            org = queue.reserve('queued_org', block=block, type=type,
                **kwargs)

            if org:
                logger.debug('Reserved queued org', 'organization',
                    org_id=org.id,
                )
        else:
            logger.debug('Reserved pooled org', 'organization',
                org_id=org.id,
            )

        if org:
            new_pooled()
            return org

        org = Organization(type=type, **kwargs)
        org.initialize()
        org.commit()

        logger.debug('Org init', 'organization',
            org_id=org.id,
        )

        return org
    else:
        org = Organization(type=type, **kwargs)
        org.queue_initialize(block=block)

        logger.debug('Queue org init', 'organization',
            org_id=org.id,
        )

        return org
Ejemplo n.º 11
0
def get_by_id(id, fields=None):
    return Organization(id=id, fields=fields)