import java.text.MessageFormat;
import java.util.Collections;
+import java.util.LinkedList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.TimeoutException;
import java.util.stream.Collectors;
-import javax.annotation.Nullable;
-
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
import org.opendaylight.unimgr.mef.nrp.api.ActivationDriver;
import org.opendaylight.unimgr.mef.nrp.api.RequestValidator;
import org.opendaylight.unimgr.mef.nrp.api.Subrequrest;
import org.opendaylight.unimgr.mef.nrp.api.TapiConstants;
+import org.opendaylight.unimgr.mef.nrp.common.NrpDao;
+import org.opendaylight.unimgr.mef.nrp.common.TapiUtils;
import org.opendaylight.unimgr.mef.nrp.impl.ActivationTransaction;
-import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev171221.EndPoint2;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.ETH;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.ForwardingDirection;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.GlobalClass;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.PortDirection;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.PortRole;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.TerminationDirection;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.common.rev171113.Uuid;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.CreateConnectivityServiceInput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.CreateConnectivityServiceOutput;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.CreateConnectivityServiceOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connection.ConnectionEndPoint;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connection.ConnectionEndPointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connection.RouteBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connection.end.point.LayerProtocolBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.Connection;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectionBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectionKey;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityService;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityServiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityServiceKey;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.service.ConnConstraint;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.service.ConnConstraintBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.service.EndPointBuilder;
-import org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.create.connectivity.service.output.ServiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.EndPoint1;
+import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.EndPoint1Builder;
+import org.opendaylight.yang.gen.v1.urn.mef.yang.nrp._interface.rev180321.EndPoint2;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.ForwardingDirection;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.GlobalClass;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.LayerProtocolName;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.LifecycleState;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.OperationalState;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortDirection;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.PortRole;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.common.rev180307.Uuid;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.ConnectivityServiceEndPoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.CreateConnectivityServiceInput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.CreateConnectivityServiceOutput;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.CreateConnectivityServiceOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.cep.list.ConnectionEndPointBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connection.ConnectionEndPoint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connection.RouteBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.Connection;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.ConnectionBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.ConnectionKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.ConnectivityService;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.ConnectivityServiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.context.ConnectivityServiceKey;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connectivity.service.EndPointBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.create.connectivity.service.input.ConnConstraint;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.create.connectivity.service.input.ConnConstraintBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.create.connectivity.service.output.ServiceBuilder;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.NodeRef;
+import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev180307.OwnedNodeEdgePointRef;
import org.opendaylight.yangtools.yang.common.RpcError;
import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-
/**
+ * Create connectivity implementation.
* @author bartosz.michalik@amartus.com
*/
class CreateConnectivityAction implements Callable<RpcResult<CreateConnectivityServiceOutput>> {
private List<Subrequrest> decomposedRequest;
private List<EndPoint> endpoints;
- public CreateConnectivityAction(TapiConnectivityServiceImpl tapiConnectivityService, CreateConnectivityServiceInput input) {
+ CreateConnectivityAction(TapiConnectivityServiceImpl tapiConnectivityService,
+ CreateConnectivityServiceInput input) {
Objects.requireNonNull(tapiConnectivityService);
Objects.requireNonNull(input);
this.service = tapiConnectivityService;
}
@Override
- public RpcResult<CreateConnectivityServiceOutput> call() throws Exception {
+ @SuppressWarnings("checkstyle:illegalcatch")
+ public RpcResult<CreateConnectivityServiceOutput> call() {
LOG.debug("running CreateConnectivityService task");
try {
RequestValidator.ValidationResult validationResult = validateInput();
- if (!validationResult.isValid()) {
+ if (validationResult.invalid()) {
+ LOG.debug("validation for create connectivity service failed = {}", input);
RpcResultBuilder<CreateConnectivityServiceOutput> res = RpcResultBuilder.failed();
validationResult.getProblems().forEach(p -> res.withError(RpcError.ErrorType.APPLICATION, p));
return res.build();
}
endpoints = input.getEndPoint().stream().map(ep -> {
- EndPoint2 nrpAttributes = ep.getAugmentation(EndPoint2.class);
- return new EndPoint(ep, nrpAttributes);
+ EndPoint2 nrpAttributes = ep.augmentation(EndPoint2.class);
+ EndPoint endPoint = new EndPoint(ep, nrpAttributes);
+ endPoint.setLocalId(ep.getLocalId());
+ return endPoint;
}).collect(Collectors.toList());
String uniqueStamp = service.getServiceIdPool().getServiceId();
+ LOG.debug("connectivity service passed validation, request = {}", input);
ActivationTransaction tx = prepareTransaction(toCsId(uniqueStamp));
if (tx != null) {
// XXX [bm] when createConnectivityModel methods throws an exception we have desync
// (devices are configured but no data stored in MD-SAL. How should we address that?
- ConnectivityService service = createConnectivityModel(uniqueStamp);
+ ConnectivityService cs = createConnectivityModel(uniqueStamp);
CreateConnectivityServiceOutput result = new CreateConnectivityServiceOutputBuilder()
- .setService(new ServiceBuilder(service).build()).build();
+ .setService(new ServiceBuilder(cs).build()).build();
return RpcResultBuilder.success(result).build();
} else {
- LOG.warn("CreateConnectivityService failed, reason = {}, request = {}", txResult.getMessage(), input);
+ LOG.warn("CreateConnectivityService failed, reason = {}, request = {}",
+ txResult.getMessage(), input);
}
}
throw new IllegalStateException("no transaction created for create connectivity request");
-
} catch (Exception e) {
LOG.warn("Exception in create connectivity service", e);
return RpcResultBuilder
LOG.debug("decompose request");
decomposedRequest = service.getDecomposer().decompose(endpoints, null);
+ if (decomposedRequest == null || decomposedRequest.isEmpty()) {
+ throw new FailureResult("Cannot define activation scheme for "
+ + endpoints.stream().map(e -> e.getEndpoint().getServiceInterfacePoint()
+ .getServiceInterfacePointId().getValue())
+ .collect(Collectors.joining(",", "[", "]")));
+ }
+
ActivationTransaction tx = new ActivationTransaction();
decomposedRequest.stream().map(s -> {
- Optional<ActivationDriver> driver = service.getDriverRepo().getDriver(s.getNodeUuid());
+ Optional<ActivationDriver> driver = service.getDriverRepo().getDriver(s.getActivationDriverId());
if (!driver.isPresent()) {
- throw new IllegalStateException(MessageFormat.format("driver {} cannot be created", s.getNodeUuid()));
+ throw new IllegalStateException(MessageFormat
+ .format("driver {} cannot be created", s.getNodeUuid()));
}
driver.get().initialize(s.getEndpoints(), serviceId, null);
LOG.debug("driver {} added to activation transaction", driver.get());
return "cs:" + uniqueStamp;
}
- private ConnectivityService createConnectivityModel(String uniqueStamp) throws TransactionCommitFailedException, TimeoutException {
+ private ConnectivityService createConnectivityModel(String uniqueStamp)
+ throws TransactionCommitFailedException, TimeoutException {
assert decomposedRequest != null : "this method can be only run after request was successfuly decomposed";
//sort of unique ;)
LOG.debug("Preparing connectivity related model for {}", uniqueStamp);
+ final ReadWriteTransaction tx = service.getBroker().newReadWriteTransaction();
+ NrpDao nrpDao = new NrpDao(tx);
+
List<Connection> systemConnections = decomposedRequest.stream().map(s -> new ConnectionBuilder()
.setUuid(new Uuid("conn:" + s.getNodeUuid().getValue() + ":" + uniqueStamp))
// .setState()
.setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setLayerProtocolName(ETH.class)
- .setContainerNode(s.getNodeUuid())
- .setConnectionEndPoint(toConnectionPoints(s.getEndpoints(), uniqueStamp))
- .build()).collect(Collectors.toList());
+ .setLayerProtocolName(LayerProtocolName.ETH)
+
+ .setConnectionEndPoint(
+ createSystemConnectionPoints(nrpDao, TapiUtils
+ .toNodeRef(s.getNodeUuid()), s.getEndpoints(), uniqueStamp))
+ .build())
+ .collect(Collectors.toList());
Connection globalConnection = new ConnectionBuilder()
.setUuid(new Uuid("conn:" + TapiConstants.PRESTO_ABSTRACT_NODE + ":" + uniqueStamp))
// .setState()
.setDirection(ForwardingDirection.BIDIRECTIONAL)
- .setLayerProtocolName(ETH.class)
- .setContainerNode(new Uuid(TapiConstants.PRESTO_ABSTRACT_NODE))
- .setConnectionEndPoint(toConnectionPoints(endpoints, uniqueStamp))
+ .setLayerProtocolName(LayerProtocolName.ETH)
+// .setContainerNode(new Uuid(TapiConstants.PRESTO_ABSTRACT_NODE))
+ .setConnectionEndPoint(
+ createSystemConnectionPoints(nrpDao, TapiUtils
+ .toNodeRef(new Uuid(TapiConstants.PRESTO_ABSTRACT_NODE)), endpoints, uniqueStamp))
.setRoute(Collections.singletonList(new RouteBuilder()
.setLocalId("route")
.setConnectionEndPoint(systemConnections.stream()
.build())
).build();
+ ConnConstraint connConstraint = input.getConnConstraint() == null
+ ? new ConnConstraintBuilder().build() : new ConnConstraintBuilder(input.getConnConstraint()).build();
- ConnConstraint connConstraint = input.getConnConstraint() == null ? null : new ConnConstraintBuilder(input.getConnConstraint()).build();
-
- org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityService cs =
- new org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityServiceBuilder()
+ org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307
+ .connectivity.context.ConnectivityService cs =
+ new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307
+ .connectivity.context.ConnectivityServiceBuilder(connConstraint)
.setUuid(new Uuid(toCsId(uniqueStamp)))
-// .setState()
- .setConnConstraint(connConstraint)
.setConnection(Collections.singletonList(globalConnection.getUuid()))
- .setEndPoint(toConnectionServiceEndpoints(endpoints, uniqueStamp))
+ .setEndPoint(toConnectivityServiceEps(endpoints))
.build();
- final WriteTransaction tx = service.getBroker().newWriteOnlyTransaction();
- systemConnections.forEach(c -> {
- tx.put(LogicalDatastoreType.OPERATIONAL, TapiConnectivityServiceImpl.connectivityCtx.child(Connection.class, new ConnectionKey(c.getUuid())), c);
- });
+ systemConnections.forEach(c -> tx.put(LogicalDatastoreType.OPERATIONAL, TapiConnectivityServiceImpl
+ .CONNECTIVITY_CTX.child(Connection.class, new ConnectionKey(c.getUuid())), c));
tx.put(LogicalDatastoreType.OPERATIONAL,
- TapiConnectivityServiceImpl.connectivityCtx.child(org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.context.ConnectivityService.class,
+ TapiConnectivityServiceImpl.CONNECTIVITY_CTX.child(org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi
+ .connectivity.rev180307.connectivity.context.ConnectivityService.class,
new ConnectivityServiceKey(cs.getUuid())), cs);
- tx.put(LogicalDatastoreType.OPERATIONAL, TapiConnectivityServiceImpl.connectivityCtx.child(Connection.class, new ConnectionKey(globalConnection.getUuid())), globalConnection);
+ tx.put(LogicalDatastoreType.OPERATIONAL, TapiConnectivityServiceImpl.CONNECTIVITY_CTX.child(Connection.class,
+ new ConnectionKey(globalConnection.getUuid())), globalConnection);
LOG.debug("Storing connectivity related model for {} to operational data store", uniqueStamp);
tx.submit().checkedGet(500, TimeUnit.MILLISECONDS);
LOG.info("Success with serializing Connections and Connectivity Service for {}", uniqueStamp);
} catch (TimeoutException e) {
- LOG.error("Error with commiting Connections and Connectivity Service for {} within {} ms", uniqueStamp, 500);
+ LOG.error("Error with committing Connections and Connectivity Service for {} within {} ms",
+ uniqueStamp, 500);
throw e;
} catch (TransactionCommitFailedException e) {
- LOG.error("Error with commiting Connections and Connectivity Service for " + uniqueStamp, e);
+ LOG.error("Error with committing Connections and Connectivity Service for " + uniqueStamp, e);
throw e;
}
return new ConnectivityServiceBuilder(cs).build();
}
- private List<org.opendaylight.yang.gen.v1.urn.onf.params.xml.ns.yang.tapi.connectivity.rev171113.connectivity.service.EndPoint> toConnectionServiceEndpoints(List<EndPoint> endpoints, String uniqueStamp) {
- return endpoints.stream().map(ep -> new EndPointBuilder()
- .setLocalId("sep:" + ep.getSystemNepUuid() + ":" + uniqueStamp)
+ private List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307
+ .connectivity.service.EndPoint> toConnectivityServiceEps(List<EndPoint> eps) {
+ return eps.stream().map(ep -> {
+ String id = ep.getLocalId();
+ if (id == null) {
+ id = "sep:" + Integer.toString(ep.getNepRef()
+ .getOwnedNodeEdgePointId().getValue().hashCode(), 16);
+ }
+ return new EndPointBuilder()
+ .setLocalId(id)
.setServiceInterfacePoint(ep.getEndpoint().getServiceInterfacePoint())
.setDirection(PortDirection.BIDIRECTIONAL)
-// TODO donaldh .setLayerProtocolName(Eth.class)
+ .setLayerProtocolName(LayerProtocolName.ETH)
.setRole(PortRole.SYMMETRIC)
- .build()
+ .addAugmentation(EndPoint1.class, new EndPoint1Builder(ep.getAttrs()).build())
+ .build();
+
+ }
).collect(Collectors.toList());
}
- private List<ConnectionEndPoint> toConnectionPoints(List<EndPoint> endpoints, String uniqueStamp) {
- return endpoints.stream().map(ep -> new ConnectionEndPointBuilder()
- .setUuid(new Uuid("cep:" + ep.getSystemNepUuid() + ":" + uniqueStamp))
-// .setState()
- .setConnectionPortDirection(PortDirection.BIDIRECTIONAL)
- .setConnectionPortRole(PortRole.SYMMETRIC)
- .setServerNodeEdgePoint(ep.getSystemNepUuid())
- .setLayerProtocol(Collections.singletonList(new LayerProtocolBuilder()
- .setLocalId(ETH.class.getSimpleName())
- .setTerminationDirection(TerminationDirection.BIDIRECTIONAL)
- .setLayerProtocolName(ETH.class).build()))
- .build()
- ).collect(Collectors.toList());
+ private ConnectionEndPointBuilder populateData(ConnectionEndPointBuilder builder,
+ ConnectivityServiceEndPoint csep) {
+ Objects.requireNonNull(builder);
+ Objects.requireNonNull(csep);
+
+ builder
+ .setOperationalState(csep.getOperationalState())
+ .setLayerProtocolName(csep.getLayerProtocolName())
+ .setLifecycleState(csep.getLifecycleState())
+ .setConnectionPortRole(PortRole.SYMMETRIC)
+ .setConnectionPortDirection(csep.getDirection());
+ return builder;
+ }
+
+ private List<ConnectionEndPoint> createSystemConnectionPoints(NrpDao nrpDao, NodeRef ref,
+ List<EndPoint> eps, String uniqueStamp) {
+
+ Optional<ConnectivityServiceEndPoint> defaultCsEp = eps.stream()
+ .filter(ep -> ep.getEndpoint() != null).map(EndPoint::getEndpoint).findFirst();
+ ConnectionEndPointBuilder defB = new ConnectionEndPointBuilder();
+
+ if (defaultCsEp.isPresent()) {
+ populateData(defB, defaultCsEp.get());
+ } else {
+ defB
+ .setOperationalState(OperationalState.ENABLED)
+ .setLayerProtocolName(LayerProtocolName.ETH)
+ .setLifecycleState(LifecycleState.INSTALLED)
+ .setConnectionPortRole(PortRole.SYMMETRIC)
+ .setConnectionPortDirection(PortDirection.BIDIRECTIONAL);
+ }
+
+ org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.cep.list
+ .ConnectionEndPoint defaultVal = defB.build();
+
+ org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307.connection
+ .ConnectionEndPointBuilder cepRefBuilder
+ = new org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307
+ .connection.ConnectionEndPointBuilder();
+ cepRefBuilder
+ .setTopologyId(ref.getTopologyId())
+ .setNodeId(ref.getNodeId());
+
+
+ List<org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev180307
+ .connection.ConnectionEndPoint> ceps = new LinkedList<>();
+
+ for (EndPoint ep : eps) {
+ ConnectionEndPointBuilder builder = new ConnectionEndPointBuilder(defaultVal);
+ ConnectivityServiceEndPoint csp = ep.getEndpoint();
+ OwnedNodeEdgePointRef nepRef = ep.getNepRef();
+ cepRefBuilder.setOwnedNodeEdgePointId(nepRef.getOwnedNodeEdgePointId());
+ cepRefBuilder.setConnectionEndPointId(new Uuid("cep:"
+ + nepRef.getOwnedNodeEdgePointId().getValue() + ":" + uniqueStamp));
+ if (csp != null) {
+ populateData(builder, csp);
+ }
+ builder.setUuid(cepRefBuilder.getConnectionEndPointId());
+ builder.withKey(null);
+ ConnectionEndPoint cepRef = nrpDao.addConnectionEndPoint(cepRefBuilder.build(), builder.build());
+ ceps.add(cepRef);
+ }
+ return ceps;
}
}