def create_pool(): """ Creates a new system pool in Beaker. The request must be :mimetype:`application/x-www-form-urlencoded` or :mimetype:`application/json`. :jsonparam string name: Name for the system pool. :jsonparam string description: Description of the system pool. :jsonparam object owner: JSON object containing a ``user_name`` key or ``group_name`` key identifying the owner for the system pool. :status 201: The system pool was successfully created. """ owner = None description = None u = identity.current.user if request.json: if 'name' not in request.json: raise BadRequest400('Missing pool name key') new_name = request.json['name'] if 'owner' in request.json: owner = request.json['owner'] if 'description' in request.json: description = request.json['description'] elif request.form: if 'name' not in request.form: raise BadRequest400('Missing pool name parameter') new_name = request.form['name'] if 'owner' in request.form: owner = request.form['owner'] if 'description' in request.form: description = request.form['description'] else: raise UnsupportedMediaType415 with convert_internal_errors(): if SystemPool.query.filter(SystemPool.name == new_name).count() != 0: raise Conflict409('System pool with name %r already exists' % new_name) pool = SystemPool(name=new_name, description=description) session.add(pool) if owner: owner, owner_type = _get_owner(owner) if owner_type == 'user': pool.owning_user = owner else: pool.owning_group = owner else: pool.owning_user = u # new systems pool are visible to everybody by default pool.access_policy = SystemAccessPolicy() pool.access_policy.add_rule(SystemPermission.view, everybody=True) pool.record_activity(user=u, service=u'HTTP', action=u'Created', field=u'Pool', new=unicode(pool)) response = jsonify(pool.__json__()) response.status_code = 201 response.headers.add('Location', absolute_url(pool.href)) return response
def create_system_pool(name=None, description=u'A system Pool', owning_group=None, owning_user=None, systems=[]): if owning_group and owning_user: raise ValueError('Must supply either an owning user or an owning group') if not owning_group and not owning_user: owning_user = create_user() if name is None: name = unique_name(u'test-system-pool-%s') pool = SystemPool(name=name, description=description, owning_group=owning_group, owning_user=owning_user, systems=systems) pool.access_policy = SystemAccessPolicy() pool.access_policy.add_rule(SystemPermission.view, everybody=True) session.add(pool) log.debug('Created System Pool %s', pool.name) return pool
def create_system_pool(name=None, description='A system Pool', owning_group=None, owning_user=None, systems=[]): if owning_group and owning_user: raise ValueError('Must supply either an owning user or an owning group') if not owning_group and not owning_user: owning_user = create_user() if name is None: name = unique_name(u'test-system-pool-%s') pool = SystemPool(name=name, description=description, owning_group=owning_group, owning_user=owning_user, systems=systems) pool.access_policy = SystemAccessPolicy() pool.access_policy.add_rule(SystemPermission.view, everybody=True) session.add(pool) log.debug('Created System Pool %s', pool.name) return pool