import org.opendaylight.sfc.provider.SfcProviderRpc;
import org.opendaylight.sfc.provider.api.SfcProviderServiceChainAPI;
import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.ReadRenderedServicePathFirstHopInputBuilder;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.ReadRenderedServicePathFirstHopOutput;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.path.first.hop.info.RenderedServicePathFirstHop;
if (pv == null) return;
LOG.trace("Invoking RPC for chain {}", pv.getStringValue());
- String chainName=pv.getStringValue();
- ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(pv.getStringValue());
+ SfcName chainName=new SfcName(pv.getStringValue());
+ ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(chainName);
ServiceFunctionPaths paths = SfcProviderServicePathAPI.readAllServiceFunctionPaths();
for(ServiceFunctionPath path: paths.getServiceFunctionPath()) {
if(path.getServiceChainName().equals(chainName)) {
import org.opendaylight.sfc.provider.api.SfcProviderRenderedPathAPI;
import org.opendaylight.sfc.provider.api.SfcProviderServiceChainAPI;
import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.RspName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.CreateRenderedPathInput;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.CreateRenderedPathInputBuilder;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.path.first.hop.info.RenderedServicePathFirstHop;
* if srcEp is in consumer EPG use "rspName"
* else srcEp is in provider EPG, "rspName-Reverse".
*/
- ServiceFunctionPath sfcPath = getSfcPath(chainName);
+ ServiceFunctionPath sfcPath = getSfcPath(new SfcName(chainName));
if (sfcPath == null || sfcPath.getName() == null) {
LOG.error("updateAction: SFC Path was invalid. Either null or name was null.", sfcPath);
return null;
}
// Find existing RSP based on following naming convention, else create it.
- String rspName = sfcPath.getName() + "-gbp-rsp";
+ RspName rspName = new RspName(sfcPath.getName() + "-gbp-rsp");
ReadOnlyTransaction rTx = ctx.getDataBroker().newReadOnlyTransaction();
RenderedServicePath renderedServicePath;
RenderedServicePath rsp = getRspByName(rspName, rTx);
try {
if (sfcPath.isSymmetric() && direction.equals(Direction.Out)){
- rspName = rspName + "-Reverse";
+ rspName = new RspName(rspName.getValue() + "-Reverse");
rsp = getRspByName(rspName, rTx);
if (rsp == null) {
LOG.info("updateAction: Could not find Reverse RSP {} for Chain {}", rspName, chainName);
return actions;
}
- private RenderedServicePath createRsp(ServiceFunctionPath sfcPath, String rspName) {
+ private RenderedServicePath createRsp(ServiceFunctionPath sfcPath, RspName rspName) {
CreateRenderedPathInput rspInput = new CreateRenderedPathInputBuilder().setParentServiceFunctionPath(
- sfcPath.getName())
- .setName(rspName)
+ sfcPath.getName().getValue())
+ .setName(rspName.getValue())
.setSymmetric(sfcPath.isSymmetric())
.build();
return SfcProviderRenderedPathAPI.createRenderedServicePathAndState(sfcPath, rspInput);
return valid;
}
- private RenderedServicePath getRspByName(String rspName, ReadOnlyTransaction rTx) {
+ private RenderedServicePath getRspByName(RspName rspName, ReadOnlyTransaction rTx) {
Optional<RenderedServicePath> optRsp = DataStoreHelper.readFromDs(LogicalDatastoreType.OPERATIONAL,
SfcIidFactory.rspIid(rspName), rTx);
if (optRsp.isPresent()) {
if (pv == null) {
return false;
}
+ SfcName sfcName = new SfcName(pv.getStringValue());
LOG.trace("isValidGbpChain: Invoking RPC for chain {}", pv.getStringValue());
- ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(pv.getStringValue());
+ ServiceFunctionChain chain = SfcProviderServiceChainAPI.readServiceFunctionChain(sfcName);
return (chain != null);
}
- public ServiceFunctionPath getSfcPath(String chainName) {
+ public ServiceFunctionPath getSfcPath(SfcName chainName) {
ServiceFunctionPaths paths = SfcProviderServicePathAPI.readAllServiceFunctionPaths();
for (ServiceFunctionPath path : paths.getServiceFunctionPath()) {
if (path.getServiceChainName().equals(chainName)) {
package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.RspName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfpName;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.RenderedServicePaths;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePathKey;
throw new UnsupportedOperationException();
}
- public static InstanceIdentifier<ServiceFunctionChain> sfcIid(String sfcName) {
+ public static InstanceIdentifier<ServiceFunctionChain> sfcIid(SfcName sfcName) {
ServiceFunctionChainKey serviceFunctionChainKey =
new ServiceFunctionChainKey(sfcName);
.child(ServiceFunctionChain.class, serviceFunctionChainKey).build();
}
- public static InstanceIdentifier<ServiceFunctionPath> sfpIid(String sfpName) {
+ public static InstanceIdentifier<ServiceFunctionPath> sfpIid(SfpName sfpName) {
ServiceFunctionPathKey serviceFunctionPathKey = new ServiceFunctionPathKey(sfpName);
return InstanceIdentifier.builder(ServiceFunctionPaths.class)
.child(ServiceFunctionPath.class, serviceFunctionPathKey).build();
}
- public static InstanceIdentifier<RenderedServicePath> rspIid(String rspName) {
+ public static InstanceIdentifier<RenderedServicePath> rspIid(RspName rspName) {
RenderedServicePathKey rspKey = new RenderedServicePathKey(rspName);
return InstanceIdentifier.builder(RenderedServicePaths.class)
import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.NetworkElements;
import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.PolicyPair;
import org.opendaylight.groupbasedpolicy.resolver.EgKey;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfpName;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath;
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.opendaylight.action.types.rev131112.action.list.ActionBuilder;
chainAction = spy(new ChainAction());
sfcPath = mock(ServiceFunctionPath.class);
- when(sfcPath.getName()).thenReturn("sfcPathName");
+ when(sfcPath.getName()).thenReturn(new SfpName("sfcPathName"));
when(sfcPath.isSymmetric()).thenReturn(true);
ctx = mock(OfContext.class);
Integer order = Integer.valueOf(0);
OfWriter ofWriter = mock(OfWriter.class);
- doReturn(sfcPath).when(chainAction).getSfcPath(chainName);
+ doReturn(sfcPath).when(chainAction).getSfcPath(new SfcName(chainName));
List<ActionBuilder> result = chainAction.updateAction(actions, params, order, netElements, policyPair,
ofWriter,
Integer order = Integer.valueOf(0);
OfWriter ofWriter = mock(OfWriter.class);
- doReturn(sfcPath).when(chainAction).getSfcPath(chainName);
+ doReturn(sfcPath).when(chainAction).getSfcPath(new SfcName(chainName));
when(sfcPath.getName()).thenReturn(null);
List<ActionBuilder> result = chainAction.updateAction(actions, params, order, netElements, policyPair,
import org.junit.Assert;
import org.junit.Test;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.RspName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
+import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfpName;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfc.rev140701.service.function.chain.grouping.ServiceFunctionChain;
import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev140701.service.function.paths.ServiceFunctionPath;
@Test
public void sfcIidTest() {
- String sfcName = "sfcName";
+ SfcName sfcName = new SfcName("sfcName");
InstanceIdentifier<ServiceFunctionChain> identifier = SfcIidFactory.sfcIid(sfcName);
Assert.assertFalse(identifier.isWildcarded());
Assert.assertEquals(sfcName, InstanceIdentifier.keyOf(identifier).getName());
@Test
public void sfpIidTest() {
- String sfpName = "sfpName";
+ SfpName sfpName = new SfpName("sfpName");
InstanceIdentifier<ServiceFunctionPath> identifier = SfcIidFactory.sfpIid(sfpName);
Assert.assertFalse(identifier.isWildcarded());
Assert.assertEquals(sfpName, InstanceIdentifier.keyOf(identifier).getName());
@Test
public void rspIidTest() {
- String rspName = "rspName";
+ RspName rspName = new RspName("rspName");
InstanceIdentifier<RenderedServicePath> identifier = SfcIidFactory.rspIid(rspName);
Assert.assertFalse(identifier.isWildcarded());
Assert.assertEquals(rspName, InstanceIdentifier.keyOf(identifier).getName());