bug 8335: adding the security group objects to the list virtual machines response

This commit is contained in:
abhishek 2011-02-08 11:48:00 -08:00
parent 94bb78c9d4
commit 9a6dc3832c
5 changed files with 45 additions and 13 deletions

View File

@ -130,8 +130,8 @@ public class UserVmResponse extends BaseResponse {
@SerializedName("rootdevicetype") @Param(description="device type of the root volume")
private String rootDeviceType;
@SerializedName("securitygrouplist") @Param(description="list of security groups associated with the virtual machine")
private String securityGroupList;
@SerializedName("securitygroup") @Param(description="list of security groups associated with the virtual machine", responseObject = SecurityGroupResponse.class)
private List<SecurityGroupResponse> securityGroupList;
@SerializedName(ApiConstants.PASSWORD) @Param(description="the password (if exists) of the virtual machine")
private String password;
@ -432,14 +432,6 @@ public class UserVmResponse extends BaseResponse {
this.rootDeviceType = rootDeviceType;
}
public String getSecurityGroupList() {
return securityGroupList;
}
public void setSecurityGroupList(String securityGroupList) {
this.securityGroupList = securityGroupList;
}
public String getPassword() {
return password;
}
@ -479,4 +471,12 @@ public class UserVmResponse extends BaseResponse {
public void setNics(List<NicResponse> nics) {
this.nics = nics;
}
public List<SecurityGroupResponse> getSecurityGroupList() {
return securityGroupList;
}
public void setSecurityGroupList(List<SecurityGroupResponse> securityGroups) {
this.securityGroupList = securityGroups;
}
}

View File

@ -43,6 +43,7 @@ import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkRuleConfigDao;
import com.cloud.network.security.SecurityGroup;
import com.cloud.network.security.SecurityGroupManager;
import com.cloud.network.security.SecurityGroupVO;
import com.cloud.network.security.dao.SecurityGroupDao;
import com.cloud.offering.ServiceOffering;
import com.cloud.offerings.NetworkOfferingVO;
@ -250,6 +251,10 @@ public class ApiDBUtils {
public static String getNetworkGroupsNamesForVm(long vmId) {
return _networkGroupMgr.getSecurityGroupsNamesForVm(vmId);
}
public static List<SecurityGroupVO> getSecurityGroupsForVm(long vmId) {
return _networkGroupMgr.getSecurityGroupsForVm(vmId);
}
public static String getSnapshotIntervalTypes(long snapshotId) {
String intervalTypes = "";

View File

@ -112,6 +112,7 @@ import com.cloud.network.rules.PortForwardingRule;
import com.cloud.network.security.IngressRule;
import com.cloud.network.security.SecurityGroup;
import com.cloud.network.security.SecurityGroupRules;
import com.cloud.network.security.SecurityGroupVO;
import com.cloud.offering.DiskOffering;
import com.cloud.offering.NetworkOffering;
import com.cloud.offering.ServiceOffering;
@ -1097,9 +1098,20 @@ public class ApiResponseHelper implements ResponseGenerator {
}
userVmResponse.setGuestOsId(userVm.getGuestOSId());
// network groups
userVmResponse.setSecurityGroupList(ApiDBUtils.getNetworkGroupsNamesForVm(userVm.getId()));
// security groups
List<SecurityGroupVO> securityGroups = ApiDBUtils.getSecurityGroupsForVm(userVm.getId());
List<SecurityGroupResponse> securityGroupResponse = new ArrayList<SecurityGroupResponse>();
for(SecurityGroupVO grp : securityGroups) {
SecurityGroupResponse resp = new SecurityGroupResponse();
resp.setId(grp.getId());
resp.setName(grp.getName());
resp.setDescription(grp.getDescription());
resp.setObjectName("securitygroup");
securityGroupResponse.add(resp);
}
userVmResponse.setSecurityGroupList(securityGroupResponse);
List<NicProfile> nicProfiles = ApiDBUtils.getNics(userVm);
List<NicResponse> nicResponses = new ArrayList<NicResponse>();
for (NicProfile singleNicProfile : nicProfiles) {

View File

@ -43,4 +43,6 @@ public interface SecurityGroupManager {
public void fullSync(long agentId, HashMap<String, Pair<Long, Long>> newGroupStates);
public String getSecurityGroupsNamesForVm(long vmId);
public List<SecurityGroupVO> getSecurityGroupsForVm(long vmId);
}

View File

@ -1309,6 +1309,19 @@ public class SecurityGroupManagerImpl implements SecurityGroupManager, SecurityG
}
}
@Override
public List<SecurityGroupVO> getSecurityGroupsForVm(long vmId) {
List<SecurityGroupVMMapVO>securityGroupsToVmMap = _securityGroupVMMapDao.listByInstanceId(vmId);
List<SecurityGroupVO> secGrps = new ArrayList<SecurityGroupVO>();
if(securityGroupsToVmMap != null && securityGroupsToVmMap.size() > 0) {
for(SecurityGroupVMMapVO sG : securityGroupsToVmMap) {
SecurityGroupVO currSg = _securityGroupDao.findById(sG.getSecurityGroupId());
secGrps.add(currSg);
}
}
return secGrps;
}
@Override
public boolean preStateTransitionEvent(State oldState, Event event, State newState, VirtualMachine vo, boolean status, Long id) {