use of org.apache.cloudstack.api.response.SecurityGroupRuleResponse in project cloudstack by apache.
the class ApiResponseHelper method createSecurityGroupResponseFromSecurityGroupRule.
@Override
public SecurityGroupResponse createSecurityGroupResponseFromSecurityGroupRule(List<? extends SecurityRule> securityRules) {
SecurityGroupResponse response = new SecurityGroupResponse();
Map<Long, Account> securiytGroupAccounts = new HashMap<Long, Account>();
if ((securityRules != null) && !securityRules.isEmpty()) {
SecurityGroupJoinVO securityGroup = ApiDBUtils.findSecurityGroupViewById(securityRules.get(0).getSecurityGroupId()).get(0);
response.setId(securityGroup.getUuid());
response.setName(securityGroup.getName());
response.setDescription(securityGroup.getDescription());
Account account = securiytGroupAccounts.get(securityGroup.getAccountId());
if (securityGroup.getAccountType() == Account.ACCOUNT_TYPE_PROJECT) {
response.setProjectId(securityGroup.getProjectUuid());
response.setProjectName(securityGroup.getProjectName());
} else {
response.setAccountName(securityGroup.getAccountName());
}
response.setDomainId(securityGroup.getDomainUuid());
response.setDomainName(securityGroup.getDomainName());
for (SecurityRule securityRule : securityRules) {
SecurityGroupRuleResponse securityGroupData = new SecurityGroupRuleResponse();
securityGroupData.setRuleId(securityRule.getUuid());
securityGroupData.setProtocol(securityRule.getProtocol());
if ("icmp".equalsIgnoreCase(securityRule.getProtocol())) {
securityGroupData.setIcmpType(securityRule.getStartPort());
securityGroupData.setIcmpCode(securityRule.getEndPort());
} else {
securityGroupData.setStartPort(securityRule.getStartPort());
securityGroupData.setEndPort(securityRule.getEndPort());
}
Long allowedSecurityGroupId = securityRule.getAllowedNetworkId();
if (allowedSecurityGroupId != null) {
List<SecurityGroupJoinVO> sgs = ApiDBUtils.findSecurityGroupViewById(allowedSecurityGroupId);
if (sgs != null && sgs.size() > 0) {
SecurityGroupJoinVO sg = sgs.get(0);
securityGroupData.setSecurityGroupName(sg.getName());
securityGroupData.setAccountName(sg.getAccountName());
}
} else {
securityGroupData.setCidr(securityRule.getAllowedSourceIpCidr());
}
if (securityRule.getRuleType() == SecurityRuleType.IngressRule) {
securityGroupData.setObjectName("ingressrule");
response.addSecurityGroupIngressRule(securityGroupData);
} else {
securityGroupData.setObjectName("egressrule");
response.addSecurityGroupEgressRule(securityGroupData);
}
}
response.setObjectName("securitygroup");
}
return response;
}
use of org.apache.cloudstack.api.response.SecurityGroupRuleResponse in project cloudstack by apache.
the class SecurityGroupJoinDaoImpl method setSecurityGroupResponse.
@Override
public SecurityGroupResponse setSecurityGroupResponse(SecurityGroupResponse vsgData, SecurityGroupJoinVO vsg) {
Long rule_id = vsg.getRuleId();
if (rule_id != null && rule_id.longValue() > 0) {
SecurityGroupRuleResponse ruleData = new SecurityGroupRuleResponse();
ruleData.setRuleId(vsg.getRuleUuid());
ruleData.setProtocol(vsg.getRuleProtocol());
if ("icmp".equalsIgnoreCase(vsg.getRuleProtocol())) {
ruleData.setIcmpType(vsg.getRuleStartPort());
ruleData.setIcmpCode(vsg.getRuleEndPort());
} else {
ruleData.setStartPort(vsg.getRuleStartPort());
ruleData.setEndPort(vsg.getRuleEndPort());
}
if (vsg.getRuleAllowedNetworkId() != null) {
List<SecurityGroupJoinVO> sgs = this.searchByIds(vsg.getRuleAllowedNetworkId());
if (sgs != null && sgs.size() > 0) {
SecurityGroupJoinVO sg = sgs.get(0);
ruleData.setSecurityGroupName(sg.getName());
ruleData.setAccountName(sg.getAccountName());
}
} else {
ruleData.setCidr(vsg.getRuleAllowedSourceIpCidr());
}
// add the tags to the rule data
List<ResourceTagJoinVO> tags = _resourceTagJoinDao.listBy(vsg.getRuleUuid(), ResourceTag.ResourceObjectType.SecurityGroupRule);
Set<ResourceTagResponse> tagResponse = new HashSet<ResourceTagResponse>();
for (ResourceTagJoinVO tag : tags) {
tagResponse.add(ApiDBUtils.newResourceTagResponse(tag, false));
}
// add the tags to the rule data
ruleData.setTags(tagResponse);
if (vsg.getRuleType() == SecurityRuleType.IngressRule) {
ruleData.setObjectName("ingressrule");
vsgData.addSecurityGroupIngressRule(ruleData);
} else {
ruleData.setObjectName("egressrule");
vsgData.addSecurityGroupEgressRule(ruleData);
}
}
// update tag information
Long tag_id = vsg.getTagId();
if (tag_id != null && tag_id.longValue() > 0) {
ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id);
if (vtag != null) {
vsgData.addTag(ApiDBUtils.newResourceTagResponse(vtag, false));
}
}
return vsgData;
}
use of org.apache.cloudstack.api.response.SecurityGroupRuleResponse in project cloudstack by apache.
the class SecurityGroupJoinDaoImpl method newSecurityGroupResponse.
@Override
public SecurityGroupResponse newSecurityGroupResponse(SecurityGroupJoinVO vsg, Account caller) {
SecurityGroupResponse sgResponse = new SecurityGroupResponse();
sgResponse.setId(vsg.getUuid());
sgResponse.setName(vsg.getName());
sgResponse.setDescription(vsg.getDescription());
ApiResponseHelper.populateOwner(sgResponse, vsg);
Long rule_id = vsg.getRuleId();
if (rule_id != null && rule_id.longValue() > 0) {
SecurityGroupRuleResponse ruleData = new SecurityGroupRuleResponse();
ruleData.setRuleId(vsg.getRuleUuid());
ruleData.setProtocol(vsg.getRuleProtocol());
if ("icmp".equalsIgnoreCase(vsg.getRuleProtocol())) {
ruleData.setIcmpType(vsg.getRuleStartPort());
ruleData.setIcmpCode(vsg.getRuleEndPort());
} else {
ruleData.setStartPort(vsg.getRuleStartPort());
ruleData.setEndPort(vsg.getRuleEndPort());
}
if (vsg.getRuleAllowedNetworkId() != null) {
List<SecurityGroupJoinVO> sgs = this.searchByIds(vsg.getRuleAllowedNetworkId());
if (sgs != null && sgs.size() > 0) {
SecurityGroupJoinVO sg = sgs.get(0);
ruleData.setSecurityGroupName(sg.getName());
ruleData.setAccountName(sg.getAccountName());
}
} else {
ruleData.setCidr(vsg.getRuleAllowedSourceIpCidr());
}
// list the tags by rule uuid
List<ResourceTagJoinVO> tags = _resourceTagJoinDao.listBy(vsg.getRuleUuid(), ResourceTag.ResourceObjectType.SecurityGroupRule);
Set<ResourceTagResponse> tagResponse = new HashSet<ResourceTagResponse>();
for (ResourceTagJoinVO tag : tags) {
tagResponse.add(ApiDBUtils.newResourceTagResponse(tag, false));
}
// add the tags to the rule data
ruleData.setTags(tagResponse);
if (vsg.getRuleType() == SecurityRuleType.IngressRule) {
ruleData.setObjectName("ingressrule");
sgResponse.addSecurityGroupIngressRule(ruleData);
} else {
ruleData.setObjectName("egressrule");
sgResponse.addSecurityGroupEgressRule(ruleData);
}
}
List<SecurityGroupVMMapVO> securityGroupVmMap = _securityGroupVMMapDao.listBySecurityGroup(vsg.getId());
s_logger.debug("newSecurityGroupResponse() -> virtualmachine count: " + securityGroupVmMap.size());
sgResponse.setVirtualMachineCount(securityGroupVmMap.size());
for (SecurityGroupVMMapVO securityGroupVMMapVO : securityGroupVmMap) {
final UserVmVO userVmVO = _userVmDao.findById(securityGroupVMMapVO.getInstanceId());
if (userVmVO != null) {
sgResponse.addVirtualMachineId(userVmVO.getUuid());
}
}
// update tag information
Long tag_id = vsg.getTagId();
if (tag_id != null && tag_id.longValue() > 0) {
ResourceTagJoinVO vtag = ApiDBUtils.findResourceTagViewById(tag_id);
if (vtag != null) {
sgResponse.addTag(ApiDBUtils.newResourceTagResponse(vtag, false));
}
}
// set async job
if (vsg.getJobId() != null) {
sgResponse.setJobId(vsg.getJobUuid());
sgResponse.setJobStatus(vsg.getJobStatus());
}
sgResponse.setObjectName("securitygroup");
return sgResponse;
}
Aggregations