Introduced InterfaceManager in VPP renderer
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / commands / VhostUserCommand.java
index a47d04f1b02b4cb12fbc7238b6d53039b88f2157..1321603364149d44125b624ab86e410b070626bb 100644 (file)
@@ -8,10 +8,10 @@
 \r
 package org.opendaylight.groupbasedpolicy.renderer.vpp.commands;\r
 \r
-import com.google.common.base.Preconditions;\r
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;\r
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
 import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General;\r
+import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General.Operations;\r
 import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;\r
@@ -21,11 +21,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppInterfaceAugmentationBuilder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.L2Builder;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.VhostUserBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.l2.interconnection.BridgeBasedBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.l2.attributes.interconnection.BridgeBasedBuilder;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 \r
-public class VhostUserCommand extends AbstractInterfaceCommand {\r
+import com.google.common.base.Preconditions;\r
+import com.google.common.base.Strings;\r
+\r
+public class VhostUserCommand extends AbstractInterfaceCommand<VhostUserCommand> {\r
 \r
     private static final Logger LOG = LoggerFactory.getLogger(VhostUserCommand.class);\r
     private String socket;\r
@@ -64,15 +67,15 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
         switch (getOperation()) {\r
 \r
             case PUT:\r
-                LOG.info("Executing Add operation for command: {}", this);\r
+                LOG.debug("Executing Add operation for command: {}", this);\r
                 put(readWriteTransaction);\r
                 break;\r
             case DELETE:\r
-                LOG.info("Executing Delete operation for command: {}", this);\r
+                LOG.debug("Executing Delete operation for command: {}", this);\r
                 delete(readWriteTransaction);\r
                 break;\r
             case MERGE:\r
-                LOG.info("Executing Update operation for command: {}", this);\r
+                LOG.debug("Executing Update operation for command: {}", this);\r
                 merge(readWriteTransaction);\r
                 break;\r
             default:\r
@@ -82,8 +85,6 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
     }\r
 \r
     private void put(ReadWriteTransaction readWriteTransaction) {\r
-        Preconditions.checkNotNull(name, "Interface name should not be null");\r
-\r
         InterfaceBuilder interfaceBuilder = getVhostUserInterfaceBuilder();\r
 \r
         readWriteTransaction.put(LogicalDatastoreType.CONFIGURATION,\r
@@ -91,8 +92,6 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
     }\r
 \r
     private void merge(ReadWriteTransaction readWriteTransaction) {\r
-        Preconditions.checkNotNull(name, "Interface name should not be null");\r
-\r
         InterfaceBuilder interfaceBuilder = getVhostUserInterfaceBuilder();\r
 \r
             readWriteTransaction.merge(LogicalDatastoreType.CONFIGURATION,\r
@@ -110,14 +109,14 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
                         .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled);\r
 \r
         // Create the vhost augmentation\r
-        VppInterfaceAugmentation vppAugmentation =\r
-                new VppInterfaceAugmentationBuilder()\r
-                        .setVhostUser(new VhostUserBuilder().setRole(role).setSocket(socket).build())\r
-                        .setL2(new L2Builder()\r
-                                .setInterconnection(new BridgeBasedBuilder().setBridgeDomain(bridgeDomain).build()).build())\r
-                        .build();\r
-\r
-        interfaceBuilder.addAugmentation(VppInterfaceAugmentation.class, vppAugmentation);\r
+        VppInterfaceAugmentationBuilder vppAugmentationBuilder = new VppInterfaceAugmentationBuilder()\r
+            .setVhostUser(new VhostUserBuilder().setRole(role).setSocket(socket).build());\r
+        if (!Strings.isNullOrEmpty(bridgeDomain)) {\r
+            vppAugmentationBuilder.setL2(new L2Builder()\r
+                .setInterconnection(new BridgeBasedBuilder().setBridgeDomain(bridgeDomain).build()).build());\r
+        }\r
+\r
+        interfaceBuilder.addAugmentation(VppInterfaceAugmentation.class, vppAugmentationBuilder.build());\r
         return interfaceBuilder;\r
     }\r
 \r
@@ -131,6 +130,15 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
 \r
     }\r
 \r
+    @Override\r
+    public String toString() {\r
+        return "VhostUserCommand [socket=" + socket + ", role=" + role + ", bridgeDomain=" + bridgeDomain\r
+                + ", operation=" + operation + ", name=" + name + ", description=" + description + ", enabled="\r
+                + enabled + "]";\r
+    }\r
+\r
+\r
+\r
     public static class VhostUserCommandBuilder {\r
 \r
         private String name;\r
@@ -213,7 +221,9 @@ public class VhostUserCommand extends AbstractInterfaceCommand {
         public VhostUserCommand build() {\r
             Preconditions.checkArgument(this.name != null);\r
             Preconditions.checkArgument(this.operation != null);\r
-            Preconditions.checkArgument(this.socket != null);\r
+            if (operation == Operations.PUT) {\r
+                Preconditions.checkArgument(this.socket != null);\r
+            }\r
 \r
             return new VhostUserCommand(this);\r
         }\r