\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
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
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
}\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
}\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
.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
\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
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