def set_rs_dataset(resource_attr_id, scenario_id, dataset_id, **kwargs): rs = DBSession.query(ResourceScenario).filter( ResourceScenario.resource_attr_id == resource_attr_id, ResourceScenario.scenario_id == scenario_id).first() if rs is None: raise ResourceNotFoundError( "Resource scenario for resource attr %s not found in scenario %s" % (resource_attr_id, scenario_id)) dataset = DBSession.query(Dataset).filter( Dataset.dataset_id == dataset_id).first() if dataset is None: raise ResourceNotFoundError("Dataset %s not found" % (dataset_id, )) rs.dataset_id = dataset_id DBSession.flush() rs = DBSession.query(ResourceScenario).filter( ResourceScenario.resource_attr_id == resource_attr_id, ResourceScenario.scenario_id == scenario_id).first() return rs
def _get_user(user_id, **kwargs): try: user_i = DBSession.query(User).filter(User.user_id==user_id).one() except NoResultFound: raise ResourceNotFoundError("User %s does not exist"%user_id) return user_i
def _get_project(project_id): try: project = DBSession.query(Project).filter( Project.project_id == project_id).one() return project except NoResultFound: raise ResourceNotFoundError("Project %s not found" % (project_id))
def _get_group(group_id): try: DBSession.query(ResourceGroup).filter( ResourceGroup.group_id == group_id).one() except NoResultFound: raise ResourceNotFoundError("ResourceGroup %s not found" % (group_id, ))
def _get_role(role_id,**kwargs): try: role_i = DBSession.query(Role).filter(Role.role_id==role_id).one() except NoResultFound: raise ResourceNotFoundError("Role %s does not exist"%role_id) return role_i
def get_username(uid,**kwargs): rs = DBSession.query(User.username).filter(User.user_id==uid).one() if rs is None: raise ResourceNotFoundError("User with ID %s not found"%uid) return rs.username
def get_dataset_collection_by_name(collection_name,**kwargs): try: collection = DBSession.query(DatasetCollection).filter(DatasetCollection.collection_name==collection_name).one() except NoResultFound: raise ResourceNotFoundError("No dataset collection found with name %s"%collection_name) return collection
def update_role(role,**kwargs): """ Update the role. Used to add permissions and users to a role. """ #check_perm(kwargs.get('user_id'), 'edit_role') try: role_i = DBSession.query(Role).filter(Role.role_id==role.id).one() role_i.role_name = role.name role_i.role_code = role.code except NoResultFound: raise ResourceNotFoundError("Role (role_id=%s) does not exist"%(role.id)) for perm in role.permissions: _get_perm(perm.id) roleperm_i = RolePerm(role_id=role.id, perm_id=perm.id ) DBSession.add(roleperm_i) for user in role.users: _get_user(user.id) roleuser_i = RoleUser(user_id=user.id, perm_id=perm.id ) DBSession.add(roleuser_i) DBSession.flush() return role_i
def add_resource_attribute(resource_type, resource_id, attr_id, is_var, **kwargs): """ Add a resource attribute attribute to a resource. attr_is_var indicates whether the attribute is a variable or not -- this is used in simulation to indicate that this value is expected to be filled in by the simulator. """ attr = DBSession.query(Attr).filter(Attr.attr_id == attr_id).first() if attr is None: raise ResourceNotFoundError("Attribute with ID %s does not exist." % attr_id) resource_i = _get_resource(resource_type, resource_id) for ra in resource_i.attributes: if ra.attr_id == attr_id: raise HydraError( "Duplicate attribute. %s %s already has attribute %s" % (resource_type, resource_i.get_name(), attr.attr_name)) attr_is_var = 'Y' if is_var else 'N' new_ra = resource_i.add_attribute(attr_id, attr_is_var) DBSession.flush() return new_ra
def _get_network(network_id): try: net_i = DBSession.query(Network).filter( Network.network_id == network_id).one() return net_i except NoResultFound: raise ResourceNotFoundError("Network %s not found" % (network_id))
def _get_template(template_id): try: tmpl_i = DBSession.query(Template).filter( Template.template_id == template_id).one() return tmpl_i except NoResultFound: raise ResourceNotFoundError("Network %s not found" % (template_id))
def _add_resourcegroupitem(group_item, scenario_id): """ Add a single resource group item (no DB flush, as it's an internal function) """ if group_item.id and group_item.id > 0: try: group_item_i = DBSession.query(ResourceGroupItem).filter( ResourceGroupItem.item_id == group_item.id).one() except NoResultFound: raise ResourceNotFoundError("ResourceGroupItem %s not found" % (group_item.id)) else: group_item_i = ResourceGroupItem() group_item_i.group_id = group_item.group_id if scenario_id is not None: group_item_i.scenario_id = scenario_id ref_key = group_item.ref_key group_item_i.ref_key = ref_key if ref_key == 'NODE': group_item_i.node_id = group_item.ref_id elif ref_key == 'LINK': group_item_i.link_id = group_item.ref_id elif ref_key == 'GROUP': group_item_i.subgroup_id = group_item.ref_id DBSession.add(group_item_i) return group_item_i
def _get_dataset(dataset_id): try: dataset_i = DBSession.query(Dataset).filter( Dataset.dataset_id == dataset_id).one() return dataset_i except NoResultFound: raise ResourceNotFoundError("Dataset %s not found" % (dataset_id))
def _get_attr(attr_id): try: attr = DBSession.query(Attr).filter(Attr.attr_id == attr_id).one() return attr except NoResultFound: raise ResourceNotFoundError("Attribute with ID %s not found" % (attr_id, ))
def _get_perm(perm_id,**kwargs): try: perm_i = DBSession.query(Perm).filter(Perm.perm_id==perm_id).one() except NoResultFound: raise ResourceNotFoundError("Permission %s does not exist"%perm_id) return perm_i
def _get_item(item_id): try: item = DBSession.query(ResourceGroupItem).filter( ResourceGroupItem.item_id == item_id).one() return item except NoResultFound: raise ResourceNotFoundError("ResourceGroupItem %s not found" % (item_id, ))
def _get_templatetype(type_id): try: typ = DBSession.query(TemplateType).filter( TemplateType.type_id == type_id).one() return typ except NoResultFound: raise ResourceNotFoundError("Template Type with ID %s not found" % (type_id, ))
def delete_dataset_collection(collection_id,**kwargs): try: collection = DBSession.query(DatasetCollection).filter(DatasetCollection.collection_id==collection_id).one() except NoResultFound: raise ResourceNotFoundError("No dataset collection found with id %s"%collection_id) DBSession.delete(collection) DBSession.flush()
def get_role_by_code(role_code,**kwargs): """ Get a role by its code """ try: role = DBSession.query(Role).filter(Role.role_code==role_code).one() return role except NoResultFound: raise ResourceNotFoundError("Role not found (role_code=%s)"%(role_code))
def get_perm_by_code(perm_code,**kwargs): """ Get a permission by its code """ try: perm = DBSession.query(Perm).filter(Perm.perm_code==perm_code).one() return perm except NoResultFound: raise ResourceNotFoundError("Permission not found (perm_code=%s)"(perm_code))
def update_user_display_name(user,**kwargs): """ """ #check_perm(kwargs.get('user_id'), 'edit_user') try: user_i = DBSession.query(User).filter(User.user_id==user.id).one() user_i.display_name = user.display_name return user_i except NoResultFound: raise ResourceNotFoundError("User (id=%s) not found"%(user.id))
def update_user_password(new_pwd_user_id, new_password,**kwargs): """ """ #check_perm(kwargs.get('user_id'), 'edit_user') try: user_i = DBSession.query(User).filter(User.user_id==new_pwd_user_id).one() user_i.password = bcrypt.hashpw(new_password.encode('utf-8'), bcrypt.gensalt()) return user_i except NoResultFound: raise ResourceNotFoundError("User (id=%s) not found"%(new_pwd_user_id))
def get_perm(perm_id,**kwargs): """ Get all permissions """ try: perm = DBSession.query(Perm).filter(Perm.perm_id==perm_id).one() return perm except NoResultFound: raise ResourceNotFoundError("Permission not found (perm_id=%s)"%(perm_id))
def _get_collection(collection_id): """ Get a dataset collection by ID :param collection ID """ try: collection = DBSession.query(DatasetCollection).filter(DatasetCollection.collection_id==collection_id).one() return collection except NoResultFound: raise ResourceNotFoundError("No dataset collection found with id %s"%collection_id)
def get_collections_like_name(collection_name,**kwargs): """ Get all the datasets from the collection with the specified name """ try: collections = DBSession.query(DatasetCollection).filter(DatasetCollection.collection_name.like("%%%s%%"%collection_name.lower())).all() except NoResultFound: raise ResourceNotFoundError("No dataset collection found with name %s"%collection_name) return collections
def delete_role(role_id,**kwargs): """ """ #check_perm(kwargs.get('user_id'), 'edit_role') try: role_i = DBSession.query(Role).filter(Role.role_id==role_id).one() DBSession.delete(role_i) except InvalidRequestError: raise ResourceNotFoundError("Role (role_id=%s) does not exist"%(role_id)) return 'OK'
def delete_perm(perm_id,**kwargs): """ """ #check_perm(kwargs.get('user_id'), 'edit_perm') try: perm_i = DBSession.query(Perm).filter(Perm.perm_id==perm_id).one() DBSession.delete(perm_i) except InvalidRequestError: raise ResourceNotFoundError("Permission (id=%s) does not exist"%(perm_id)) return 'OK'
def set_user_role(new_user_id, role_id,**kwargs): #check_perm(kwargs.get('user_id'), 'edit_role') try: _get_user(new_user_id) _get_role(role_id) roleuser_i = RoleUser(user_id=new_user_id, role_id=role_id) DBSession.add(roleuser_i) DBSession.flush() except: # Will occur if the foreign keys do not exist raise ResourceNotFoundError("User or Role does not exist") return roleuser_i.role
def delete_user_role(deleted_user_id, role_id,**kwargs): #check_perm(kwargs.get('user_id'), 'edit_role') try: _get_user(deleted_user_id) _get_role(role_id) roleuser_i = DBSession.query(RoleUser).filter(RoleUser.user_id==deleted_user_id, RoleUser.role_id==role_id).one() DBSession.delete(roleuser_i) except NoResultFound: raise ResourceNotFoundError("User Role does not exist") return 'OK'
def delete_role_perm(role_id, perm_id,**kwargs): #check_perm(kwargs.get('user_id'), 'edit_perm') _get_perm(perm_id) _get_role(role_id) try: roleperm_i = DBSession.query(RolePerm).filter(RolePerm.role_id==role_id, RolePerm.perm_id==perm_id).one() DBSession.delete(roleperm_i) except NoResultFound: raise ResourceNotFoundError("Role Perm does not exist") return 'OK'