use of cz.metacentrum.perun.core.api.Host in project perun by CESNET.
the class FacilitiesManagerBlImpl method getFacilitiesByPerunBean.
public List<Facility> getFacilitiesByPerunBean(PerunSession sess, PerunBean perunBean) throws InternalErrorException {
List<Facility> facilities = new ArrayList<Facility>();
//All possible useful objects
Vo vo = null;
Facility facility = null;
Group group = null;
Member member = null;
User user = null;
Host host = null;
Resource resource = null;
if (perunBean != null) {
if (perunBean instanceof Vo)
vo = (Vo) perunBean;
else if (perunBean instanceof Facility)
facility = (Facility) perunBean;
else if (perunBean instanceof Group)
group = (Group) perunBean;
else if (perunBean instanceof Member)
member = (Member) perunBean;
else if (perunBean instanceof User)
user = (User) perunBean;
else if (perunBean instanceof Host)
host = (Host) perunBean;
else if (perunBean instanceof Resource)
resource = (Resource) perunBean;
else {
throw new InternalErrorException("There is unrecognized object in primaryHolder of aidingAttr.");
}
} else {
throw new InternalErrorException("Aiding attribtue must have primaryHolder which is not null.");
}
if (group != null) {
List<Resource> resources = getPerunBl().getResourcesManagerBl().getAssignedResources(sess, group);
for (Resource resourceElemenet : resources) {
facilities.add(getPerunBl().getResourcesManagerBl().getFacility(sess, resourceElemenet));
}
} else if (member != null) {
List<Group> groupsForMember = getPerunBl().getGroupsManagerBl().getAllMemberGroups(sess, member);
List<Resource> resourcesFromMember = new ArrayList<Resource>();
for (Group groupElement : groupsForMember) {
resourcesFromMember.addAll(getPerunBl().getResourcesManagerBl().getAssignedResources(sess, groupElement));
}
for (Resource resourceElement : resourcesFromMember) {
facilities.add(getPerunBl().getResourcesManagerBl().getFacility(sess, resourceElement));
}
} else if (resource != null) {
facilities.add(getPerunBl().getResourcesManagerBl().getFacility(sess, resource));
} else if (user != null) {
List<Member> membersFromUser = getPerunBl().getMembersManagerBl().getMembersByUser(sess, user);
List<Resource> resourcesFromMembers = new ArrayList<Resource>();
for (Member memberElement : membersFromUser) {
resourcesFromMembers.addAll(getPerunBl().getResourcesManagerBl().getAssignedResources(sess, member));
}
for (Resource resourceElement : resourcesFromMembers) {
facilities.add(getPerunBl().getResourcesManagerBl().getFacility(sess, resourceElement));
}
} else if (host != null) {
facilities.add(getPerunBl().getFacilitiesManagerBl().getFacilityForHost(sess, host));
} else if (vo != null) {
List<Resource> resources = getPerunBl().getResourcesManagerBl().getResources(sess, vo);
for (Resource resourceElemenet : resources) {
facilities.add(getPerunBl().getResourcesManagerBl().getFacility(sess, resourceElemenet));
}
}
facilities = new ArrayList<Facility>(new HashSet<Facility>(facilities));
return facilities;
}
use of cz.metacentrum.perun.core.api.Host in project perun by CESNET.
the class AttributesManagerBlImpl method getRichAttributesWithHoldersForAttributeDefinition.
@Override
public List<RichAttribute> getRichAttributesWithHoldersForAttributeDefinition(PerunSession sess, AttributeDefinition attrDef, RichAttribute aidingAttr) throws AttributeNotExistsException, UserNotExistsException, VoNotExistsException, WrongAttributeAssignmentException, GroupResourceMismatchException, MemberResourceMismatchException, MemberGroupMismatchException {
// Filling objects from aidingAttr
if (aidingAttr == null)
throw new InternalErrorException("Aiding attribute cant be null.");
if (attrDef == null)
throw new InternalErrorException("attrDef cant be null.");
List<RichAttribute> listOfRichAttributes = new ArrayList<>();
// All possible useful objects
Vo vo = null;
Facility facility = null;
Group group = null;
Member member = null;
User user = null;
Host host = null;
Resource resource = null;
String key = null;
UserExtSource userExtSource = null;
// Get object for primaryHolder of aidingAttr
if (aidingAttr.getPrimaryHolder() != null) {
if (aidingAttr.getPrimaryHolder() instanceof Vo)
vo = (Vo) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof Facility)
facility = (Facility) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof Group)
group = (Group) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof Member)
member = (Member) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof User)
user = (User) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof Host)
host = (Host) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof Resource)
resource = (Resource) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof UserExtSource)
userExtSource = (UserExtSource) aidingAttr.getPrimaryHolder();
else if (aidingAttr.getPrimaryHolder() instanceof String)
key = (String) aidingAttr.getPrimaryHolder();
else {
throw new InternalErrorException("There is unrecognized object in primaryHolder of aidingAttr.");
}
} else {
throw new InternalErrorException("Aiding attribute must have primaryHolder which is not null.");
}
// Get object for secondaryHolder of aidingAttr
if (aidingAttr.getSecondaryHolder() != null) {
if (aidingAttr.getSecondaryHolder() instanceof Vo)
vo = (Vo) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof Facility)
facility = (Facility) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof Group)
group = (Group) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof Member)
member = (Member) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof User)
user = (User) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof Host)
host = (Host) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof Resource)
resource = (Resource) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof UserExtSource)
userExtSource = (UserExtSource) aidingAttr.getSecondaryHolder();
else if (aidingAttr.getSecondaryHolder() instanceof String)
key = (String) aidingAttr.getSecondaryHolder();
else {
throw new InternalErrorException("There is unrecognized object in secondaryHolder of aidingAttr");
}
}
if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_VO_ATTR)) {
if (resource != null && member != null) {
// we do not need object resource to resolve this case
listOfRichAttributes.addAll(this.getVoAttributes(sess, member, attrDef));
} else if (group != null && resource != null) {
// we do not need object resource to resolve this case
listOfRichAttributes.addAll(this.getVoAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
// we do not need object group to resolve this case
listOfRichAttributes.addAll(this.getVoAttributes(sess, member, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getVoAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_GROUP_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getGroupAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getGroupAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_FACILITY_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the group object here
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getFacilityAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_MEMBER_ATTR)) {
if (resource != null && member != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getMemberAttributes(sess, member, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getMemberAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
// we do not need to use the group object here
listOfRichAttributes.addAll(this.getMemberAttributes(sess, member, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getMemberAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_RESOURCE_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the group object here
listOfRichAttributes.addAll(this.getResourceAttributes(sess, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getResourceAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_USER_ATTR)) {
if (resource != null && member != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getUserAttributes(sess, member, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getUserAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
// we do not need to use the group object here
listOfRichAttributes.addAll(this.getUserAttributes(sess, member, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getUserAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, AttributesManager.NS_HOST_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
// we do not need to user the group object here
listOfRichAttributes.addAll(this.getHostAttributes(sess, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getHostAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_GROUP_RESOURCE_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, group, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getGroupResourceAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_MEMBER_GROUP_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the resource object
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getMemberGroupAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_MEMBER_RESOURCE_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, group, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getMemberResourceAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_USER_FACILITY_ATTR)) {
if (resource != null && member != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, member, resource, attrDef));
} else if (group != null && resource != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, group, resource, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, member, group, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getUserFacilityAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, NS_UES_ATTR)) {
if (resource != null && member != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, member, attrDef));
} else if (group != null && resource != null) {
// we do not need to use the resource object here
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, group, attrDef));
} else if (user != null && facility != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, user, facility, attrDef));
} else if (member != null && group != null) {
// we do not need to use the group object here
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, member, attrDef));
} else if (group != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, group, attrDef));
} else if (member != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, member, attrDef));
} else if (resource != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, resource, attrDef));
} else if (user != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, user, attrDef));
} else if (host != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, host, attrDef));
} else if (facility != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, facility, attrDef));
} else if (vo != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, vo, attrDef));
} else if (userExtSource != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, userExtSource, attrDef));
} else if (key != null) {
listOfRichAttributes.addAll(this.getUserExtSourceAttributes(sess, attrDef));
} else {
throw new InternalErrorException("Unknown combination of PerunBeans: " + aidingAttr);
}
} else if (getAttributesManagerImpl().isFromNamespace(attrDef, AttributesManager.NS_ENTITYLESS_ATTR)) {
if (key != null) {
listOfRichAttributes.addAll(getEntitylessAttributes(sess, key, attrDef));
} else {
listOfRichAttributes.addAll(getEntitylessAttributes(sess, attrDef));
}
} else {
throw new InternalErrorException("There is unrecognized namespace in attribute " + attrDef);
}
listOfRichAttributes = new ArrayList<>(new HashSet<>(listOfRichAttributes));
return listOfRichAttributes;
}
use of cz.metacentrum.perun.core.api.Host in project perun by CESNET.
the class ServicesManagerEntryIntegrationTest method setUpNonClusterFacilityWithTwoHosts.
private Facility setUpNonClusterFacilityWithTwoHosts() throws Exception {
Facility facility = new Facility();
facility.setName("ServicesManagerTestNonClusterFacility");
facility = perun.getFacilitiesManager().createFacility(sess, facility);
// add first host
Host host1 = new Host();
host1.setHostname("testing.host1");
// add second host
Host host2 = new Host();
host2.setHostname("testing.host2");
List<Host> hosts = new ArrayList<>();
hosts.add(host1);
hosts.add(host2);
perun.getFacilitiesManager().addHosts(sess, hosts, facility);
return facility;
}
use of cz.metacentrum.perun.core.api.Host in project perun by CESNET.
the class ServicesManagerEntryIntegrationTest method setUpClusterFacility.
private Facility setUpClusterFacility() throws Exception {
Facility facility = new Facility();
facility.setName("ServicesManagerTestClusterFacility");
facility = perun.getFacilitiesManager().createFacility(sess, facility);
// add one host
Host host = new Host();
host.setHostname("test.test");
List<Host> hosts = new ArrayList<>();
hosts.add(host);
perun.getFacilitiesManager().addHosts(sess, hosts, facility);
return facility;
}
use of cz.metacentrum.perun.core.api.Host in project perun by CESNET.
the class EventServiceResolverImpl method resolveEvent.
// ----- methods -------------------------------------
@Override
public Map<Facility, Set<Service>> resolveEvent(AuditEvent event) throws InvalidEventMessageException, ServiceNotExistsException, PrivilegeException {
log.info("Event - I am going to process event: {}", event);
Map<Facility, Set<Service>> result = new HashMap<Facility, Set<Service>>();
if (event instanceof EngineIgnoreEvent) {
log.info("Event ignored {} facilities will be returned", result.size());
return result;
}
// GET All Beans (only PerunBeans) from message
List<PerunBean> listOfBeans = new ArrayList<PerunBean>();
listOfBeans = AuditParser.parseLog(event.getMessage());
// Prepare variables
AttributeDefinition attributeDefinition = null;
Facility facility = null;
Resource resource = null;
Group group = null;
User user = null;
Member member = null;
Service service = null;
Host host = null;
// TODO: What about more than 1 resources, or more than 1 facilities etc. ?
for (PerunBean pb : listOfBeans) {
if (pb instanceof AttributeDefinition) {
attributeDefinition = (AttributeDefinition) pb;
} else if (pb instanceof Facility) {
facility = (Facility) pb;
} else if (pb instanceof Resource) {
resource = (Resource) pb;
} else if (pb instanceof Group) {
group = (Group) pb;
} else if (pb instanceof User) {
user = (User) pb;
} else if (pb instanceof Member) {
member = (Member) pb;
} else if (pb instanceof Service) {
service = (Service) pb;
} else if (pb instanceof Host) {
host = (Host) pb;
}
}
// If there is any attribute, so create AttributeDefinition
if (attributeDefinition != null) {
log.debug("Attribute found in event. {}.", attributeDefinition);
}
List<Facility> facilitiesResolvedFromEvent = new ArrayList<Facility>();
List<Resource> resourcesResolvedFromEvent = new ArrayList<Resource>();
List<Service> servicesResolvedFromEvent = new ArrayList<Service>();
if (perunSession == null) {
perunSession = perun.getPerunSession(new PerunPrincipal(dispatcherProperties.getProperty("perun.principal.name"), dispatcherProperties.getProperty("perun.principal.extSourceName"), dispatcherProperties.getProperty("perun.principal.extSourceType")), new PerunClient());
}
// Try to find FACILITY in event
if (facility != null) {
try {
log.debug("Facility found in event. {}.", facility);
facilitiesResolvedFromEvent.add(facility);
resourcesResolvedFromEvent.addAll(perun.getFacilitiesManager().getAssignedResources(perunSession, facility));
} catch (FacilityNotExistsException ex) {
log.warn("Non-existing facility found while resolving event. id={}", facility.getId());
}
} else {
// Try to find RESOURCE in event
if (resource != null) {
resourcesResolvedFromEvent.add(resource);
} else {
// Try to find GROUP in event
if (group != null) {
try {
resourcesResolvedFromEvent = perun.getResourcesManager().getAssignedResources(perunSession, group);
} catch (GroupNotExistsException ex) {
log.warn("Non-existing group found while resolving event. id={}", group.getId());
}
} else {
// try to find USER in event
if (user != null) {
try {
resourcesResolvedFromEvent = perun.getUsersManager().getAllowedResources(perunSession, user);
} catch (UserNotExistsException ex) {
log.warn("Non-existing user found while resolving event. id={}", user.getId());
}
} else {
// try to find MEMBER in event
if (member != null) {
try {
resourcesResolvedFromEvent = perun.getResourcesManager().getAllowedResources(perunSession, member);
} catch (MemberNotExistsException ex) {
log.warn("Non-existing member found while resolving event. id={}", member.getId());
}
} else {
// try to find HOST in event
if (host != null) {
try {
log.debug("Host found in event.id= {}.", host.getId());
facility = perun.getFacilitiesManager().getFacilityForHost(perunSession, host);
facilitiesResolvedFromEvent.add(facility);
resourcesResolvedFromEvent.addAll(perun.getFacilitiesManager().getAssignedResources(perunSession, facility));
} catch (FacilityNotExistsException ex) {
log.warn("Host on non-existing facility found while resolving event. Host id={}", host.getId());
} catch (HostNotExistsException ex) {
log.warn("Non-existing host found while resolving event. id={}", host.getId());
}
} else {
log.warn("No match found for this event. Event={}", event);
}
}
}
}
}
}
// TODO resolve more than one service
if (service != null) {
servicesResolvedFromEvent.add(service);
}
for (Resource r : resourcesResolvedFromEvent) {
Facility facilityResolvedFromEvent;
List<Service> servicesResolvedFromResource;
try {
facilityResolvedFromEvent = perun.getResourcesManager().getFacility(perunSession, r);
servicesResolvedFromResource = perun.getResourcesManager().getAssignedServices(perunSession, r);
// process only services resolved from event if any
if (!servicesResolvedFromEvent.isEmpty())
servicesResolvedFromResource.retainAll(servicesResolvedFromEvent);
} catch (ResourceNotExistsException ex) {
log.error("Non-existing resource found while resolving event. Resource={}", r);
// skip to next resource
continue;
}
for (Service s : servicesResolvedFromResource) {
if (attributeDefinition != null) {
// remove from future processing services
// which don't require the found attribute
// TODO (CHECKME) This method can raise
// ServiceNotExistsException. Is it ok? Or it must be
// catch?
List<AttributeDefinition> serviceRequiredAttributes = perun.getAttributesManager().getRequiredAttributesDefinition(perunSession, s);
if (!serviceRequiredAttributes.contains(attributeDefinition))
continue;
}
if (!result.containsKey(facilityResolvedFromEvent)) {
Set<Service> servicesToPut = new HashSet<Service>();
servicesToPut.add(s);
result.put(facilityResolvedFromEvent, servicesToPut);
} else {
result.get(facilityResolvedFromEvent).add(s);
}
}
}
log.info("{} facilities will be returned", result.size());
return result;
}
Aggregations