[ https://issues.apache.org/jira/browse/CLOUDSTACK-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15037422#comment-15037422 ]
ASF GitHub Bot commented on CLOUDSTACK-6276: -------------------------------------------- Github user ustcweizhou commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1134#discussion_r46519549 --- Diff: server/src/org/apache/cloudstack/affinity/AffinityGroupServiceImpl.java --- @@ -229,59 +205,99 @@ public AffinityGroupVO doInTransaction(TransactionStatus status) { return group; } }); + } - if (s_logger.isDebugEnabled()) { - s_logger.debug("Created affinity group =" + affinityGroupName); + private DomainVO getDomain(Long domainId) { + DomainVO domain = _domainDao.findById(domainId); + if (domain == null) { + throw new InvalidParameterValueException("Unable to find domain by specified id"); } + return domain; + } - return group; + private void verifyAffinityGroupNameInUse(long accountId, long domainId, String affinityGroupName) { + if (_affinityGroupDao.isNameInUse(accountId, domainId, affinityGroupName)) { + throw new InvalidParameterValueException("Unable to create affinity group, a group with name " + affinityGroupName + " already exists."); + } + } + + private void verifyDomainLevelAffinityGroupName(boolean domainLevel, long domainId, String affinityGroupName) { + if (domainLevel && _affinityGroupDao.findDomainLevelGroupByName(domainId, affinityGroupName) != null) { + throw new InvalidParameterValueException("Unable to create affinity group, a group with name " + affinityGroupName + " already exists under the domain."); + } } @DB - @Override @ActionEvent(eventType = EventTypes.EVENT_AFFINITY_GROUP_DELETE, eventDescription = "Deleting affinity group") - public boolean deleteAffinityGroup(Long affinityGroupId, String account, Long domainId, String affinityGroupName) { + public boolean deleteAffinityGroup(Long affinityGroupId, String account, Long projectId, Long domainId, String affinityGroupName) { + + AffinityGroupVO group = getAffinityGroup(affinityGroupId, account, projectId, domainId, affinityGroupName); + // check permissions Account caller = CallContext.current().getCallingAccount(); - Account owner = _accountMgr.finalizeOwner(caller, account, domainId, null); + _accountMgr.checkAccess(caller, AccessType.OperateEntry, true, group); --- End diff -- why not AccessType.ModifyProject ? If AccessType.OperateEntry, all normal uses (not only admin) can delete the affinity group. > Affinity Groups within projects > ------------------------------- > > Key: CLOUDSTACK-6276 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-6276 > Project: CloudStack > Issue Type: New Feature > Security Level: Public(Anyone can view this level - this is the > default.) > Components: Management Server > Reporter: Ingo Jochim > > Hello, > I like to have the features "Affinity Group" and "Project" combined. > As far as I know I cannot use Affinity Groups within Projects. > Thanks and regards, > Ingo -- This message was sent by Atlassian JIRA (v6.3.4#6332)