Search in sources :

Example 1 with Host

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;
}
Also used : Group(cz.metacentrum.perun.core.api.Group) ContactGroup(cz.metacentrum.perun.core.api.ContactGroup) User(cz.metacentrum.perun.core.api.User) RichUser(cz.metacentrum.perun.core.api.RichUser) ArrayList(java.util.ArrayList) Resource(cz.metacentrum.perun.core.api.Resource) RichResource(cz.metacentrum.perun.core.api.RichResource) Host(cz.metacentrum.perun.core.api.Host) InternalErrorException(cz.metacentrum.perun.core.api.exceptions.InternalErrorException) Vo(cz.metacentrum.perun.core.api.Vo) List(java.util.List) ArrayList(java.util.ArrayList) BanOnFacility(cz.metacentrum.perun.core.api.BanOnFacility) Facility(cz.metacentrum.perun.core.api.Facility) RichFacility(cz.metacentrum.perun.core.api.RichFacility) Member(cz.metacentrum.perun.core.api.Member) HashSet(java.util.HashSet)

Example 2 with Host

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;
}
Also used : AllAttributesRemovedForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMemberAndGroup) AttributeRemovedForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForGroup) AllAttributesRemovedForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForGroup) AttributeSetForGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForGroup) Group(cz.metacentrum.perun.core.api.Group) AttributeSetForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMemberAndGroup) AttributeRemovedForMemberAndGroup(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMemberAndGroup) User(cz.metacentrum.perun.core.api.User) AllUserFacilityAttributesRemovedForFacilitiesAndUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllUserFacilityAttributesRemovedForFacilitiesAndUser) AttributeRemovedForFacilityAndUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForFacilityAndUser) AttributeSetForUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser) AllAttributesRemovedForFacilityAndUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForFacilityAndUser) AttributeSetForFacilityAndUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForFacilityAndUser) AttributeRemovedForUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForUser) AllAttributesRemovedForUser(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForUser) ArrayList(java.util.ArrayList) AttributeSetForGroupAndResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForGroupAndResource) AttributeRemovedForGroupAndResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForGroupAndResource) AllAttributesRemovedForResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResource) AttributeRemovedForResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResource) Resource(cz.metacentrum.perun.core.api.Resource) AttributeSetForResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResource) AllAttributesRemovedForGroupAndResource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForGroupAndResource) AttributeRemovedForHost(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForHost) AttributeSetForHost(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForHost) AllAttributesRemovedForHost(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForHost) Host(cz.metacentrum.perun.core.api.Host) InternalErrorException(cz.metacentrum.perun.core.api.exceptions.InternalErrorException) RichAttribute(cz.metacentrum.perun.core.api.RichAttribute) UserExtSource(cz.metacentrum.perun.core.api.UserExtSource) AllAttributesRemovedForUserExtSource(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForUserExtSource) Vo(cz.metacentrum.perun.core.api.Vo) AttributeSetForVo(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForVo) AllAttributesRemovedForVo(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForVo) AttributeRemovedForVo(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForVo) AttributeRemovedForFacility(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForFacility) Facility(cz.metacentrum.perun.core.api.Facility) AttributeSetForFacility(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForFacility) AttributeSetForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForResourceAndMember) AllAttributesRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForResourceAndMember) Member(cz.metacentrum.perun.core.api.Member) AttributeSetForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForMember) AllAttributesRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AllAttributesRemovedForMember) AttributeRemovedForMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForMember) AttributeRemovedForResourceAndMember(cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeRemovedForResourceAndMember) HashSet(java.util.HashSet)

Example 3 with Host

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;
}
Also used : ArrayList(java.util.ArrayList) Host(cz.metacentrum.perun.core.api.Host) Facility(cz.metacentrum.perun.core.api.Facility)

Example 4 with Host

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;
}
Also used : ArrayList(java.util.ArrayList) Host(cz.metacentrum.perun.core.api.Host) Facility(cz.metacentrum.perun.core.api.Facility)

Example 5 with Host

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;
}
Also used : Group(cz.metacentrum.perun.core.api.Group) HashSet(java.util.HashSet) Set(java.util.Set) User(cz.metacentrum.perun.core.api.User) HashMap(java.util.HashMap) UserNotExistsException(cz.metacentrum.perun.core.api.exceptions.UserNotExistsException) ArrayList(java.util.ArrayList) AttributeDefinition(cz.metacentrum.perun.core.api.AttributeDefinition) FacilityNotExistsException(cz.metacentrum.perun.core.api.exceptions.FacilityNotExistsException) PerunPrincipal(cz.metacentrum.perun.core.api.PerunPrincipal) Member(cz.metacentrum.perun.core.api.Member) HashSet(java.util.HashSet) MemberNotExistsException(cz.metacentrum.perun.core.api.exceptions.MemberNotExistsException) GroupNotExistsException(cz.metacentrum.perun.core.api.exceptions.GroupNotExistsException) HostNotExistsException(cz.metacentrum.perun.core.api.exceptions.HostNotExistsException) Resource(cz.metacentrum.perun.core.api.Resource) Service(cz.metacentrum.perun.core.api.Service) Host(cz.metacentrum.perun.core.api.Host) ResourceNotExistsException(cz.metacentrum.perun.core.api.exceptions.ResourceNotExistsException) EngineIgnoreEvent(cz.metacentrum.perun.audit.events.EngineIgnoreEvent) PerunBean(cz.metacentrum.perun.core.api.PerunBean) PerunClient(cz.metacentrum.perun.core.api.PerunClient) Facility(cz.metacentrum.perun.core.api.Facility)

Aggregations

Host (cz.metacentrum.perun.core.api.Host)46 AbstractPerunIntegrationTest (cz.metacentrum.perun.core.AbstractPerunIntegrationTest)22 Test (org.junit.Test)22 Facility (cz.metacentrum.perun.core.api.Facility)21 ArrayList (java.util.ArrayList)19 EnrichedHost (cz.metacentrum.perun.core.api.EnrichedHost)16 BanOnFacility (cz.metacentrum.perun.core.api.BanOnFacility)14 User (cz.metacentrum.perun.core.api.User)13 EnrichedFacility (cz.metacentrum.perun.core.api.EnrichedFacility)11 Member (cz.metacentrum.perun.core.api.Member)11 Group (cz.metacentrum.perun.core.api.Group)8 Resource (cz.metacentrum.perun.core.api.Resource)8 RichUser (cz.metacentrum.perun.core.api.RichUser)8 HashSet (java.util.HashSet)7 Service (cz.metacentrum.perun.core.api.Service)6 Vo (cz.metacentrum.perun.core.api.Vo)6 InternalErrorException (cz.metacentrum.perun.core.api.exceptions.InternalErrorException)6 Destination (cz.metacentrum.perun.core.api.Destination)4 PerunBean (cz.metacentrum.perun.core.api.PerunBean)4 RichFacility (cz.metacentrum.perun.core.api.RichFacility)4