clean test environment
[transportpce.git] / tests / stubpce / src / main / java / org / opendaylight / transportpce / stubpce / impl / StubpceImpl.java
diff --git a/tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceImpl.java b/tests/stubpce/src/main/java/org/opendaylight/transportpce/stubpce/impl/StubpceImpl.java
deleted file mode 100644 (file)
index 6240693..0000000
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * Copyright © 2017 Orange, Inc. and others.  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.transportpce.stubpce.impl;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.MoreExecutors;
-import java.util.Iterator;
-import java.util.SortedSet;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.transportpce.stubpce.CheckCoherencyHardSoft;
-import org.opendaylight.transportpce.stubpce.SendingPceRPCs;
-import org.opendaylight.transportpce.stubpce.StubpceCompliancyCheck;
-import org.opendaylight.transportpce.stubpce.StubpceTxRxCheck;
-import org.opendaylight.transportpce.stubpce.topology.PathDescriptionsOrdered;
-import org.opendaylight.transportpce.stubpce.topology.SuperNodePath;
-import org.opendaylight.transportpce.stubpce.topology.Topology;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.CancelResourceReserveInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.CancelResourceReserveOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.CancelResourceReserveOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.PathComputationRequestInput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.PathComputationRequestOutput;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.PathComputationRequestOutputBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.PathDescriptionList;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.PathDescriptionListBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.ServicePathList;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.ServicePathListBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.ServicePathRpcResult;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.ServicePathRpcResultBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.StubpceService;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.path.description.list.PathDescriptions;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.path.description.list.PathDescriptionsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.path.description.list.PathDescriptionsKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.service.path.list.ServicePaths;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.service.path.list.ServicePathsBuilder;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.service.path.list.ServicePathsKey;
-import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.stubpce.rev170426.service.path.rpc.result.PathDescriptionBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.configuration.response.common.ConfigurationResponseCommonBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.ServiceList;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.Services;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesBuilder;
-import org.opendaylight.yang.gen.v1.http.org.openroadm.service.rev161014.service.list.ServicesKey;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.RpcStatusEx;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.ServicePathNotificationTypes;
-import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.service.path.rpc.result.PathDescription;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Class to implement StubpceService StubpceListener.
- * @author <a href="mailto:martial.coulibaly@gfi.com">Martial Coulibaly</a> on
- *         behalf of Orange
- */
-
-public class StubpceImpl implements StubpceService {
-    /** Logging. */
-    private static final Logger LOG = LoggerFactory.getLogger(StubpceImpl.class);
-    /** Permit to access database. */
-    private DataBroker db;
-    /** check service sdnc-request-header compliancy. */
-    private StubpceCompliancyCheck compliancyCheck;
-    /** check missing info on Tx/Rx for A/Z end. */
-    private StubpceTxRxCheck txrxCheck;
-    /** check coherency between hard and soft constraints. */
-    private CheckCoherencyHardSoft checkCoherencyHardSoft;
-    private NotificationPublishService notificationPublishService;
-    private ServicePathRpcResult notification;
-    private PathDescriptionBuilder pathDescriptionBuilder;
-    private SendingPceRPCs sendingPCE;
-    private final ListeningExecutorService executor = MoreExecutors
-            .listeningDecorator(Executors.newFixedThreadPool(10));
-
-    public StubpceImpl(NotificationPublishService notificationPublishService, DataBroker databroker) {
-        this.notificationPublishService = notificationPublishService;
-        this.db = databroker;
-        this.pathDescriptionBuilder = null;
-        if (initializePathDescriptionList(databroker)) {
-            fillPathDesciptionList();
-        }
-        initializeServicePathList(databroker);
-        /*if (initializeServicePathList(databroker)) {
-            fillServicePathList();
-        }*/
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<CancelResourceReserveOutput>>
-            cancelResourceReserve(CancelResourceReserveInput input) {
-        LOG.info("RPC cancelResourceReserve  request received");
-        String message = "";
-        String responseCode = "";
-        ConfigurationResponseCommonBuilder configurationResponseCommon = null;
-        String serviceName = input.getServiceName();
-        LOG.info("serviceName : {}", serviceName);
-        if (serviceName != null) {
-            this.sendingPCE = new SendingPceRPCs(input,this.db,this.executor);
-            FutureCallback<Boolean> pceCallback = new FutureCallback<Boolean>() {
-                String message = "";
-                ServicePathRpcResult notification = null;
-
-                @Override
-                public void onFailure(Throwable arg0) {
-                    LOG.error("Cancel resource failed : {}", arg0);
-                    this.notification = new ServicePathRpcResultBuilder()
-                            .setNotificationType(ServicePathNotificationTypes.CancelResourceReserve)
-                            .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-                            .setStatusMessage("Cancel resource request failed  : " + arg0.getMessage()).build();
-                    try {
-                        StubpceImpl.this.notificationPublishService.putNotification(this.notification);
-                    } catch (InterruptedException e) {
-                        LOG.info("notification offer rejected : {}", e);
-                    }
-                }
-
-                @Override
-                public void onSuccess(Boolean response) {
-                    LOG.info("response : {}", response);
-                    if (response) {
-                        this.message = "Resource cancelled !";
-                        this.notification = new ServicePathRpcResultBuilder()
-                                .setNotificationType(ServicePathNotificationTypes.CancelResourceReserve)
-                                .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Successful)
-                                .setStatusMessage(this.message)
-                                .build();
-                    } else {
-                        this.message = StubpceImpl.this.sendingPCE.getError();
-                        this.notification = new ServicePathRpcResultBuilder()
-                                .setNotificationType(ServicePathNotificationTypes.CancelResourceReserve)
-                                .setServiceName("")
-                                .setStatus(RpcStatusEx.Failed).setStatusMessage(this.message)
-                                .build();
-                        this.message = "Cancel request failed !";
-                    }
-                    LOG.info(this.notification.toString());
-                    try {
-                        StubpceImpl.this.notificationPublishService.putNotification(this.notification);
-                    } catch (InterruptedException e) {
-                        LOG.info("notification offer rejected : {}", e);
-                    }
-                    LOG.info(this.message);
-                }
-            };
-            ListenableFuture<Boolean> pce = this.sendingPCE.cancelResourceReserve();
-            Futures.addCallback(pce, pceCallback, this.executor);
-            LOG.info("Cancel Resource Request in progress ...");
-            configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-                    .setAckFinalIndicator("No")
-                    .setRequestId(input.getServiceHandlerHeader().getRequestId())
-                    .setResponseMessage("Service compliant, Cancel resource request in progress...")
-                    .setResponseCode("200");
-
-            CancelResourceReserveOutputBuilder output = new CancelResourceReserveOutputBuilder()
-                    .setConfigurationResponseCommon(configurationResponseCommon.build());
-            return RpcResultBuilder.success(output.build()).buildFuture();
-        } else {
-            message = "serviceName / requestId is not correct !";
-            responseCode = "500";
-            this.notification = new ServicePathRpcResultBuilder()
-                    .setNotificationType(ServicePathNotificationTypes.CancelResourceReserve)
-                    .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-                    .setStatusMessage(message).build();
-            try {
-                this.notificationPublishService.putNotification(this.notification);
-            } catch (InterruptedException e) {
-                LOG.info("notification offer rejected : {}", e);
-            }
-        }
-        configurationResponseCommon = new ConfigurationResponseCommonBuilder();
-        configurationResponseCommon.setAckFinalIndicator("Yes")
-        .setRequestId(input.getServiceHandlerHeader().getRequestId())
-        .setResponseMessage(message)
-        .setResponseCode(responseCode).build();
-        CancelResourceReserveOutputBuilder output = new CancelResourceReserveOutputBuilder();
-        output.setConfigurationResponseCommon(configurationResponseCommon.build());
-        return RpcResultBuilder.success(output.build()).buildFuture();
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<PathComputationRequestOutput>>
-            pathComputationRequest(PathComputationRequestInput input) {
-        LOG.info("RPC pathcomputation request received");
-        String message = "";
-        String responseCode = "";
-        boolean coherencyHardSoft = false;
-        boolean commonId = true;
-        ConfigurationResponseCommonBuilder configurationResponseCommon = null;
-        this.compliancyCheck = new StubpceCompliancyCheck(input.getServiceName(), input.getServiceHandlerHeader());
-        if (this.compliancyCheck.check(false, true)) {
-            LOG.info("Service compliant !");
-            /**
-             * If compliant, service-request parameters are verified in order to
-             * check if there is no missing parameter that prevents calculating
-             * a path and implement a service.
-             */
-            LOG.info("checking Tx/Rx Info for AEnd ...");
-            this.txrxCheck = new StubpceTxRxCheck(input.getServiceAEnd(), 1);
-            if (this.txrxCheck.check()) {
-                LOG.info("Tx/Rx Info for AEnd checked !");
-                LOG.info("checking Tx/Rx Info for ZEnd ...");
-                this.txrxCheck = new StubpceTxRxCheck(input.getServiceZEnd(), 2);
-                if (this.txrxCheck.check()) {
-                    LOG.info("Tx/Rx Info for ZEnd checked !");
-                    /**
-                     * If OK, common-id is verified in order to see if there is
-                     * no routing policy provided. If yes, the routing
-                     * constraints of the policy are recovered and coherency
-                     * with hard/soft constraints provided in the input of the
-                     * RPC.
-                     */
-                    if ((input.getHardConstraints() != null) || (input.getSoftConstraints() != null)) {
-                        LOG.info("Constraints specified !");
-                        this.checkCoherencyHardSoft = new CheckCoherencyHardSoft(input.getHardConstraints(),
-                                input.getSoftConstraints());
-                        if (this.checkCoherencyHardSoft.check()) {
-                            LOG.info("hard/soft constraints coherent !");
-                            coherencyHardSoft = true;
-                        } else {
-                            LOG.info("hard/soft constraints are not coherent !");
-                            message = "hard/soft constraints are not coherent !";
-                            responseCode = "500";
-                        }
-                    } else {
-                        commonId = false;
-                    }
-                    if (!commonId || (commonId && coherencyHardSoft)) {
-                        this.notification = new ServicePathRpcResultBuilder()
-                                .setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
-                                .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Pending)
-                                .setStatusMessage("Service compliant, submitting pathComputation Request ...").build();
-                        try {
-                            this.notificationPublishService.putNotification(this.notification);
-                        } catch (InterruptedException e) {
-                            LOG.info("notification offer rejected : {}", e);
-                        }
-                        this.sendingPCE = new SendingPceRPCs(input,this.db,this.executor);
-                        FutureCallback<Boolean> pceCallback = new FutureCallback<Boolean>() {
-                            String message = "";
-                            ServicePathRpcResult notification = null;
-
-                            @Override
-                            public void onFailure(Throwable arg0) {
-                                LOG.error("Failure message : {}", arg0.toString());
-                                LOG.error("Path calculation failed !");
-                                this.notification = new ServicePathRpcResultBuilder()
-                                        .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-                                        .setStatusMessage("PCR Request failed  : " + arg0.getMessage()).build();
-                                try {
-                                    StubpceImpl.this.notificationPublishService.putNotification(this.notification);
-                                } catch (InterruptedException e) {
-                                    LOG.info("notification offer rejected : {}", e);
-                                }
-                            }
-
-                            @Override
-                            public void onSuccess(Boolean response) {
-                                LOG.info("response : {}", response);
-                                if (response) {
-                                    this.message = "Path Computated !";
-                                    ServicePathRpcResultBuilder tmp = new ServicePathRpcResultBuilder()
-                                            .setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
-                                            .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Successful)
-                                            .setStatusMessage(this.message);
-                                    StubpceImpl.this.pathDescriptionBuilder =
-                                        StubpceImpl.this.sendingPCE.getPathDescription();
-                                    if (StubpceImpl.this.pathDescriptionBuilder != null) {
-                                        PathDescription pathDescription = new org.opendaylight.yang.gen.v1.http.org
-                                            .transportpce.b.c._interface.servicepath.rev170426.service.path
-                                            .rpc.result.PathDescriptionBuilder()
-                                            .setAToZDirection(
-                                                StubpceImpl.this.pathDescriptionBuilder.getAToZDirection())
-                                            .setZToADirection(
-                                                StubpceImpl.this.pathDescriptionBuilder.getZToADirection())
-                                            .build();
-                                        tmp.setPathDescription(new PathDescriptionBuilder()
-                                                .setAToZDirection(pathDescription.getAToZDirection())
-                                                .setZToADirection(pathDescription.getZToADirection())
-                                                .build());
-                                    }
-                                    this.notification = tmp.build();
-                                } else {
-                                    this.message = StubpceImpl.this.sendingPCE.getError();
-                                    this.notification = new ServicePathRpcResultBuilder()
-                                            .setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
-                                            .setServiceName("")
-                                            .setStatus(RpcStatusEx.Failed).setStatusMessage(this.message)
-                                            .build();
-                                    this.message = "Path not calculated!";
-                                }
-                                try {
-                                    StubpceImpl.this.notificationPublishService.putNotification(this.notification);
-                                } catch (InterruptedException e) {
-                                    LOG.info("notification offer rejected : {}", e);
-                                }
-                                LOG.info(this.message);
-                            }
-                        };
-                        ListenableFuture<Boolean> pce = this.sendingPCE.pathComputation();
-                        Futures.addCallback(pce, pceCallback, this.executor);
-                        LOG.info("PathComputation Request in progress ...");
-                        configurationResponseCommon = new ConfigurationResponseCommonBuilder()
-                                .setAckFinalIndicator("No")
-                                .setRequestId(input.getServiceHandlerHeader().getRequestId())
-                                .setResponseMessage("Service compliant, Path calculating in progress...")
-                                .setResponseCode("200");
-
-                        PathComputationRequestOutputBuilder output = new PathComputationRequestOutputBuilder()
-                                .setConfigurationResponseCommon(configurationResponseCommon.build());
-                        return RpcResultBuilder.success(output.build()).buildFuture();
-                    }
-
-                } else {
-                    message = this.txrxCheck.getMessage();
-                    responseCode = "500";
-                }
-            } else {
-                message = this.txrxCheck.getMessage();
-                responseCode = "500";
-            }
-        } else {
-            message = this.compliancyCheck.getMessage();
-            responseCode = "500";
-            this.notification = new ServicePathRpcResultBuilder()
-                    .setNotificationType(ServicePathNotificationTypes.PathComputationRequest)
-                    .setServiceName(input.getServiceName()).setStatus(RpcStatusEx.Failed)
-                    .setStatusMessage("Service not compliant : " + message).build();
-            try {
-                this.notificationPublishService.putNotification(this.notification);
-            } catch (InterruptedException e) {
-                LOG.info("notification offer rejected : {}", e);
-            }
-        }
-        configurationResponseCommon = new ConfigurationResponseCommonBuilder();
-        configurationResponseCommon.setAckFinalIndicator("Yes")
-        .setRequestId(input.getServiceHandlerHeader().getRequestId())
-        .setResponseMessage(message)
-        .setResponseCode(responseCode).build();
-        PathComputationRequestOutputBuilder output = new PathComputationRequestOutputBuilder();
-        output.setConfigurationResponseCommon(configurationResponseCommon.build());
-        return RpcResultBuilder.success(output.build()).buildFuture();
-
-    }
-
-    /**
-     * Initialize PathDescriptionList Structure on DataStore.
-     *
-     * @param DataBroker
-     *            Access DataStore
-     */
-    private boolean initializePathDescriptionList(DataBroker dataBroker) {
-        Boolean result = true;
-        LOG.info("Preparing to initialize the PathDescription List");
-        WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
-        InstanceIdentifier<PathDescriptionList> iid = InstanceIdentifier.create(PathDescriptionList.class);
-        PathDescriptionList pathDescriptionList = new PathDescriptionListBuilder().build();
-        transaction.put(LogicalDatastoreType.OPERATIONAL, iid, pathDescriptionList);
-        Future<Void> future = transaction.submit();
-        try {
-            Futures.getChecked(future, ExecutionException.class);
-        } catch (ExecutionException e) {
-            LOG.error("Failed to create PathDescription List");
-            result = false;
-        }
-        return result;
-    }
-
-    /**
-     * Initialize ServicePathList Structure on DataStore.
-     *
-     * @param DataBroker
-     *            Access DataStore
-     * @return <code>true</code> if ok, <code>false</code> else
-     */
-    private boolean initializeServicePathList(DataBroker dataBroker) {
-        Boolean result = true;
-        LOG.info("Preparing to initialize the ServicePathList registry");
-        WriteTransaction transaction = dataBroker.newWriteOnlyTransaction();
-        InstanceIdentifier<ServicePathList> iid = InstanceIdentifier.create(ServicePathList.class);
-        ServicePathList servicePathList = new ServicePathListBuilder().build();
-        transaction.put(LogicalDatastoreType.OPERATIONAL, iid, servicePathList);
-        Future<Void> future = transaction.submit();
-        try {
-            Futures.getChecked(future, ExecutionException.class);
-        } catch (ExecutionException e) {
-            LOG.error("Failed to create ServicePathList List : {}", e.toString());
-            result = false;
-        }
-        return result;
-    }
-
-    /**
-     * fill PathDescriptionList
-     * with direct paths and
-     * indirect paths.
-     */
-    private void fillPathDesciptionList() {
-        LOG.info("filling PathDescription List...");
-        Topology topo = new Topology();
-        topo.start();
-        LOG.info("Network : {}", topo.getNetwork());
-        SuperNodePath superNodePath = new SuperNodePath(topo.getNetwork());
-        String aend = "NodeA";
-        String zend = "NodeZ";
-        superNodePath.run(aend, zend);
-        fill(superNodePath.getDirectPathDesc(aend, zend, superNodePath.getPaths()));
-        fill(superNodePath.getIndirectPathDesc(aend, zend, superNodePath.getPaths()));
-    }
-
-    /**
-     * fill datastore with
-     * Pathdescriptions List.
-     *
-     * @param sortedSet PathDescriptionsOrdered List
-     */
-    private void fill(SortedSet<PathDescriptionsOrdered> sortedSet) {
-        InstanceIdentifier<PathDescriptions> iid;
-        WriteTransaction writeTx;
-        Future<Void> future;
-        if (!sortedSet.isEmpty()) {
-            Iterator<PathDescriptionsOrdered> it = sortedSet.iterator();
-            while (it.hasNext()) {
-                PathDescriptions pathDesc = it.next().getPathDescriptions();
-                if (pathDesc != null) {
-                    iid = InstanceIdentifier.create(PathDescriptionList.class)
-                            .child(PathDescriptions.class, new PathDescriptionsKey(pathDesc.getPathName()));
-                    writeTx = this.db.newWriteOnlyTransaction();
-                    writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, pathDesc);
-                    future = writeTx.submit();
-                    try {
-                        Futures.getChecked(future, ExecutionException.class);
-                    } catch (ExecutionException e) {
-                        LOG.error("Failed to write PathDescriptions to PathDescriptionsList : {}", e.toString());
-                    }
-                } else {
-                    LOG.error("PathDescriptions gets is null !");
-                }
-            }
-        } else {
-            LOG.info("PathDescriptions List is empty !");
-        }
-    }
-
-    /**
-     * read Service from ServiceList DataStore.
-     *
-     * @param serviceName
-     *            Name of Service
-     *
-     * @return <code>Services</code>
-     */
-    @SuppressWarnings("unused")
-    private Services readServiceList(String serviceName) {
-        Services result = null;
-        ReadOnlyTransaction readTx = this.db.newReadOnlyTransaction();
-        InstanceIdentifier<Services> iid = InstanceIdentifier.create(ServiceList.class).child(Services.class,
-                new ServicesKey(serviceName));
-        Future<Optional<Services>> future = readTx.read(LogicalDatastoreType.OPERATIONAL,iid);
-        Optional<Services> optional = Optional.absent();
-        try {
-            optional = Futures.getChecked(future, ExecutionException.class);
-        } catch (ExecutionException e) {
-            LOG.error("Reading service failed:", e);
-        }
-        if (optional.isPresent()) {
-            LOG.debug("Service '{}' present !", serviceName);
-            result = new ServicesBuilder(optional.get()).build();
-        }
-        return result;
-    }
-
-    /**
-     * read ServicePath Service from ServicePathList DataStore.
-     *
-     * @param serviceName
-     *            Name of ServicePath
-     *
-     * @return <code>Services</code>
-     */
-    @SuppressWarnings("unused")
-    private ServicePaths readServicePathList(String serviceName) {
-        ServicePaths result = null;
-        ReadOnlyTransaction readTx = this.db.newReadOnlyTransaction();
-        InstanceIdentifier<ServicePaths> iid = InstanceIdentifier.create(ServicePathList.class)
-                .child(ServicePaths.class, new ServicePathsKey(serviceName));
-        Future<Optional<ServicePaths>> future = readTx.read(LogicalDatastoreType.OPERATIONAL,iid);
-        Optional<ServicePaths> optional = Optional.absent();
-        try {
-            optional = Futures.getChecked(future, ExecutionException.class);
-        } catch (ExecutionException e) {
-            LOG.error("Reading service failed:", e);
-        }
-        if (optional.isPresent()) {
-            LOG.debug("Service '{}' present !", serviceName);
-            result = new ServicePathsBuilder(optional.get()).build();
-        }
-        return result;
-    }
-
-    /**
-     * read PathDescription information from PathDescriptionList.
-     *
-     * @param pathName
-     *            Name of PathDescription
-     *
-     * @return <code>PathDescriptions</code>
-     */
-    @SuppressWarnings("unused")
-    private PathDescriptions readPathDescriptionList(String pathName) {
-        PathDescriptions result = null;
-        ReadOnlyTransaction readTx = this.db.newReadOnlyTransaction();
-        InstanceIdentifier<PathDescriptions> iid = InstanceIdentifier.create(PathDescriptionList.class)
-                .child(PathDescriptions.class, new PathDescriptionsKey(pathName));
-        Future<Optional<PathDescriptions>> future = readTx.read(LogicalDatastoreType.OPERATIONAL,iid);
-        Optional<PathDescriptions> optional = Optional.absent();
-        try {
-            optional = Futures.getChecked(future, ExecutionException.class);
-        } catch (ExecutionException e) {
-            LOG.error("Reading service failed:", e);
-        }
-        if (optional.isPresent()) {
-            LOG.debug("PathDescritions '{}' present !", pathName);
-            result = new PathDescriptionsBuilder(optional.get()).build();
-        }
-        return result;
-    }
-
-    /**
-     * register ServicePath Service to ServicePathList with PathDescription
-     * information.
-     *
-     * @param input
-     *            PathComputationRequestInput
-     * @return String operations result, null if ok or not otherwise
-     */
-    @SuppressWarnings("unused")
-    private String writeServicePathList(PathComputationRequestInput input) {
-        String serviceName = input.getServiceName();
-        LOG.debug("Write ServicePath '{}' Service", serviceName);
-        String result = null;
-        LOG.debug("Writing '{}' ServicePath", serviceName);
-        InstanceIdentifier<ServicePaths> iid = InstanceIdentifier.create(ServicePathList.class)
-                .child(ServicePaths.class, new ServicePathsKey(serviceName));
-
-        org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service
-            .path.PathDescriptionBuilder path = new org.opendaylight.yang.gen.v1.http.org.transportpce
-            .b.c._interface.service.types.rev170426.service.path.PathDescriptionBuilder();
-        path.setAToZDirection(this.pathDescriptionBuilder.getAToZDirection());
-        path.setZToADirection(this.pathDescriptionBuilder.getZToADirection());
-        ServicePaths service = new ServicePathsBuilder().setServicePathName(input.getServiceName())
-                .setSoftConstraints(input.getSoftConstraints()).setHardConstraints(input.getHardConstraints())
-                .setPathDescription(path.build()).build();
-        WriteTransaction writeTx = this.db.newWriteOnlyTransaction();
-        writeTx.put(LogicalDatastoreType.OPERATIONAL, iid, service);
-        Future<Void> future = writeTx.submit();
-        try {
-            Futures.getChecked(future, ExecutionException.class);
-            result = null;
-        } catch (ExecutionException e) {
-            LOG.error("Failed to write service to Service List");
-            result = "Failed to write service to Service List";
-        }
-        return result;
-    }
-
-    public PathDescriptionBuilder getPathDescriptionBuilder() {
-        return this.pathDescriptionBuilder;
-    }
-
-    public void setPathDescriptionBuilder(PathDescriptionBuilder pathDescriptionBuilder) {
-        this.pathDescriptionBuilder = pathDescriptionBuilder;
-    }
-}