/**
* Verifies if the request contains valid policies supported by security manager available on the OSC.
* If the request contains one or more invalid policies, throw an exception.
*/
// TODO Larkins: Improve the method not to do the validation
public static Set<Policy> findPoliciesById(EntityManager em, Set<Long> ids, ApplianceManagerConnector mc)
throws VmidcBrokerValidationException, Exception {
Set<Policy> policies = new HashSet<>();
Set<String> invalidPolicies = new HashSet<>();
for (Long id : ids) {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Policy> query = cb.createQuery(Policy.class);
Root<Policy> root = query.from(Policy.class);
query = query.select(root).where(cb.equal(root.get("id"), id),
cb.equal(root.join("applianceManagerConnector").get("id"), mc.getId()));
try {
Policy policy = em.createQuery(query).getSingleResult();
policies.add(policy);
} catch (NoResultException nre) {
invalidPolicies.add(id.toString());
}
}
if (invalidPolicies.size() > 0) {
throw new VmidcBrokerValidationException(
"Invalid Request. Request contains invalid policies: " + String.join(", ", invalidPolicies));
}
return policies;
}
PolicyEntityMgr.java 文件源码
java
阅读 29
收藏 0
点赞 0
评论 0
项目:osc-core
作者:
评论列表
文章目录