package org.opendaylight.transportpce.tapi.connectivity;
import com.google.common.util.concurrent.ListenableFuture;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public ListenableFuture<RpcResult<GetConnectivityServiceDetailsOutput>> getConnectivityServiceDetails(
GetConnectivityServiceDetailsInput input) {
// TODO Auto-generated method stub
- Uuid serviceUuid = new Uuid(input.getServiceIdOrName());
+ Uuid serviceUuid = getUuidFromIput(input.getServiceIdOrName());
ConnectivityService service = this.tapiContext.getConnectivityService(serviceUuid);
if (service == null) {
LOG.error("Service {} doesnt exist in tapi context", input.getServiceIdOrName());
public ListenableFuture<RpcResult<GetConnectionDetailsOutput>> getConnectionDetails(
GetConnectionDetailsInput input) {
// TODO Auto-generated method stub
- Uuid connectionUuid = new Uuid(UUID.nameUUIDFromBytes(input.getConnectionIdOrName()
- .getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid connectionUuid = getUuidFromIput(input.getConnectionIdOrName());
Connection connection = this.tapiContext.getConnection(connectionUuid);
if (connection == null) {
LOG.error("Connection {} doesnt exist in tapi context", input.getConnectionIdOrName());
DeleteConnectivityServiceInput input) {
//TODO Auto-generated method stub
// TODO add try
- Uuid serviceUuid = new Uuid(input.getServiceIdOrName());
- this.tapiContext.deleteConnectivityService(serviceUuid);
- ListenableFuture<RpcResult<ServiceDeleteOutput>> output =
- this.serviceHandler.serviceDelete(new ServiceDeleteInputBuilder()
- .setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder()
- .setServiceName(input.getServiceIdOrName())
- .setTailRetention(ServiceDeleteReqInfo.TailRetention.No)
- .build())
- .setSdncRequestHeader(new SdncRequestHeaderBuilder()
- .setRequestId("request-1")
- .setRpcAction(RpcActions.ServiceDelete)
- .setNotificationUrl("notification url")
- .setRequestSystemId("appname")
- .build())
- .build());
- if (output == null) {
- return RpcResultBuilder.<DeleteConnectivityServiceOutput>failed().withError(RpcError.ErrorType.RPC,
- "Failed to delete Link").buildFuture();
+ if (input.getServiceIdOrName() != null) {
+ try {
+ Uuid serviceUuid = getUuidFromIput(input.getServiceIdOrName());
+ this.tapiContext.deleteConnectivityService(serviceUuid);
+ ListenableFuture<RpcResult<ServiceDeleteOutput>> output =
+ this.serviceHandler.serviceDelete(new ServiceDeleteInputBuilder()
+ .setServiceDeleteReqInfo(new ServiceDeleteReqInfoBuilder()
+ .setServiceName(input.getServiceIdOrName())
+ .setTailRetention(ServiceDeleteReqInfo.TailRetention.No)
+ .build())
+ .setSdncRequestHeader(new SdncRequestHeaderBuilder()
+ .setRequestId("request-1")
+ .setRpcAction(RpcActions.ServiceDelete)
+ .setNotificationUrl("notification url")
+ .setRequestSystemId("appname")
+ .build())
+ .build());
+ RpcResult<ServiceDeleteOutput> rpcResult = output.get();
+ if (!rpcResult.getResult().getConfigurationResponseCommon().getResponseCode()
+ .equals(ResponseCodes.RESPONSE_FAILED)) {
+ LOG.info("Service is being deleted and devices are being rolled back");
+ return RpcResultBuilder.success(new DeleteConnectivityServiceOutputBuilder().build()).buildFuture();
+ }
+ LOG.error("Failed to delete service. Deletion process failed");
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.error("Failed to delete service.", e);
+ }
}
- LOG.info("Service is being deleted and devices are being rolled back");
- return RpcResultBuilder.success(new DeleteConnectivityServiceOutputBuilder().build()).buildFuture();
+ return RpcResultBuilder.<DeleteConnectivityServiceOutput>failed().withError(RpcError.ErrorType.RPC,
+ "Failed to delete Service").buildFuture();
}
@Override
public ListenableFuture<RpcResult<GetConnectionEndPointDetailsOutput>> getConnectionEndPointDetails(
GetConnectionEndPointDetailsInput input) {
// TODO Auto-generated method stub
- Uuid topoUuid = new Uuid(UUID.nameUUIDFromBytes(input.getTopologyIdOrName()
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid nodeUuid = new Uuid(UUID.nameUUIDFromBytes(input.getNodeIdOrName()
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid nepUuid = new Uuid(UUID.nameUUIDFromBytes(input.getNepIdOrName()
- .getBytes(Charset.forName("UTF-8"))).toString());
- Uuid cepUuid = new Uuid(UUID.nameUUIDFromBytes(input.getCepIdOrName()
- .getBytes(Charset.forName("UTF-8"))).toString());
+ Uuid topoUuid = getUuidFromIput(input.getTopologyIdOrName());
+ Uuid nodeUuid = getUuidFromIput(input.getNodeIdOrName());
+ Uuid nepUuid = getUuidFromIput(input.getNepIdOrName());
+ Uuid cepUuid = getUuidFromIput(input.getCepIdOrName());
ConnectionEndPoint cep = this.tapiContext.getTapiCEP(topoUuid, nodeUuid, nepUuid, cepUuid);
if (cep == null) {
LOG.error("Cep doesnt exist in tapi context");
return RpcResultBuilder.success(new GetConnectionEndPointDetailsOutputBuilder().setConnectionEndPoint(
new ConnectionEndPointBuilder(cep).build()).build()).buildFuture();
}
+
+ private Uuid getUuidFromIput(String serviceIdOrName) {
+ try {
+ UUID.fromString(serviceIdOrName);
+ LOG.info("Given attribute {} is a UUID", serviceIdOrName);
+ return new Uuid(serviceIdOrName);
+ } catch (IllegalArgumentException e) {
+ LOG.info("Given attribute {} is not a UUID", serviceIdOrName);
+ return new Uuid(UUID.nameUUIDFromBytes(serviceIdOrName.getBytes(StandardCharsets.UTF_8)).toString());
+ }
+ }
}