Search in sources :

Example 6 with SecurityGroupJoinVO

use of com.cloud.api.query.vo.SecurityGroupJoinVO 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;
}
Also used : ResourceTagResponse(org.apache.cloudstack.api.response.ResourceTagResponse) ResourceTagJoinVO(com.cloud.api.query.vo.ResourceTagJoinVO) SecurityGroupRuleResponse(org.apache.cloudstack.api.response.SecurityGroupRuleResponse) SecurityGroupJoinVO(com.cloud.api.query.vo.SecurityGroupJoinVO) HashSet(java.util.HashSet)

Example 7 with SecurityGroupJoinVO

use of com.cloud.api.query.vo.SecurityGroupJoinVO 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;
}
Also used : UserVmVO(com.cloud.vm.UserVmVO) SecurityGroupResponse(org.apache.cloudstack.api.response.SecurityGroupResponse) SecurityGroupRuleResponse(org.apache.cloudstack.api.response.SecurityGroupRuleResponse) SecurityGroupJoinVO(com.cloud.api.query.vo.SecurityGroupJoinVO) ResourceTagResponse(org.apache.cloudstack.api.response.ResourceTagResponse) ResourceTagJoinVO(com.cloud.api.query.vo.ResourceTagJoinVO) SecurityGroupVMMapVO(com.cloud.network.security.SecurityGroupVMMapVO) HashSet(java.util.HashSet)

Aggregations

SecurityGroupJoinVO (com.cloud.api.query.vo.SecurityGroupJoinVO)7 ArrayList (java.util.ArrayList)4 Account (com.cloud.user.Account)3 Pair (com.cloud.utils.Pair)3 Filter (com.cloud.utils.db.Filter)3 List (java.util.List)3 SecurityGroupResponse (org.apache.cloudstack.api.response.SecurityGroupResponse)3 SecurityGroupRuleResponse (org.apache.cloudstack.api.response.SecurityGroupRuleResponse)3 ResourceTagJoinVO (com.cloud.api.query.vo.ResourceTagJoinVO)2 SecurityGroupVMMapVO (com.cloud.network.security.SecurityGroupVMMapVO)2 TemplateFilter (com.cloud.template.VirtualMachineTemplate.TemplateFilter)2 UserVmVO (com.cloud.vm.UserVmVO)2 HashSet (java.util.HashSet)2 ResourceTagResponse (org.apache.cloudstack.api.response.ResourceTagResponse)2 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)1 SecurityRule (com.cloud.network.security.SecurityRule)1 ListProjectResourcesCriteria (com.cloud.projects.Project.ListProjectResourcesCriteria)1 ProjectAccount (com.cloud.projects.ProjectAccount)1 UserAccount (com.cloud.user.UserAccount)1 Ternary (com.cloud.utils.Ternary)1