import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-/**
- * Created by Shakib Ahmed on 5/16/17.
- */
public class LoopbackCommandWrapper {
public static LoopbackCommand simpleLoopbackPutCommand(String interfaceName,
import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General;
import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.unnumbered.config.attributes.Unnumbered;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.unnumbered.config.attributes.UnnumberedBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 5/31/17.
- */
public class UnnumberedInterfaceCommand extends AbstractConfigCommand {
- private String interfaceUnnumberedFor;
- private String interfaceUnnumberedWith;
+ private String useInterface;
+ private String interfaceName;
public UnnumberedInterfaceCommand(UnnumberedInterfaceCommandBuilder builder) {
this.operation = builder.getOperation();
- this.interfaceUnnumberedFor = builder.getInterfaceUnnumberedFor();
- this.interfaceUnnumberedWith = builder.getInterfaceUnnumberedWith();
+ this.useInterface = builder.getUseInterface();
+ this.interfaceName = builder.getInterfaceName();
+ }
+
+ public static UnnumberedInterfaceCommandBuilder builder() {
+ return new UnnumberedInterfaceCommandBuilder();
}
@Override
- public InstanceIdentifier getIid() {
- return VppIidFactory.getUnnumberedIid(new InterfaceKey(interfaceUnnumberedFor));
+ public InstanceIdentifier<Unnumbered> getIid() {
+ return VppIidFactory.getUnnumberedIid(new InterfaceKey(interfaceName));
+ }
+
+ public String getUseInterface() {
+ return useInterface;
+ }
+
+ public String getInterfaceName() {
+ return interfaceName;
}
@Override
void put(ReadWriteTransaction rwTx) {
- rwTx.put(LogicalDatastoreType.CONFIGURATION, getIid(), getUnnumberedBuilder().build());
+ rwTx.put(LogicalDatastoreType.CONFIGURATION, getIid(), getUnnumberedBuilder().build(), true);
}
@Override
void merge(ReadWriteTransaction rwTx) {
- rwTx.merge(LogicalDatastoreType.CONFIGURATION, getIid(), getUnnumberedBuilder().build());
+ rwTx.merge(LogicalDatastoreType.CONFIGURATION, getIid(), getUnnumberedBuilder().build(), true);
}
@Override
}
private UnnumberedBuilder getUnnumberedBuilder() {
- UnnumberedBuilder builder = new UnnumberedBuilder();
- builder.setUse(this.interfaceUnnumberedWith);
- return builder;
+ return new UnnumberedBuilder().setUse(this.useInterface);
}
+ @Override public String toString() {
+ return "UnnumberedInterfaceCommand{" + "useInterface='" + useInterface + ", With='" + interfaceName + '}';
+ }
public static class UnnumberedInterfaceCommandBuilder {
private General.Operations operation;
- private String interfaceUnnumberedFor;
- private String interfaceUnnumberedWith;
+ private String useInterface;
+ private String interfaceName;
public General.Operations getOperation() {
return operation;
}
- public void setOperation(General.Operations operation) {
+ public UnnumberedInterfaceCommandBuilder setOperation(General.Operations operation) {
this.operation = operation;
+ return this;
}
- public String getInterfaceUnnumberedFor() {
- return interfaceUnnumberedFor;
+ public String getUseInterface() {
+ return useInterface;
}
- public void setInterfaceUnnumberedFor(String interfaceUnnumberedFor) {
- this.interfaceUnnumberedFor = interfaceUnnumberedFor;
+ public UnnumberedInterfaceCommandBuilder setUseInterface(String useInterface) {
+ this.useInterface = useInterface;
+ return this;
}
- public String getInterfaceUnnumberedWith() {
- return interfaceUnnumberedWith;
+ public String getInterfaceName() {
+ return interfaceName;
}
- public void setInterfaceUnnumberedWith(String interfaceUnnumberedWith) {
- this.interfaceUnnumberedWith = interfaceUnnumberedWith;
+ public UnnumberedInterfaceCommandBuilder setInterfaceName(String interfaceName) {
+ this.interfaceName = interfaceName;
+ return this;
}
/**
* StaticArpCommand build method.
*
* @return UnnumberedInterfaceCommand
- * @throws IllegalArgumentException if interfaceUnnumberedFor or interfaceUnnumberedWith is null.
+ * @throws IllegalArgumentException if useInterface or interfaceName is null.
*/
public UnnumberedInterfaceCommand build() {
Preconditions.checkNotNull(operation, "Operation must not be null!");
- Preconditions.checkNotNull(interfaceUnnumberedFor, "interfaceUnnumberedFor must not be null!");
- Preconditions.checkNotNull(interfaceUnnumberedWith, "interfaceUnnumberedWith must not be null!");
+ Preconditions.checkNotNull(useInterface, "Field useInterface must not be null!");
+ Preconditions.checkNotNull(interfaceName, "Field interfaceName must not be null!");
return new UnnumberedInterfaceCommand(this);
}
}
-}
\ No newline at end of file
+}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public abstract class AbstractLispCommand<T extends DataObject> {
private static final Logger LOG = LoggerFactory.getLogger(AbstractLispCommand.class);
- private General.Operations options;
+ private General.Operations operation;
- public void setOptions(General.Operations options) {
- this.options = options;
+ public void setOperation(General.Operations options) {
+ this.operation = options;
}
- public General.Operations getOptions() {
- if (options == null) {
+ public General.Operations getOperation() {
+ if (operation == null) {
LOG.debug("Options found null, setting Options to default PUT type");
- options = General.Operations.PUT;
+ operation = General.Operations.PUT;
}
- return options;
+ return operation;
}
/**
* @param rwTx Transaction for command execution
*/
public void execute(ReadWriteTransaction rwTx) {
- switch (getOptions()) {
+ switch (getOperation()) {
case PUT:
put(rwTx);
break;
public abstract InstanceIdentifier<T> getIid();
public abstract T getData();
-}
\ No newline at end of file
+}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.feature.data.grouping.GpeFeatureData;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 6/1/17.
- */
public class ConfigureGpeCommand extends AbstractLispCommand<GpeFeatureData> {
private GpeEnableDom gpeEnableDom;
public GpeFeatureData getData() {
return gpeEnableDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + gpeEnableDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.GpeEntryKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 6/1/17.
- */
public class ConfigureGpeEntryCommand extends AbstractLispCommand<GpeEntry> {
private GbpGpeEntryDom gpeEntryDom;
public GpeEntry getData() {
return gpeEntryDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + gpeEntryDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.itr.remote.locator.sets.grouping.ItrRemoteLocatorSet;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 7/18/17.
- */
public class ConfigureItrRemoteLocatorSetCommand extends AbstractLispCommand<ItrRemoteLocatorSet> {
ItrRemoteLocatorSetDom itrRemoteLocatorSetDom;
public ItrRemoteLocatorSet getData() {
return itrRemoteLocatorSetDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + itrRemoteLocatorSetDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.Lisp;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/16/17.
- */
public class ConfigureLispStatusCommand extends AbstractLispCommand<Lisp> {
private LispDom lispDom;
return lispDom.getSALObject();
}
- @Override
- public String toString() {
- return "state: " + lispDom.isEnabled();
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + lispDom.toString();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.VniTableKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/16/17.
- */
public class ConfigureLocalMappingInEidTableCommand extends AbstractLispCommand<LocalMapping> {
LocalMappingDom localMappingDom;
public LocalMapping getData() {
return localMappingDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + localMappingDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.locator.sets.grouping.locator.sets.LocatorSetKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/16/17.
- */
public class ConfigureLocatorSetCommand extends AbstractLispCommand<LocatorSet> {
LocatorSetDom locatorSetDom;
public LocatorSet getData() {
return locatorSetDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + locatorSetDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.register.grouping.MapRegister;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class ConfigureMapRegisterStatusCommand extends AbstractLispCommand<MapRegister>{
MapRegisterDom mapRegisterDom;
public MapRegister getData() {
return mapRegisterDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + mapRegisterDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.resolvers.grouping.map.resolvers.MapResolverKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class ConfigureMapResolverCommand extends AbstractLispCommand<MapResolver>{
MapResolverDom mapResolverDom;
public MapResolver getData() {
return mapResolverDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + mapResolverDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.servers.grouping.map.servers.MapServerKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class ConfigureMapServerCommand extends AbstractLispCommand<MapServer> {
private MapServerDom mapServerDom;
public MapServer getData() {
return mapServerDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + mapServerDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801._native.forward.paths.tables._native.forward.paths.table.NativeForwardPathKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 6/13/17.
- */
public class ConfigureNativeForwardPathCommand extends AbstractLispCommand<NativeForwardPath> {
private NativeForwardPathDom nativeForwardPathDom;
public NativeForwardPath getData() {
return nativeForwardPathDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + nativeForwardPathDom.toString();
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.VniTableKey;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-/**
- * Created by Shakib Ahmed on 3/16/17.
- */
public class ConfigureVrfToVniMappingCommand extends AbstractLispCommand<VniTable> {
VniTableDom vniTableDom;
public VniTable getData() {
return vniTableDom.getSALObject();
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + vniTableDom.toString();
+ }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * Created by Shakib Ahmed on 6/21/17.
- */
public class DeleteGpeFeatureDataCommand extends AbstractLispCommand<GpeFeatureData> {
private static final Logger LOG = LoggerFactory.getLogger(DeleteGpeFeatureDataCommand.class);
LOG.debug("Delete commands should not invoke getData()");
return null;
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + "DeleteGpeFeatureDataCommand{}";
+ }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * Created by Shakib Ahmed on 4/18/17.
- */
public class DeleteLispFeatureDataCommand extends AbstractLispCommand<LispFeatureData> {
private static final Logger LOG = LoggerFactory.getLogger(DeleteLispFeatureDataCommand.class);
LOG.debug("Delete commands should not invoke getData()");
return null;
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", " + "DeleteLispFeatureDataCommand{}";
+ }
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- * Created by Shakib Ahmed on 6/21/17.
- */
public class DeleteNativeForwardPathsTablesDeleteCommand extends AbstractLispCommand<NativeForwardPathsTables> {
private static final Logger LOG = LoggerFactory.getLogger(DeleteNativeForwardPathsTablesDeleteCommand.class);
LOG.debug("Delete commands should not invoke getData()");
return null;
}
+
+ @Override public String toString() {
+ return "Operation: " + getOperation() + ", Iid: " + this.getIid() + ", "
+ + "DeleteNativeForwardPathsTablesDeleteCommand{}";
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.dp.subtable.grouping.local.mappings.local.mapping.Eid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.dp.subtable.grouping.local.mappings.local.mapping.EidBuilder;
-/**
- * Created by Shakib Ahmed on 3/21/17.
- */
public class EidDom<T extends LispAddressFamily> implements CommandModel {
private long vni;
.setAddressType(getAddressFamily())
.setAddress(address).build();
}
+
+ @Override public String toString() {
+ return "Eid{" + "vni=" + vni + ", address=" + address + ", addressFamily=" + addressFamily + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.RemoteEid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.MapReplyAction;
-/**
- * Created by Shakib Ahmed on 6/1/17.
- */
public class GbpGpeEntryDom implements CommandModel{
private String id;
private Long vrf;
.setLocalEid(localEid)
.setAction(action).build();
}
+
+ @Override public String toString() {
+ return "GbpGpeEntry{" + "id='" + id + ", vrf=" + vrf + ", vni=" + vni + ", localEid=" + localEid
+ + ", remoteEid=" + remoteEid + ", action=" + action + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.feature.data.grouping.GpeFeatureData;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.feature.data.grouping.GpeFeatureDataBuilder;
-/**
- * Created by Shakib Ahmed on 6/1/17.
- */
public class GpeEnableDom implements CommandModel {
private boolean enabled;
public GpeFeatureData getSALObject() {
return new GpeFeatureDataBuilder().setEnable(enabled).build();
}
+
+ @Override public String toString() {
+ return "GpeEnable{" + "enabled=" + enabled + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.hmac.key.grouping.HmacKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.hmac.key.grouping.HmacKeyBuilder;
-/**
- * Created by Shakib Ahmed on 3/21/17.
- */
public class HmacKeyDom implements CommandModel {
private HmacKeyType keyType;
.setKeyType(keyType)
.setKey(key).build();
}
+
+ @Override public String toString() {
+ return "HmacKey{" + "keyType=" + keyType + ", key='" + key + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.locator.sets.grouping.locator.sets.locator.set.InterfaceBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.locator.sets.grouping.locator.sets.locator.set.InterfaceKey;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class InterfaceDom implements CommandModel {
private String interfaceName;
.setPriority(priority)
.setWeight(priority).build();
}
+
+ @Override public String toString() {
+ return "Interface{" + "interfaceName='" + interfaceName + ", priority=" + priority + ", weight="
+ + weight + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.itr.remote.locator.sets.grouping.ItrRemoteLocatorSetBuilder;
import org.opendaylight.yangtools.yang.binding.DataObject;
-/**
- * Created by Shakib Ahmed on 7/18/17.
- */
public class ItrRemoteLocatorSetDom implements CommandModel {
private String locatorSetName;
return new ItrRemoteLocatorSetBuilder()
.setRemoteLocatorSetName(locatorSetName).build();
}
+
+ @Override public String toString() {
+ return "ItrRemoteLocatorSet{" + "locatorSetName='" + locatorSetName + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.Lisp;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.LispBuilder;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class LispDom implements CommandModel {
private boolean enabled;
public Lisp getSALObject() {
return new LispBuilder().setEnable(enabled).build();
}
+
+ @Override public String toString() {
+ return "Lisp{" + "enabled=" + enabled + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.hmac.key.grouping.HmacKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.locator.sets.grouping.locator.sets.LocatorSet;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class LocalMappingDom implements CommandModel {
private MappingId mappingId;
.setLocatorSet(locatorName)
.setHmacKey(hmacKey).build();
}
+
+ @Override public String toString() {
+ return "LocalMapping{" + "mappingId=" + mappingId + ", eid=" + eid + ", vni=" + vni + ", locatorName='"
+ + locatorName + ", hmacKey=" + hmacKey + '}';
+ }
}
import java.util.List;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class LocatorSetDom implements CommandModel {
private String locatorName;
.setName(locatorName)
.setInterface(interfaces).build();
}
+
+ @Override public String toString() {
+ return "LocatorSet{" + "locatorName='" + locatorName + ", interfaces=" + interfaces + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.register.grouping.MapRegister;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.register.grouping.MapRegisterBuilder;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class MapRegisterDom implements CommandModel {
private boolean enabled;
public MapRegister getSALObject() {
return new MapRegisterBuilder().setEnabled(enabled).build();
}
+
+ @Override public String toString() {
+ return "MapRegister{" + "enabled=" + enabled + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.resolvers.grouping.map.resolvers.MapResolver;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.resolvers.grouping.map.resolvers.MapResolverBuilder;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class MapResolverDom implements CommandModel {
private IpAddress ipAddress;
public MapResolver getSALObject() {
return new MapResolverBuilder().setIpAddress(ipAddress).build();
}
+
+ @Override public String toString() {
+ return "MapResolver{" + "ipAddress=" + ipAddress + '}';
+ }
}
import java.util.List;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class MapResolversDom implements CommandModel {
private List<MapResolver> mapResolvers;
public MapResolvers getSALObject() {
return new MapResolversBuilder().setMapResolver(mapResolvers).build();
}
+
+ @Override public String toString() {
+ return "MapResolvers{" + "mapResolvers=" + mapResolvers + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.servers.grouping.map.servers.MapServer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.map.servers.grouping.map.servers.MapServerBuilder;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class MapServerDom implements CommandModel{
private IpAddress ipAddress;
public MapServer getSALObject() {
return new MapServerBuilder().setIpAddress(ipAddress).build();
}
+
+ @Override public String toString() {
+ return "MapServer{" + "ipAddress=" + ipAddress + '}';
+ }
}
import java.util.List;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class MapServersDom implements CommandModel {
List<MapServer> mapServers;
public MapServers getSALObject() {
return new MapServersBuilder().setMapServer(mapServers).build();
}
+
+ @Override public String toString() {
+ return "MapServers{" + "mapServers=" + mapServers + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801._native.forward.paths.tables._native.forward.paths.table.NativeForwardPathBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801._native.forward.paths.tables._native.forward.paths.table.NativeForwardPathKey;
-/**
- * Created by Shakib Ahmed on 6/13/17.
- */
public class NativeForwardPathDom implements CommandModel {
private IpAddress nextHopIp;
private String nextHopInterface;
.setNextHopAddress(nextHopIp)
.setNextHopInterface(nextHopInterface).build();
}
+
+ @Override public String toString() {
+ return "NativeForwardPath{" + "nextHopIp=" + nextHopIp + ", nextHopInterface='" + nextHopInterface + ", vrfId="
+ + vrfId + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.VniTableKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.vni.table.VrfSubtable;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class VniTableDom implements CommandModel {
private long virtualNetworkIdentifier;
private VrfSubtable vrfSubtable;
.setVirtualNetworkIdentifier(vniTableKey.getVirtualNetworkIdentifier())
.setVrfSubtable(vrfSubtable).build();
}
+
+ @Override public String toString() {
+ return "VniTable{" + "virtualNetworkIdentifier=" + virtualNetworkIdentifier + ", vrfSubtable=" + vrfSubtable
+ + '}';
+ }
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.vni.table.VrfSubtable;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170808.eid.table.grouping.eid.table.vni.table.VrfSubtableBuilder;
-/**
- * Created by Shakib Ahmed on 3/20/17.
- */
public class VrfSubtableDom implements CommandModel {
private long tableId;
public VrfSubtable getSALObject() {
return new VrfSubtableBuilder().setTableId(tableId).build();
}
+
+ @Override public String toString() {
+ return "VrfSubtable{" + "tableId=" + tableId + '}';
+ }
}
import com.google.common.base.Function;
-/**
- * Created by Shakib Ahmed on 4/18/17.
- */
public class LispStateCommandExecutor {
private static final Logger LOG = LoggerFactory.getLogger(LispStateCommandExecutor.class);
public static <T extends DataObject> boolean executePutCommand(InstanceIdentifier<Node> nodeIid,
AbstractLispCommand<T> lispStateCommand) {
- lispStateCommand.setOptions(General.Operations.PUT);
+ lispStateCommand.setOperation(General.Operations.PUT);
return executeCommand(nodeIid, lispStateCommand);
}
public static <T extends DataObject> boolean executePutCommand(String hostName,
AbstractLispCommand<T> lispStateCommand) {
- lispStateCommand.setOptions(General.Operations.PUT);
+ lispStateCommand.setOperation(General.Operations.PUT);
return executeCommand(LispUtil.HOSTNAME_TO_IID.apply(hostName), lispStateCommand);
}
public static <T extends DataObject> boolean executeDeleteCommand(InstanceIdentifier<Node> nodeIid,
AbstractLispCommand<T> lispStateCommand) {
- lispStateCommand.setOptions(General.Operations.DELETE);
+ lispStateCommand.setOperation(General.Operations.DELETE);
return executeCommand(nodeIid, lispStateCommand);
}
public static <T extends DataObject> boolean executeDeleteCommand(String hostName,
AbstractLispCommand<T> lispStateCommand) {
- lispStateCommand.setOptions(General.Operations.DELETE);
+ lispStateCommand.setOperation(General.Operations.DELETE);
return executeCommand(LispUtil.HOSTNAME_TO_IID.apply(hostName), lispStateCommand);
}
final boolean transactionState = GbpNetconfTransaction.netconfSyncedWrite(nodeIid, lispStateCommand.getIid(),
lispStateCommand.getData(), GbpNetconfTransaction.RETRY_COUNT);
if (transactionState) {
- LOG.trace("Successfully executed command: ", lispStateCommand);
+ LOG.trace("Successfully executed command: {}", lispStateCommand);
} else {
- LOG.debug("Failed to execute command: ", lispStateCommand);
+ LOG.debug("Failed to execute command: {}", lispStateCommand);
}
return transactionState;
import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.LoopbackCommand;
import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.LoopbackCommandWrapper;
import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.ProxyRangeCommand;
+import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.UnnumberedInterfaceCommand;
import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.AbstractLispCommand;
import org.opendaylight.groupbasedpolicy.renderer.vpp.commands.lisp.LispCommandWrapper;
import org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.LispStateCommandExecutor;
import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.Ipv4PrefixAfi;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.has.absolute.location.absolute.location.location.type.ExternalLocationCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.config.GbpSubnet;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.GpeEntry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.gpe.rev170801.gpe.entry.table.grouping.gpe.entry.table.gpe.entry.RemoteEid;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.InterfaceUnnumberedAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.InterfaceUnnumberedAugmentationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.unnumbered.config.attributes.UnnumberedBuilder;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
InstanceIdentifier<Node> nodeIid = (InstanceIdentifier<Node>) loc.getExternalNodeMountPoint();
String neutronInterfaceName = loopbackManagerHelper.getInterfaceName(addressEp).get();
if (putUnnumberedInterface(nodeIid, neutronInterfaceName, loopbackName)) {
- LOG.debug("Added Interface {} as unnumberd for {}", loopbackName, neutronInterfaceName);
+ LOG.debug("Added Interface {} as unnumbered for {}", loopbackName, neutronInterfaceName);
} else {
throw new LispConfigCommandFailedException("Unnumbered configuration failed for " +
neutronInterfaceName + " - " + loopbackName);
}
}
- private boolean putUnnumberedInterface(InstanceIdentifier<Node> iid, String interfaceFor, String interfaceWith) {
- UnnumberedBuilder unnumberedBuilder = new UnnumberedBuilder();
- unnumberedBuilder.setUse(interfaceWith);
- InstanceIdentifier<Interface> interfaceIid = VppIidFactory.getInterfaceIID(new InterfaceKey(interfaceFor));
- InterfaceUnnumberedAugmentationBuilder augBuilder = new InterfaceUnnumberedAugmentationBuilder();
- augBuilder.setUnnumbered(unnumberedBuilder.build());
- InterfaceBuilder interfaceBuilder = new InterfaceBuilder().setKey(new InterfaceKey(interfaceFor));
- interfaceBuilder.addAugmentation(InterfaceUnnumberedAugmentation.class, augBuilder.build());
- return GbpNetconfTransaction.netconfSyncedMerge(iid, interfaceIid, interfaceBuilder.build(),
- GbpNetconfTransaction.RETRY_COUNT);
+ private boolean putUnnumberedInterface(InstanceIdentifier<Node> iid, String interfaceName, String useInterface) {
+ UnnumberedInterfaceCommand unnumberedCommand =
+ UnnumberedInterfaceCommand.builder()
+ .setOperation(General.Operations.MERGE)
+ .setUseInterface(useInterface)
+ .setInterfaceName(interfaceName)
+ .build();
+ return GbpNetconfTransaction.netconfSyncedWrite(iid, unnumberedCommand, GbpNetconfTransaction.RETRY_COUNT);
}
private void addGpeEntry(InstanceIdentifier<Node> iid, GbpSubnet gbpSubnetInfo, long vni) {
import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp_renderer.rev160425.Config;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.nat.rev170816.NatInterfaceAugmentation;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.unnumbered.config.attributes.Unnumbered;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.VhostUser;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.dhcp.rev170315.dhcp.attributes.relays.Relay;\r
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;\r
public Collection<Class<?>> getClassesFromModules() {\r
return ImmutableList.of(Interfaces.class, Interface.class, VhostUser.class, NetworkTopology.class,\r
Topology.class, Node.class, NetconfNode.class, Renderer.class, LocationProviders.class, Config.class,\r
- NatInterfaceAugmentation.class, Routing.class, StaticRoutes1.class, Relay.class);\r
+ NatInterfaceAugmentation.class, Routing.class, StaticRoutes1.class, Relay.class, Unnumbered.class);\r
}\r
}\r
--- /dev/null
+/*
+ * Copyright (c) 2017 Cisco Systems. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.renderer.vpp.commands;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.groupbasedpolicy.renderer.vpp.VppRendererDataBrokerTest;
+import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General;
+import org.opendaylight.groupbasedpolicy.renderer.vpp.util.VppIidFactory;
+import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.InterfaceUnnumberedAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.InterfaceUnnumberedAugmentationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.unnumbered.interfaces.rev170510.unnumbered.config.attributes.UnnumberedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VhostUserRole;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceAugmentationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.L2Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.VhostUser;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.VhostUserBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.l2.config.attributes.interconnection.BridgeBasedBuilder;
+
+import com.google.common.base.Optional;
+
+public class UnnumberedInterfaceCommandTest extends VppRendererDataBrokerTest {
+
+ private final static String BRIDGE_DOMAIN = "testBD";
+ private final static String DESCRIPTION = "used for testing";
+ private final static String INTERFACE_NAME = "testInterface";
+ private final static String USE_INTERFACE_NAME = "masterInterface";
+ private final static String USE_INTERFACE_NAME_2 = "masterInterface2";
+ private final static String SOCKET_NAME = "soc1";
+ private final static boolean IS_BRIDGED_DEFAULT = false;
+
+ private static Interface BASIC_INTERFACE;
+ private static Interface BASIC_INTERFACE_UNNUMBERED;
+
+ private DataBroker dataBroker;
+
+ @Before public void init() {
+ dataBroker = getDataBroker();
+
+ VhostUser vhostUser = new VhostUserBuilder().setRole(VhostUserRole.Server).setSocket(SOCKET_NAME).build();
+
+ VppInterfaceAugmentation vppAugmentation =
+ new VppInterfaceAugmentationBuilder().setVhostUser(vhostUser)
+ .setL2(new L2Builder().setInterconnection(new BridgeBasedBuilder().setBridgeDomain(BRIDGE_DOMAIN)
+ .setBridgedVirtualInterface(IS_BRIDGED_DEFAULT)
+ .setSplitHorizonGroup((short) 0)
+ .build()).build())
+ .build();
+
+ BASIC_INTERFACE = new InterfaceBuilder().setDescription(DESCRIPTION)
+ .setEnabled(true)
+ .setKey(new InterfaceKey(INTERFACE_NAME))
+ .setName(INTERFACE_NAME)
+ .setType(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VhostUser.class)
+ .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled)
+ .addAugmentation(VppInterfaceAugmentation.class, vppAugmentation)
+ .build();
+
+ BASIC_INTERFACE_UNNUMBERED =
+ new InterfaceBuilder(BASIC_INTERFACE).addAugmentation(InterfaceUnnumberedAugmentation.class,
+ new InterfaceUnnumberedAugmentationBuilder().setUnnumbered(
+ new UnnumberedBuilder().setUse(USE_INTERFACE_NAME).build()).build()).build();
+ }
+
+ @Test public void AddUnnumberedInterfaceTest() {
+ ReadWriteTransaction transaction = dataBroker.newReadWriteTransaction();
+
+ transaction.put(LogicalDatastoreType.CONFIGURATION, VppIidFactory.getInterfaceIID(BASIC_INTERFACE.getKey()),
+ BASIC_INTERFACE, true);
+ transaction.submit();
+
+ Optional<Interface> optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+
+ UnnumberedInterfaceCommand unnumberedCommand = getUnnumberedInterfaceCommand(General.Operations.PUT).build();
+
+ ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
+ unnumberedCommand.execute(rwTx);
+ rwTx.submit();
+
+ optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+ InterfaceUnnumberedAugmentation unnumberedAugmentation =
+ optional.get().getAugmentation(InterfaceUnnumberedAugmentation.class);
+ Assert.assertNotNull(unnumberedAugmentation);
+ Assert.assertEquals(BASIC_INTERFACE_UNNUMBERED, optional.get());
+ }
+
+ @Test public void DeleteUnnumberedInterfaceTest() {
+ ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
+
+ rwTx.put(LogicalDatastoreType.CONFIGURATION, VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()),
+ BASIC_INTERFACE_UNNUMBERED, true);
+ rwTx.submit();
+
+ Optional<Interface> optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+ Assert.assertEquals(BASIC_INTERFACE_UNNUMBERED, optional.get());
+
+ UnnumberedInterfaceCommand unnumberedCommand = getUnnumberedInterfaceCommand(General.Operations.DELETE).build();
+
+ rwTx = dataBroker.newReadWriteTransaction();
+ unnumberedCommand.execute(rwTx);
+ rwTx.submit();
+
+ optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+ InterfaceUnnumberedAugmentation unnumberedAugmentation =
+ optional.get().getAugmentation(InterfaceUnnumberedAugmentation.class);
+ Assert.assertNull(unnumberedAugmentation.getUnnumbered());
+ }
+
+ @Test public void UpdateUnnumberedInterfaceTest() {
+ ReadWriteTransaction rwTx = dataBroker.newReadWriteTransaction();
+
+ rwTx.put(LogicalDatastoreType.CONFIGURATION, VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()),
+ BASIC_INTERFACE_UNNUMBERED, true);
+ rwTx.submit();
+
+ Optional<Interface> optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+ Assert.assertEquals(BASIC_INTERFACE_UNNUMBERED, optional.get());
+
+ UnnumberedInterfaceCommand unnumberedCommand =
+ getUnnumberedInterfaceCommand(General.Operations.MERGE).setUseInterface(USE_INTERFACE_NAME_2).build();
+
+ rwTx = dataBroker.newReadWriteTransaction();
+ unnumberedCommand.execute(rwTx);
+ rwTx.submit();
+
+ optional = DataStoreHelper.readFromDs(LogicalDatastoreType.CONFIGURATION,
+ VppIidFactory.getInterfaceIID(BASIC_INTERFACE_UNNUMBERED.getKey()), dataBroker.newReadOnlyTransaction());
+
+ Assert.assertTrue(optional.isPresent());
+ InterfaceUnnumberedAugmentation unnumberedAugmentation =
+ optional.get().getAugmentation(InterfaceUnnumberedAugmentation.class);
+ Assert.assertNotNull(unnumberedAugmentation.getUnnumbered());
+ Assert.assertEquals(USE_INTERFACE_NAME_2, unnumberedAugmentation.getUnnumbered().getUse());
+ }
+
+ private UnnumberedInterfaceCommand.UnnumberedInterfaceCommandBuilder getUnnumberedInterfaceCommand(
+ General.Operations operation) {
+ return UnnumberedInterfaceCommand.builder()
+ .setOperation(operation)
+ .setUseInterface(USE_INTERFACE_NAME)
+ .setInterfaceName(INTERFACE_NAME);
+ }
+}