package org.zstack.test.securitygroup;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.zstack.core.componentloader.ComponentLoader;
import org.zstack.core.db.DatabaseFacade;
import org.zstack.network.securitygroup.APIAddSecurityGroupRuleMsg;
import org.zstack.network.securitygroup.SecurityGroupInventory;
import org.zstack.network.securitygroup.SecurityGroupRuleVO;
import org.zstack.test.Api;
import org.zstack.test.DBUtil;
import org.zstack.test.WebBeanConstructor;
import org.zstack.test.deployer.Deployer;
import org.zstack.utils.Utils;
import org.zstack.utils.logging.CLogger;
public class TestAddSecurityGroupDuplicateRule2 {
static CLogger logger = Utils.getLogger(TestAddSecurityGroupDuplicateRule2.class);
static Deployer deployer;
static Api api;
static ComponentLoader loader;
static DatabaseFacade dbf;
@BeforeClass
public static void setUp() throws Exception {
DBUtil.reDeployDB();
WebBeanConstructor con = new WebBeanConstructor();
deployer = new Deployer("deployerXml/securityGroup/TestAddSecurityGroupRule.xml", con);
deployer.build();
api = deployer.getApi();
loader = deployer.getComponentLoader();
dbf = loader.getComponent(DatabaseFacade.class);
}
@Test
public void test() {
/*
<rule>
<type>Ingress</type>
<protocol>TCP</protocol>
<startPort>22</startPort>
<endPort>100</endPort>
<allowedCidr>0.0.0.0/0</allowedCidr>
</rule>
<rule>
<type>Ingress</type>
<protocol>UDP</protocol>
<startPort>10</startPort>
<endPort>10</endPort>
<allowedCidr>192.168.0.1/0</allowedCidr>
</rule>
*/
//
SecurityGroupInventory scinv = deployer.securityGroups.get("test");
APIAddSecurityGroupRuleMsg.SecurityGroupRuleAO sao = new APIAddSecurityGroupRuleMsg.SecurityGroupRuleAO();
sao.setType("Ingress");
sao.setProtocol("UDP");
sao.setStartPort(10);
sao.setEndPort(10);
sao.setAllowedCidr("192.168.0.1/0");
try {
api.addSecurityGroupRuleByFullConfig(scinv.getUuid(), sao);
} catch (Exception e) {
logger.debug(e.getMessage());
}
//
SecurityGroupInventory scinv1 = deployer.securityGroups.get("test");
APIAddSecurityGroupRuleMsg.SecurityGroupRuleAO sao1 = new APIAddSecurityGroupRuleMsg.SecurityGroupRuleAO();
sao1.setType("Ingress");
sao1.setProtocol("TCP");
sao1.setStartPort(22);
sao1.setEndPort(100);
//sao1.setAllowedCidr("");
try {
api.addSecurityGroupRuleByFullConfig(scinv1.getUuid(), sao1);
} catch (Exception e) {
logger.debug(e.getMessage());
}
//
long count = dbf.count(SecurityGroupRuleVO.class);
Assert.assertEquals(2, count);
}
}