+ public void testNetvirtSfcFeatureLoad() {
+ assertTrue(true);
+ }
+
+ private AccessListsBuilder setAccessLists () {
+ MatchesBuilder matchesBuilder = aclUtils.createMatches(new MatchesBuilder(), 80);
+ ActionsBuilder actionsBuilder = aclUtils.createActions(new ActionsBuilder(), Boolean.TRUE);
+ AccessListEntryBuilder accessListEntryBuilder = aclUtils.createAccessListEntryBuilder(
+ new AccessListEntryBuilder(), "http", matchesBuilder, actionsBuilder);
+ AccessListEntriesBuilder accessListEntriesBuilder = aclUtils.createAccessListEntries(
+ new AccessListEntriesBuilder(), accessListEntryBuilder);
+ AccessListBuilder accessListBuilder = aclUtils.createAccessList(new AccessListBuilder(),
+ "http", accessListEntriesBuilder);
+ AccessListsBuilder accessListsBuilder = aclUtils.createAccessLists(new AccessListsBuilder(),
+ accessListBuilder);
+ LOG.info("AccessLists: {}", accessListsBuilder.build());
+ return accessListsBuilder;
+ }
+
+ @Test
+ public void testAccessLists() {
+ testModel(setAccessLists(), AccessLists.class);
+ }
+
+ private ClassifiersBuilder setClassifiers() {
+ SffBuilder sffBuilder = classifierUtils.createSff(new SffBuilder(), "sffname");
+ SffsBuilder sffsBuilder = classifierUtils.createSffs(new SffsBuilder(), sffBuilder);
+ ClassifierBuilder classifierBuilder = classifierUtils.createClassifier(new ClassifierBuilder(),
+ "classifierName", "aclName", sffsBuilder);
+ ClassifiersBuilder classifiersBuilder = classifierUtils.createClassifiers(new ClassifiersBuilder(),
+ classifierBuilder);
+ LOG.info("Classifiers: {}", classifiersBuilder.build());
+ return classifiersBuilder;
+ }
+
+ @Test
+ public void testClassifiers() {
+ testModel(setClassifiers(), Classifiers.class);
+ }
+
+ private SfcBuilder setSfc() {
+ SfcBuilder sfcBuilder = sfcUtils.createSfc(new SfcBuilder(), "sfc");
+ return sfcBuilder;
+ }
+
+ @Test
+ public void testSfc() {
+ testModel(setSfc(), Sfc.class);
+ }
+
+ private <T extends DataObject> void testModel(Builder<T> builder, Class<T> clazz) {
+ InstanceIdentifier<T> path = InstanceIdentifier.create(clazz);
+ assertTrue(mdsalUtils.put(LogicalDatastoreType.CONFIGURATION, path, builder.build()));
+ T result = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, path);
+ assertNotNull(clazz.getSimpleName() + " should not be null", result);
+ assertTrue("Failed to remove " + clazz.getSimpleName(),
+ mdsalUtils.delete(LogicalDatastoreType.CONFIGURATION, path));
+ result = mdsalUtils.read(LogicalDatastoreType.CONFIGURATION, path);
+ assertNull(clazz.getSimpleName() + " should be null", result);
+ }
+
+ @Test
+ public void testDoIt() throws InterruptedException {
+ ConnectionInfo connectionInfo = southboundUtils.getConnectionInfo(addressStr, portStr);
+ Node ovsdbNode = southboundUtils.connectOvsdbNode(connectionInfo);
+
+ String controllerTarget = SouthboundUtil.getControllerTarget(ovsdbNode);
+ assertNotNull("Failed to get controller target", controllerTarget);
+ List<ControllerEntry> setControllerEntry = southboundUtils.createControllerEntry(controllerTarget);
+ Uri setUri = new Uri(controllerTarget);
+ Assert.assertTrue(southboundUtils.addBridge(connectionInfo, null, BRIDGE_NAME, null, true,
+ SouthboundConstants.OVSDB_FAIL_MODE_MAP.inverse().get("secure"), true, null, null,
+ setControllerEntry, null));
+ OvsdbBridgeAugmentation bridge = southboundUtils.getBridge(connectionInfo, BRIDGE_NAME);
+ Assert.assertNotNull("bridge was not found: " + BRIDGE_NAME, bridge);
+ Assert.assertNotNull("ControllerEntry was not found: " + setControllerEntry.iterator().next(),
+ bridge.getControllerEntry());
+ List<ControllerEntry> getControllerEntries = bridge.getControllerEntry();
+ for (ControllerEntry entry : getControllerEntries) {
+ if (entry.getTarget() != null) {
+ Assert.assertEquals(setUri.toString(), entry.getTarget().toString());
+ }
+ }
+
+ /* TODO: add code to write to mdsal to exercise the sfc dataChangeListener */
+ /* allow some time to let the impl code do it's work to push flows */
+ /* or just comment out below lines and just manually verify on the bridges and reset them */
+ Thread.sleep(10000);
+
+ Assert.assertTrue(southboundUtils.deleteBridge(connectionInfo, BRIDGE_NAME));
+ southboundUtils.disconnectOvsdbNode(connectionInfo);