X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openstack%2Fnet-virt-sfc%2Fit%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fovsdb%2Fopenstack%2Fnetvirt%2Fsfc%2FNetvirtSfcIT.java;h=e0066baf3dbdb9ad5abc6589767dc8b736edce8d;hb=defe01873c24b1a2c5f901e2cfdc5d8bb5cd9a98;hp=b11229488209acc704c7c528d2351760161da569;hpb=3b638d5dce3e3ee18ff1e72d51f75e9d999ed5af;p=ovsdb.git diff --git a/openstack/net-virt-sfc/it/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/sfc/NetvirtSfcIT.java b/openstack/net-virt-sfc/it/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/sfc/NetvirtSfcIT.java index b11229488..e0066baf3 100644 --- a/openstack/net-virt-sfc/it/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/sfc/NetvirtSfcIT.java +++ b/openstack/net-virt-sfc/it/src/test/java/org/opendaylight/ovsdb/openstack/netvirt/sfc/NetvirtSfcIT.java @@ -25,7 +25,6 @@ import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configure import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut; import static org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder; -import com.google.common.collect.Maps; import java.io.IOException; import java.math.BigInteger; import java.util.ArrayList; @@ -33,6 +32,7 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.atomic.AtomicBoolean; + import org.junit.Assert; import org.junit.Before; import org.junit.Ignore; @@ -48,10 +48,10 @@ import org.opendaylight.ovsdb.openstack.netvirt.sfc.standalone.openflow13.SfcCla import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.AclUtils; import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ClassifierUtils; import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ServiceFunctionChainUtils; -import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ServiceFunctionPathUtils; -import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.SfcUtils; import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ServiceFunctionForwarderUtils; +import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ServiceFunctionPathUtils; import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.ServiceFunctionUtils; +import org.opendaylight.ovsdb.openstack.netvirt.sfc.utils.SfcUtils; import org.opendaylight.ovsdb.southbound.SouthboundConstants; import org.opendaylight.ovsdb.southbound.SouthboundUtil; import org.opendaylight.ovsdb.utils.mdsal.openflow.FlowUtils; @@ -59,6 +59,7 @@ import org.opendaylight.ovsdb.utils.mdsal.openflow.MatchUtils; import org.opendaylight.ovsdb.utils.mdsal.utils.MdsalUtils; import org.opendaylight.ovsdb.utils.servicehelper.ServiceHelper; import org.opendaylight.ovsdb.utils.southbound.utils.SouthboundUtils; +import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SftType; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.ServiceFunctions; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.ServiceFunctionsBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction; @@ -77,7 +78,6 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev1407 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.ServiceFunctionPathsBuilder; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.service.function.paths.ServiceFunctionPath; import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.service.function.paths.ServiceFunctionPathBuilder; -import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sft.rev140701.Firewall; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.AccessLists; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.AccessListsBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.access.control.list.rev150317.access.lists.AclBuilder; @@ -113,7 +113,6 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; - import org.ops4j.pax.exam.Configuration; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.PaxExam; @@ -125,6 +124,8 @@ import org.ops4j.pax.exam.spi.reactors.PerClass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.common.collect.Maps; + @RunWith(PaxExam.class) @ExamReactorStrategy(PerClass.class) public class NetvirtSfcIT extends AbstractMdsalTestBase { @@ -142,6 +143,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { private static String addressStr; private static String portStr; private static String connectionType; + private static boolean ovsdb_wait = false; private static Southbound southbound; private static DataBroker dataBroker; public static final String CONTROLLER_IPADDRESS = "ovsdb.controller.address"; @@ -154,24 +156,29 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { public static final String INTEGRATION_BRIDGE_NAME = "br-int"; private static final String NETVIRT_TOPOLOGY_ID = "netvirt:1"; private static final String OVSDB_TRACE = "ovsdb.trace"; + private static final String OVSDB_WAIT = "ovsdb.wait"; private static final String SF1NAME = "firewall-72"; private static final String SF2NAME = "dpi-72"; private static final String SF1IP = "10.2.1.1";//"192.168.50.70";//"192.168.120.31"; private static final String SF2IP = "10.2.1.2"; - private static final String SF1DPLNAME = "sf1"; - private static final String SF2DPLNAME = "sf2"; - private static final String SFF1IP = "127.0.0.1"; - private static final String SFF2IP = "127.0.0.1"; - private static final String SFF1NAME = "SFF1"; - private static final String SFF2NAME = "SFF2"; + private static final String SF1DPLNAME = "sf1Dpl"; + private static final String SF2DPLNAME = "sf2Dpl"; + private static final String SFF1IP = "127.0.0.1"; //"192.168.1.129" + private static final String SFF2IP = "192.168.1.129";//"127.0.0.1"; + private static final String SFF1NAME = "sff1"; + private static final String SFF2NAME = "sff2"; private static final String SFFDPL1NAME = "vxgpe"; private static final String SFFDPL2NAME = "vxgpe"; - private static final String SN1NAME = "OVSDB1"; - private static final String SN2NAME = "OVSDB2"; + private static final String SN1NAME = "ovsdb1"; + private static final String SN2NAME = "ovsdb2"; private static final String BRIDGE1NAME= "br-int"; private static final String BRIDGE2NAME= "br-int"; private static final String ACLNAME= "httpAcl"; - private static final String SFCNAME = "SFC"; + private static final String RULENAME= "httpRule"; + private static final String SFCNAME = "sfc1"; + private static final String SFCPATH = "SFC-Path"; + private static final String SFCSF1NAME = "firewall-abstract"; + private static final SftType SFCSF1TYPE = new SftType("firewall"); private static final int GPEPORT = 6633; @Override @@ -228,7 +235,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { public Option[] getPropertiesOptions() { return new Option[] { propagateSystemProperties(SERVER_IPADDRESS, SERVER_PORT, CONNECTION_TYPE, - CONTROLLER_IPADDRESS, OVSDB_TRACE), + CONTROLLER_IPADDRESS, OVSDB_TRACE, OVSDB_WAIT), }; } @@ -248,9 +255,9 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG, "log4j.logger.org.opendaylight.ovsdb.openstack.netvirt.sfc", LogLevel.TRACE.name()), - editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG, - "log4j.logger.org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13", - LogLevel.TRACE.name()), + //editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG, + // "log4j.logger.org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13", + // LogLevel.TRACE.name()), editConfigurationFilePut(ORG_OPS4J_PAX_LOGGING_CFG, "log4j.logger.org.opendaylight.sfc", LogLevel.TRACE.name()), @@ -276,6 +283,10 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { } } LOG.info("getProperties {}: {}", OVSDB_TRACE, props.getProperty(OVSDB_TRACE)); + LOG.info("getProperties {}: {}", OVSDB_WAIT, props.getProperty(OVSDB_WAIT)); + if (props.getProperty(OVSDB_WAIT).equals("true")) { + ovsdb_wait = true; + } } @Before @@ -365,12 +376,13 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { } private AccessListsBuilder accessListsBuilder() { + String ruleName = RULENAME; + String sfcName = SFCNAME; MatchesBuilder matchesBuilder = aclUtils.matchesBuilder(new MatchesBuilder(), 80); LOG.info("Matches: {}", matchesBuilder.build()); - //ActionsBuilder actionsBuilder = aclUtils.actionsBuilder(new ActionsBuilder(), Boolean.TRUE); - ActionsBuilder actionsBuilder = aclUtils.actionsBuilder(new ActionsBuilder(), SFCNAME); + ActionsBuilder actionsBuilder = aclUtils.actionsBuilder(new ActionsBuilder(), sfcName); AceBuilder accessListEntryBuilder = - aclUtils.aceBuilder(new AceBuilder(), "httpRule", matchesBuilder, actionsBuilder); + aclUtils.aceBuilder(new AceBuilder(), ruleName, matchesBuilder, actionsBuilder); AccessListEntriesBuilder accessListEntriesBuilder = aclUtils.accessListEntriesBuidler(new AccessListEntriesBuilder(), accessListEntryBuilder); AclBuilder accessListBuilder = @@ -471,6 +483,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { private ServiceFunctionForwardersBuilder serviceFunctionForwardersBuilder() { String sf1Name = SF1NAME; String sf1Ip = SF1IP; + String sf1DplName = SF1DPLNAME; String sff1Ip = SFF1IP; String sff1Name = SFF1NAME; String sffDpl1Name = SFFDPL1NAME; @@ -488,7 +501,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder = serviceFunctionForwarderUtils.serviceFunctionForwarderBuilder( - sff1Name, sff1Ip, port, sffDpl1Name, sf1Name, sf1Ip, sn1Name, bridge1Name, Firewall.class); + sff1Name, sff1Ip, port, sffDpl1Name, sf1Ip, sn1Name, bridge1Name, sf1Name, sf1DplName); List serviceFunctionForwarderList = serviceFunctionForwarderUtils.list( new ArrayList(), serviceFunctionForwarderBuilder); @@ -506,12 +519,12 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { } private ServiceFunctionChainsBuilder serviceFunctionChainsBuilder() { - String sf1Name = "firewall-abstract1"; - String sf2Name = "dpi-abstract1"; + String sf1Name = SFCSF1NAME; + SftType sfType = SFCSF1TYPE; String sfcName = SFCNAME; SfcServiceFunctionBuilder sfcServiceFunctionBuilder = serviceFunctionChainUtils.sfcServiceFunctionBuilder( - new SfcServiceFunctionBuilder(), sf1Name, Firewall.class); + new SfcServiceFunctionBuilder(), sf1Name, sfType); List sfcServiceFunctionList = serviceFunctionChainUtils.list(new ArrayList(), sfcServiceFunctionBuilder); @@ -532,8 +545,8 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { } private ServiceFunctionPathsBuilder serviceFunctionPathsBuilder() { - String sfpName = "SFC-Path"; - String sfcName = "SFC"; + String sfpName = SFCPATH; + String sfcName = SFCNAME; short startingIndex = 255; ServiceFunctionPathBuilder serviceFunctionPathBuilder = @@ -570,13 +583,13 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { Map externalIds = Maps.newHashMap(); externalIds.put("attached-mac", "f6:00:00:0f:00:01"); - southboundUtils.addTerminationPoint(bridgeNode, null, SF1DPLNAME, "internal", null, externalIds); - southboundUtils.addTerminationPoint(bridgeNode, null, "vm1", "internal"); - southboundUtils.addTerminationPoint(bridgeNode, null, "vm2", "internal"); + southboundUtils.addTerminationPoint(bridgeNode, SF1DPLNAME, "internal", null, externalIds); + southboundUtils.addTerminationPoint(bridgeNode, "vm1", "internal"); + southboundUtils.addTerminationPoint(bridgeNode, "vm2", "internal"); Map options = Maps.newHashMap(); options.put("key", "flow"); options.put("remote_ip", "192.168.120.32"); - southboundUtils.addTerminationPoint(bridgeNode, null, "vx", "vxlan", options, null); + southboundUtils.addTerminationPoint(bridgeNode, "vx", "vxlan", options, null); Thread.sleep(1000); testModelPut(serviceFunctionsBuilder(), ServiceFunctions.class); @@ -591,10 +604,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { Thread.sleep(10000); - ISfcClassifierService sfcClassifierService = (ISfcClassifierService) ServiceHelper.getGlobalInstance(ISfcClassifierService.class, this); - LOG.info("SfcClassifierService: {}", sfcClassifierService); readwait(); - //sfcClassifierService.programIngressClassifier(datapathId); NodeBuilder nodeBuilder = FlowUtils.createNodeBuilder(datapathId); FlowBuilder flowBuilder = getSfcIngressClassifierFlowBuilder(); @@ -806,7 +816,7 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { private FlowBuilder getSfcIngressClassifierFlowBuilder() { FlowBuilder flowBuilder = new FlowBuilder(); - String flowId = "sfcClass_" + "httpRule"; + String flowId = "sfcIngressClass_" + "httpRule"; flowBuilder.setId(new FlowId(flowId)); FlowKey key = new FlowKey(new FlowId(flowId)); flowBuilder.setKey(key); @@ -830,10 +840,13 @@ public class NetvirtSfcIT extends AbstractMdsalTestBase { } private void readwait() { - try { - System.in.read(); - } catch (IOException e) { - e.printStackTrace(); + if (ovsdb_wait) { + LOG.warn("Waiting, kill with ps -ef | grep java, kill xxx... "); + try { + System.in.read(); + } catch (IOException e) { + e.printStackTrace(); + } } } }