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()
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)
def get_by_token(token, fields=None): doc = Organization.collection.find_one({ 'auth_token': token, }, fields) if doc: return Organization(doc=doc, fields=fields)
def get_by_name(name, fields=None): doc = Organization.collection.find_one({ 'name': name, }, fields) if doc: return Organization(doc=doc, fields=fields)
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
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)
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
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)
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
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
def get_by_id(id, fields=None): return Organization(id=id, fields=fields)