use of cz.metacentrum.perun.core.api.exceptions.InternalErrorException in project perun by CESNET.
the class AttributesManagerImpl method getAttributes.
public List<Attribute> getAttributes(PerunSession sess, Group group, List<String> attrNames) throws InternalErrorException {
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("gId", group.getId());
parameters.addValue("nSC", AttributesManager.NS_GROUP_ATTR_CORE);
parameters.addValue("nSO", AttributesManager.NS_GROUP_ATTR_OPT);
parameters.addValue("nSD", AttributesManager.NS_GROUP_ATTR_DEF);
parameters.addValue("nSV", AttributesManager.NS_GROUP_ATTR_VIRT);
parameters.addValue("attrNames", attrNames);
try {
return namedParameterJdbcTemplate.query("select " + getAttributeMappingSelectQuery("groupattr") + " from attr_names " + "left join group_attr_values groupattr on id=groupattr.attr_id and group_id=:gId " + "where namespace in ( :nSC,:nSO,:nSD,:nSV ) and attr_names.attr_name in ( :attrNames )", parameters, new AttributeRowMapper(sess, this, group));
} catch (EmptyResultDataAccessException ex) {
return new ArrayList<Attribute>();
} catch (RuntimeException ex) {
throw new InternalErrorException(ex);
}
}
use of cz.metacentrum.perun.core.api.exceptions.InternalErrorException in project perun by CESNET.
the class AttributesManagerImpl method getAttributes.
public List<Attribute> getAttributes(PerunSession sess, User user, List<String> attrNames) throws InternalErrorException {
MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("uId", user.getId());
parameters.addValue("nSC", AttributesManager.NS_USER_ATTR_CORE);
parameters.addValue("nSO", AttributesManager.NS_USER_ATTR_OPT);
parameters.addValue("nSD", AttributesManager.NS_USER_ATTR_DEF);
parameters.addValue("nSV", AttributesManager.NS_USER_ATTR_VIRT);
parameters.addValue("attrNames", attrNames);
try {
return namedParameterJdbcTemplate.query("select " + getAttributeMappingSelectQuery("usr") + " from attr_names " + "left join user_attr_values usr on id=usr.attr_id and user_id=:uId " + "where namespace in ( :nSC,:nSO,:nSD,:nSV ) and attr_names.attr_name in ( :attrNames )", parameters, new AttributeRowMapper(sess, this, user));
} catch (EmptyResultDataAccessException ex) {
return new ArrayList<Attribute>();
} catch (RuntimeException ex) {
throw new InternalErrorException(ex);
}
}
use of cz.metacentrum.perun.core.api.exceptions.InternalErrorException in project perun by CESNET.
the class Auditer method pollConsumerMessagesForParserSimple.
public List<String> pollConsumerMessagesForParserSimple(String consumerName) throws InternalErrorException {
if (consumerName == null)
throw new InternalErrorException("Auditer consumer doesn't exist.");
try {
if (jdbc.queryForInt("select count(*) from auditer_consumers where name=?", consumerName) != 1) {
throw new InternalErrorException("Auditer consumer doesn't exist.");
}
int lastProcessedId = getLastProcessedId(consumerName);
int maxId = jdbc.queryForInt("select max(id) from auditer_log");
if (maxId > lastProcessedId) {
List<String> messages = jdbc.query("select " + Auditer.auditMessageMappingSelectQuery + " from auditer_log where id > ? and id <= ? order by id", AUDITER_LOG_MAPPER_FOR_PARSER, lastProcessedId, maxId);
lastProcessedId = maxId;
jdbc.update("update auditer_consumers set last_processed_id=?, modified_at=" + Compatibility.getSysdate() + " where name=?", lastProcessedId, consumerName);
return messages;
}
return new ArrayList<String>();
} catch (Exception ex) {
throw new InternalErrorException(ex);
}
}
use of cz.metacentrum.perun.core.api.exceptions.InternalErrorException in project perun by CESNET.
the class AuditerConsumer method getMessages.
public List<String> getMessages() throws InternalErrorException {
try {
int maxId = jdbc.queryForInt("select max(id) from auditer_log");
if (maxId > lastProcessedId) {
List<String> messages = jdbc.query("select " + Auditer.auditMessageMappingSelectQuery + " from auditer_log where id > ? and id <= ? order by id", AUDITER_LOG_MAPPER, this.lastProcessedId, maxId);
this.lastProcessedId = maxId;
jdbc.update("update auditer_consumers set last_processed_id=?, modified_at=" + Compatibility.getSysdate() + " where name=?", this.lastProcessedId, this.consumerName);
return messages;
}
return new ArrayList<String>();
} catch (Exception ex) {
throw new InternalErrorException(ex);
}
}
use of cz.metacentrum.perun.core.api.exceptions.InternalErrorException in project perun by CESNET.
the class GroupsManagerEntry method createGroup.
public Group createGroup(PerunSession sess, Vo vo, Group group) throws GroupExistsException, PrivilegeException, InternalErrorException, VoNotExistsException {
Utils.checkPerunSession(sess);
Utils.notNull(group, "group");
Utils.notNull(group.getName(), "group.name");
if (!group.getName().matches(GroupsManager.GROUP_SHORT_NAME_REGEXP)) {
throw new InternalErrorException(new IllegalArgumentException("Wrong group name, group name must matches " + GroupsManager.GROUP_SHORT_NAME_REGEXP));
}
if (group.getParentGroupId() != null)
throw new InternalErrorException("Top-level groups can't have parentGroupId set!");
// Authorization
if (!AuthzResolver.isAuthorized(sess, Role.VOADMIN, vo) && !AuthzResolver.isAuthorized(sess, Role.TOPGROUPCREATOR, vo)) {
throw new PrivilegeException(sess, "createGroup");
}
getPerunBl().getVosManagerBl().checkVoExists(sess, vo);
Group createdGroup = getGroupsManagerBl().createGroup(sess, vo, group);
//Refresh authz
AuthzResolver.refreshAuthz(sess);
return createdGroup;
}
Aggregations