mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-17 18:32:28 +02:00
[ODTN]Add SIP validation check
Add check of SIP which is input of create-connectivity-service is used Change-Id: I95f50fcc98d40f462cc3c50a7f461e3f7e6686e4
This commit is contained in:
parent
46d557f868
commit
be23914f8a
5
apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiConnectivityServiceHandler.java
Normal file → Executable file
5
apps/odtn/api/src/main/java/org/onosproject/odtn/utils/tapi/TapiConnectivityServiceHandler.java
Normal file → Executable file
@ -16,6 +16,7 @@
|
||||
|
||||
package org.onosproject.odtn.utils.tapi;
|
||||
|
||||
import java.util.List;
|
||||
import org.onosproject.yang.gen.v1.tapicommon.rev20181016.tapicommon.DefaultContext;
|
||||
import org.onosproject.yang.gen.v1.tapicommon.rev20181016.tapicommon.Uuid;
|
||||
import org.onosproject.yang.gen.v1.tapiconnectivity.rev20181016.tapiconnectivity.connectivitycontext.ConnectivityServiceKeys;
|
||||
@ -82,6 +83,10 @@ public final class TapiConnectivityServiceHandler extends TapiObjectHandler<Defa
|
||||
.build();
|
||||
}
|
||||
|
||||
public List<EndPoint> getEndPoint() {
|
||||
return obj.endPoint();
|
||||
}
|
||||
|
||||
public TapiConnectivityServiceHandler addSep(EndPoint sep) {
|
||||
obj.addToEndPoint(sep);
|
||||
return this;
|
||||
|
31
apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java
Normal file → Executable file
31
apps/odtn/service/src/main/java/org/onosproject/odtn/internal/DcsBasedTapiConnectivityRpc.java
Normal file → Executable file
@ -16,6 +16,7 @@
|
||||
|
||||
package org.onosproject.odtn.internal;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.onosproject.config.DynamicConfigService;
|
||||
@ -43,6 +44,7 @@ import org.onosproject.yang.model.RpcOutput;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import static java.util.Collections.disjoint;
|
||||
import static org.onlab.osgi.DefaultServiceDirectory.getService;
|
||||
|
||||
|
||||
@ -75,9 +77,15 @@ public class DcsBasedTapiConnectivityRpc implements TapiConnectivityService {
|
||||
try {
|
||||
TapiCreateConnectivityInputHandler input = new TapiCreateConnectivityInputHandler();
|
||||
input.setRpcInput(inputVar);
|
||||
// TODO validation check
|
||||
log.info("input SIPs: {}", input.getSips());
|
||||
|
||||
// check SIP validation
|
||||
if (!disjoint(getUsedSips(), input.getSips())) {
|
||||
log.error("check SIP validation : NG");
|
||||
return new RpcOutput(RpcOutput.Status.RPC_FAILURE, null);
|
||||
}
|
||||
log.debug("check SIP validation : OK");
|
||||
|
||||
List<TapiNepRef> nepRefs = input.getSips().stream()
|
||||
.map(sipId -> resolver.getNepRef(sipId))
|
||||
.collect(Collectors.toList());
|
||||
@ -116,7 +124,6 @@ public class DcsBasedTapiConnectivityRpc implements TapiConnectivityService {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Service interface of deleteConnectivityService.
|
||||
*
|
||||
@ -195,7 +202,6 @@ public class DcsBasedTapiConnectivityRpc implements TapiConnectivityService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Service interface of getConnectivityServiceDetails.
|
||||
*
|
||||
@ -249,4 +255,23 @@ public class DcsBasedTapiConnectivityRpc implements TapiConnectivityService {
|
||||
return new RpcOutput(RpcOutput.Status.RPC_FAILURE, null);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Get used SIPs.
|
||||
*
|
||||
* @return list of used SIPs
|
||||
*/
|
||||
private List<String> getUsedSips() {
|
||||
TapiContextHandler handler = TapiContextHandler.create();
|
||||
handler.read();
|
||||
|
||||
List<String> usedSips = new ArrayList();
|
||||
handler.getConnectivityServices().stream()
|
||||
.forEach(connectivityService -> connectivityService.getEndPoint().stream()
|
||||
.forEach(endPoint -> usedSips.add(endPoint.serviceInterfacePoint()
|
||||
.serviceInterfacePointUuid().toString())));
|
||||
|
||||
log.debug("usedSips: {}", usedSips);
|
||||
return usedSips;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user