mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
bug 7509: adding search by id for security groups, also refactoring a few method names to use the new scheme
status 7509: resolved fixed
This commit is contained in:
parent
4a6933fa9e
commit
d73e06a938
@ -51,6 +51,9 @@ public class ListSecurityGroupsCmd extends BaseListCmd {
|
||||
@Parameter(name=ApiConstants.VIRTUAL_MACHINE_ID, type=CommandType.LONG, description="lists security groups by virtual machine id")
|
||||
private Long virtualMachineId;
|
||||
|
||||
@Parameter(name=ApiConstants.ID, type=CommandType.LONG, description="list the security group by the id provided")
|
||||
private Long id;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
@ -70,6 +73,10 @@ public class ListSecurityGroupsCmd extends BaseListCmd {
|
||||
public Long getVirtualMachineId() {
|
||||
return virtualMachineId;
|
||||
}
|
||||
|
||||
public Long getId(){
|
||||
return id;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
|
||||
@ -1203,6 +1203,7 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
|
||||
Long instanceId = cmd.getVirtualMachineId();
|
||||
String networkGroup = cmd.getSecurityGroupName();
|
||||
Boolean recursive = Boolean.FALSE;
|
||||
Long id = cmd.getId();
|
||||
|
||||
// permissions check
|
||||
if ((account == null) || isAdmin(account.getType())) {
|
||||
@ -1253,6 +1254,15 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
|
||||
}
|
||||
}
|
||||
|
||||
List<SecurityGroupRulesVO> securityRulesList = new ArrayList<SecurityGroupRulesVO>();
|
||||
|
||||
if(id != null){
|
||||
SecurityGroupRulesVO secGrp = _securityGroupRulesDao.findById(id);
|
||||
if(secGrp != null)
|
||||
securityRulesList.add(secGrp);
|
||||
return securityRulesList;
|
||||
}
|
||||
|
||||
Filter searchFilter = new Filter(SecurityGroupVO.class, "id", true, cmd.getStartIndex(), cmd.getPageSizeVal());
|
||||
Object keyword = cmd.getKeyword();
|
||||
|
||||
@ -1288,20 +1298,19 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
|
||||
}
|
||||
}
|
||||
|
||||
List<SecurityGroupVO> networkGroups = _securityGroupDao.search(sc, searchFilter);
|
||||
List<SecurityGroupRulesVO> networkRulesList = new ArrayList<SecurityGroupRulesVO>();
|
||||
for (SecurityGroupVO group : networkGroups) {
|
||||
networkRulesList.addAll(_securityGroupRulesDao.listSecurityRulesByGroupId(group.getId()));
|
||||
List<SecurityGroupVO> securityGroups = _securityGroupDao.search(sc, searchFilter);
|
||||
for (SecurityGroupVO group : securityGroups) {
|
||||
securityRulesList.addAll(_securityGroupRulesDao.listSecurityRulesByGroupId(group.getId()));
|
||||
}
|
||||
|
||||
if (instanceId != null) {
|
||||
return listNetworkGroupRulesByVM(instanceId.longValue());
|
||||
return listSecurityGroupRulesByVM(instanceId.longValue());
|
||||
}
|
||||
|
||||
return networkRulesList;
|
||||
return securityRulesList;
|
||||
}
|
||||
|
||||
private List<SecurityGroupRulesVO> listNetworkGroupRulesByVM(long vmId) {
|
||||
private List<SecurityGroupRulesVO> listSecurityGroupRulesByVM(long vmId) {
|
||||
List<SecurityGroupRulesVO> results = new ArrayList<SecurityGroupRulesVO>();
|
||||
List<SecurityGroupVMMapVO> networkGroupMappings = _securityGroupVMMapDao.listByInstanceId(vmId);
|
||||
if (networkGroupMappings != null) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user