Merge changes I082f82ac,I951224b0,Icecd1b21,Ifafa74b6,I9b384c72, ...
authorGilles Thouenon <gilles.thouenon@orange.com>
Wed, 1 Mar 2023 10:19:10 +0000 (10:19 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 1 Mar 2023 10:19:10 +0000 (10:19 +0000)
* changes:
  Speed up functional tests execution
  Clean maven files
  Bump upstream dependencies to Argon
  Use NetworkTransactionService to access to the DS
  Remove close method from RequestProcessor
  Reimplement RequestProcessor
  Remove some forced transaction closure
  Change getter in ConvertORTopoToTapiFullTopo
  Update tapi device notification functional test

59 files changed:
api/pom.xml
artifacts/pom.xml
common/pom.xml
common/src/main/java/org/opendaylight/transportpce/common/InstanceIdentifiers.java
common/src/main/java/org/opendaylight/transportpce/common/catalog/CatalogUtils.java
common/src/main/java/org/opendaylight/transportpce/common/network/NetworkTransactionImpl.java
common/src/main/java/org/opendaylight/transportpce/common/network/NetworkTransactionService.java
common/src/main/java/org/opendaylight/transportpce/common/network/RequestProcessor.java
dmaap-client/pom.xml
features/features-transportpce/pom.xml
features/odl-transportpce-dmaap-client/pom.xml
features/odl-transportpce-inventory/pom.xml
features/odl-transportpce-nbinotifications/pom.xml
features/odl-transportpce-swagger/pom.xml
features/odl-transportpce-tapi/pom.xml
features/odl-transportpce/pom.xml
features/pom.xml
inventory/pom.xml
inventory/src/main/java/org/opendaylight/transportpce/inventory/listener/DeviceConfigListener.java
inventory/src/main/java/org/opendaylight/transportpce/inventory/listener/DeviceListener.java
karaf/pom.xml
lighty/pom.xml
nbinotifications/pom.xml
networkmodel/pom.xml
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/NetConfTopologyListener.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelService.java
networkmodel/src/main/java/org/opendaylight/transportpce/networkmodel/service/NetworkModelServiceImpl.java
networkmodel/src/test/java/org/opendaylight/transportpce/networkmodel/NetConfTopologyListenerTest.java
olm/pom.xml
pce/pom.xml
pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/GnpyTopoImpl.java
pce/src/main/java/org/opendaylight/transportpce/pce/gnpy/consumer/RequestMessageBodyWriter.java
pce/src/main/java/org/opendaylight/transportpce/pce/networkanalyzer/PceCalculation.java
pce/src/test/java/org/opendaylight/transportpce/pce/gnpy/GnpyUtilitiesImplTest.java
pom.xml
renderer/pom.xml
servicehandler/pom.xml
tapi/pom.xml
tapi/src/main/java/org/opendaylight/transportpce/tapi/listeners/TapiNetworkModelListenerImpl.java
tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/ConvertORTopoToTapiFullTopo.java
tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetconfTopologyListener.java
tapi/src/main/java/org/opendaylight/transportpce/tapi/topology/TapiNetworkModelServiceImpl.java
test-common/pom.xml
tests/transportpce_tests/1.2.1/test01_portmapping.py
tests/transportpce_tests/1.2.1/test02_topo_portmapping.py
tests/transportpce_tests/1.2.1/test03_topology.py
tests/transportpce_tests/1.2.1/test04_renderer_service_path_nominal.py
tests/transportpce_tests/2.2.1/test02_topo_portmapping.py
tests/transportpce_tests/2.2.1/test03_topology.py
tests/transportpce_tests/2.2.1/test04_otn_topology.py
tests/transportpce_tests/2.2.1/test05_flex_grid.py
tests/transportpce_tests/2.2.1/test07_otn_renderer.py
tests/transportpce_tests/2.2.1/test08_otn_sh_renderer.py
tests/transportpce_tests/2.2.1/test11_otn_end2end.py
tests/transportpce_tests/7.1/test02_otn_renderer.py
tests/transportpce_tests/7.1/test03_renderer_or_modes.py
tests/transportpce_tests/common/test_utils.py
tests/transportpce_tests/tapi/test02_full_topology.py
tests/transportpce_tests/tapi/test03_tapi_device_change_notifications.py

index 54d6d8489bd744408479b10dfaf2d0614e71e0d5..a477feb1ca69e52708d3cb67f91ce26ab44f0abb 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -22,7 +22,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -90,6 +90,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
       <artifactId>rfc8345-ietf-network-topology</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>yang-binding</artifactId>
+    </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
index 41e49a98a62c331b755707a44fc3f8cb9ef121e2..ea4f5b55cebb1cc26ce41141c09f4554044f75d8 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 9d961519c1430ba7a06f6cedc05878ad09ba65c1..7266c3ea3f77e32a4f2230eeaf2361fc1429f27e 100644 (file)
@@ -10,7 +10,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -20,7 +20,7 @@
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -35,7 +35,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>4.0.5</version>
+        <version>5.0.2</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
-      <artifactId>rfc6991-ietf-inet-types</artifactId>
+      <artifactId>rfc8345-ietf-network</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
-      <artifactId>rfc8345-ietf-network</artifactId>
+      <artifactId>rfc6991-ietf-inet-types</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
-      <artifactId>sal-netconf-connector</artifactId>
+      <artifactId>netconf-topology</artifactId>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
index d8d63d8001aea27daa7566c96209dc69dec3b7ff..cfb6b499576851f3690d825db0c08a542cb9e314 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.TpId;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.network.topology.topology.topology.types.TopologyNetconf;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.network.topology.topology.topology.types.TopologyNetconf;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
index 69769705805ae58e668c5e3150fa0212dd7107e8..aa172524b5eff54b63d7b61d1748392352640931 100644 (file)
@@ -144,8 +144,6 @@ public class CatalogUtils {
             } catch (InterruptedException | ExecutionException e) {
                 LOG.error("readMdSal: Error reading Operational Mode Catalog {} , Mode does not exist", omCatalogIid);
                 throw new RuntimeException("Operational mode not populated in Catalog : " + omCatalogIid + " :" + e);
-            } finally {
-                networkTransactionService.close();
             }
         } else {
             // In other cases, means the mode is a non OpenROADM specific Operational Mode
@@ -167,8 +165,6 @@ public class CatalogUtils {
             } catch (InterruptedException | ExecutionException e) {
                 LOG.error("readMdSal: Error reading Operational Mode Catalog {} , Mode does not exist", omCatalogIid);
                 throw new RuntimeException("Operational mode not populated in Catalog : " + omCatalogIid + " :" + e);
-            } finally {
-                networkTransactionService.close();
             }
         }
         if (maxRollOff == 0) {
@@ -236,8 +232,6 @@ public class CatalogUtils {
                 throw new RuntimeException(
                     "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                         + omCatalogIid + " :" + e);
-            } finally {
-                networkTransactionService.close();
             }
         } else {
             // In other cases, means the mode is a non OpenROADM specific Operational Mode
@@ -269,8 +263,6 @@ public class CatalogUtils {
                 throw new RuntimeException(
                     "readMdSal: Error reading from operational store, Operational Mode Catalog : " + omCatalogIid + " :"
                         + e);
-            } finally {
-                networkTransactionService.close();
             }
         }
         if (minOOBOsnrSingleChannelValue != null) {
@@ -334,8 +326,6 @@ public class CatalogUtils {
                 throw new RuntimeException(
                     "readMdSal: Error reading from operational store, Operational Mode Catalog : " + omCatalogIid + " :"
                         + e);
-            } finally {
-                networkTransactionService.close();
             }
         } else {
             // In other cases, means the mode is a non OpenROADM specific Operational Mode
@@ -361,8 +351,6 @@ public class CatalogUtils {
                 throw new RuntimeException(
                     "readMdSal: Error reading from operational store, Operational Mode Catalog : " + omCatalogIid + " :"
                         + e);
-            } finally {
-                networkTransactionService.close();
             }
         }
         if (penaltiesMap == null) {
@@ -502,7 +490,6 @@ public class CatalogUtils {
                     }
                     var orAddOM = omOptional.get();
                     LOG.debug("readMdSal: Operational Mode Catalog: omOptional.isPresent = true {}", orAddOM);
-                    networkTransactionService.close();
                     maxIntroducedCd = orAddOM.getMaxIntroducedCd().doubleValue();
                     // As per current OpenROADM Spec
                     //maxIntroducedPdl = orAddOM.getMaxIntroducedPdl().getValue().doubleValue();
@@ -517,8 +504,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
 
@@ -539,7 +524,6 @@ public class CatalogUtils {
                     }
                     var orDropOM = omOptional.get();
                     LOG.debug("readMdSal: Operational Mode Catalog: omOptional.isPresent = true {}", orDropOM);
-                    networkTransactionService.close();
                     maxIntroducedCd = orDropOM.getMaxIntroducedCd().doubleValue();
                     // As per current OpenROADM Spec
                     // maxIntroducedPdl = orDropOM.getMaxIntroducedPdl().getValue().doubleValue();
@@ -557,8 +541,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid1 + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
 
@@ -604,8 +586,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid2 + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
 
@@ -627,7 +607,6 @@ public class CatalogUtils {
                     }
                     var orAmpOM = omOptional.get();
                     LOG.debug("readMdSal: Operational Mode Catalog: omOptional.isPresent = true {}", orAmpOM);
-                    networkTransactionService.close();
                     maxIntroducedCd = orAmpOM.getMaxIntroducedCd().doubleValue();
                     // As per current OpenROADM Spec
                     // maxIntroducedPdl = orAmpOM.getMaxIntroducedPdl().getValue().doubleValue();
@@ -645,8 +624,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid3 + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
             default:
@@ -739,7 +716,6 @@ public class CatalogUtils {
                     }
                     var orAddOM = omOptional.get();
                     LOG.debug("readMdSal: Operational Mode Catalog: omOptional.isPresent = true {}", orAddOM);
-                    networkTransactionService.close();
                     var mask = orAddOM.getMaskPowerVsPin();
                     for (Map.Entry<MaskPowerVsPinKey, MaskPowerVsPin> pw : mask.entrySet()) {
                         if (spanLoss >= pw.getKey().getLowerBoundary().doubleValue()
@@ -758,8 +734,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
 
@@ -806,8 +780,6 @@ public class CatalogUtils {
                     throw new RuntimeException(
                         "readMdSal: Error reading from operational store, Operational Mode Catalog : "
                             + omCatalogIid2 + " :" + e);
-                } finally {
-                    networkTransactionService.close();
                 }
                 break;
 
@@ -867,14 +839,11 @@ public class CatalogUtils {
                 LOG.error("Operational Mode catalog is not filled");
                 return false;
             }
-            networkTransactionService.close();
             return true;
         } catch (InterruptedException | ExecutionException e) {
             LOG.error("readMdSal: Error reading Operational Mode Catalog, catalog not filled");
             throw new RuntimeException(
                 "readMdSal: Error reading from operational store, Operational Mode Catalog not filled" + e);
-        } finally {
-            networkTransactionService.close();
         }
     }
 
index 42132c96ebc8c8252987e642ce82377a56536ed0..10f1dafbb5328797daa73a8a2763148847706be0 100644 (file)
@@ -53,12 +53,6 @@ public final class NetworkTransactionImpl implements NetworkTransactionService {
         return requestProcessor.commit();
     }
 
-    @Override
-    public void close() {
-
-        requestProcessor.close();
-    }
-
     public <T extends DataObject> void merge(LogicalDatastoreType store,
         InstanceIdentifier<T> path, T data) {
         requestProcessor.merge(store, path, data);
index af75889fe4a9e82eb8cd47c23bdaea6ce9753f82..1b139d91ca0d0b80db90614d41f6f7e288764845 100644 (file)
@@ -33,8 +33,6 @@ public interface NetworkTransactionService {
 
     FluentFuture<? extends @NonNull CommitInfo> commit();
 
-    void close();
-
     /**
      * the Databroker related to NetworkTransactionService.
      * @return the Databroker related to NetworkTransactionService.
index b58961c8e998d19e4e5f0ca50f6c41c8bff2c89e..d3a61a69b7bbeb603c530c9d83567842c0f7dee4 100644 (file)
@@ -11,122 +11,125 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.ListenableFuture;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Optional;
+import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.binding.api.ReadTransaction;
+import org.opendaylight.mdsal.binding.api.WriteTransaction;
 import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@edu.umd.cs.findbugs.annotations.SuppressFBWarnings(value = "UL_UNRELEASED_LOCK_EXCEPTION_PATH",
+    justification = "This appears to be doing exactly the right thing with the finally-clause to release the lock")
 public class RequestProcessor {
 
     private static final Logger LOG = LoggerFactory.getLogger(RequestProcessor.class);
 
     private final DataBroker dataBroker;
-    private ReadWriteTransaction rwTx;
-    private ReentrantReadWriteLock lock;
-
+    private final ReentrantReadWriteLock rwL = new ReentrantReadWriteLock();
+    private final Lock readL = rwL.readLock();
+    private final Lock writeL = rwL.writeLock();
+    private Map<String, WriteTransaction> writeTrMap = new HashMap<>();
 
 
     public RequestProcessor(DataBroker dataBroker) {
         this.dataBroker = requireNonNull(dataBroker);
-        rwTx = dataBroker.newReadWriteTransaction();
-        lock = new ReentrantReadWriteLock();
         LOG.info("RequestProcessor instantiated");
-
     }
 
     public <T extends DataObject> ListenableFuture<Optional<T>> read(LogicalDatastoreType store,
             InstanceIdentifier<T> path) {
-
-        ListenableFuture<Optional<T>> result = null;
-        acquireReadLock();
-        LOG.debug("Number of threads in queue to read {}", lock.getQueueLength());
-        result = rwTx.read(store, path);
-
-        releaseReadLock();
-        return result;
+        ReadTransaction readTx = dataBroker.newReadOnlyTransaction();
+        String thread = Thread.currentThread().getName();
+        readL.lock();
+        LOG.debug("read locked {} by {}", store, thread);
+        try {
+            return readTx.read(store, path);
+        }
+        finally {
+            readTx.close();
+            readL.unlock();
+            LOG.debug("read after unlock - {}", thread);
+        }
     }
 
     public <T extends DataObject> void delete(LogicalDatastoreType store, InstanceIdentifier<?> path) {
-
-        acquireLock();
-        LOG.info("Number of delete requests waiting in queue :{}", lock.getQueueLength());
-        rwTx.delete(store, path);
+        String thread = Thread.currentThread().getName();
+        LOG.debug("delete - store, thread = {} - {}", store, thread);
+        writeL.lock();
+        LOG.debug("delete locked by {}", thread);
+        try {
+            if (!writeTrMap.containsKey(thread)) {
+                writeTrMap.put(thread, dataBroker.newWriteOnlyTransaction());
+            }
+            writeTrMap.get(thread).delete(store, path);
+        }
+        finally {
+            LOG.debug("delete before unlock - {}", thread);
+            writeL.unlock();
+            LOG.debug("delete after unlock1 - {}", Thread.currentThread().getName());
+            LOG.debug("delete after unlock2 - {}", thread);
+        }
     }
 
-
-    public <T extends DataObject> void put(LogicalDatastoreType store,
-        InstanceIdentifier<T> path, T data) {
-
-        acquireLock();
-        LOG.debug("Number of put requests waiting in queue :{}", lock.getQueueLength());
-        rwTx.put(store, path, data);
+    public <T extends DataObject> void put(LogicalDatastoreType store, InstanceIdentifier<T> path, T data) {
+        String thread = Thread.currentThread().getName();
+        writeL.lock();
+        LOG.debug("put locked {} by {}", store, thread);
+        try {
+            if (!writeTrMap.containsKey(thread)) {
+                writeTrMap.put(thread, dataBroker.newWriteOnlyTransaction());
+            }
+            writeTrMap.get(thread).put(store, path, data);
+        }
+        finally {
+            writeL.unlock();
+            LOG.debug("put after unlock - {}", thread);
+        }
     }
 
-
     public <T extends DataObject> void merge(LogicalDatastoreType store, InstanceIdentifier<T> path, T data) {
-
-        acquireLock();
-        LOG.debug("Number of merge requests waiting in queue :{}", lock.getQueueLength());
-        rwTx.merge(store, path, data);
-    }
-
-    public FluentFuture<? extends @NonNull CommitInfo> commit() {
-        acquireLock();
-        FluentFuture<? extends @NonNull CommitInfo> future = null;
-        future = rwTx.commit();
-        releaseLock();
-        resetRwTx();
-        return future;
-    }
-
-    public void close() {
-        releaseLock();
-    }
-
-    private void acquireLock() {
-        if (!lock.writeLock().isHeldByCurrentThread()) {
-            lock.writeLock().lock();
-            LOG.debug("Number of write lock requests waiting in queue :{}", lock.getQueueLength());
-            LOG.info("Write Lock acquired by : {}", Thread.currentThread().getName());
-            rwTx = resetRwTx();
-        } else {
-            LOG.debug("Lock already acquired by : {}", Thread.currentThread().getName());
+        String thread = Thread.currentThread().getName();
+        writeL.lock();
+        LOG.debug("merge locked {} by {}", store, thread);
+        try {
+            if (!writeTrMap.containsKey(thread)) {
+                writeTrMap.put(thread, dataBroker.newWriteOnlyTransaction());
+            }
+            writeTrMap.get(thread).merge(store, path, data);
         }
-    }
-
-    private void acquireReadLock() {
-        if (lock.getReadHoldCount() > 0) {
-            LOG.info("Read Lock already acquired by : {}", Thread.currentThread().getName());
-        } else {
-            lock.readLock().lock();
-            rwTx = resetRwTx();
-            LOG.info("Read Lock acquired by : {}", Thread.currentThread().getName());
+        finally {
+            writeL.unlock();
+            LOG.debug("merge after unlock - {}", thread);
         }
     }
 
-    private void releaseLock() {
-        if (lock.writeLock().isHeldByCurrentThread()) {
-            LOG.info("Write Lock released by : {}", Thread.currentThread().getName());
-            lock.writeLock().unlock();
+    public FluentFuture<? extends @NonNull CommitInfo> commit() {
+        String thread = Thread.currentThread().getName();
+        writeL.lock();
+        LOG.debug("commit locked by {}", thread);
+        try {
+            if (writeTrMap.containsKey(thread)) {
+                return writeTrMap.get(thread).commit();
+            } else {
+                LOG.warn("No write transaction available for thread {}", thread);
+                return FluentFutures.immediateNullFluentFuture();
+            }
+        }
+        finally {
+            writeTrMap.remove(thread);
+            writeL.unlock();
+            LOG.debug("commit after unlock - {}", thread);
         }
-    }
-
-    private void releaseReadLock() {
-        LOG.info("Read Lock released by : {}", Thread.currentThread().getName());
-        lock.readLock().unlock();
-    }
-
-    private ReadWriteTransaction resetRwTx() {
-        LOG.info("Resetting the read write transaction .....");
-        rwTx = dataBroker.newReadWriteTransaction();
-        return rwTx;
     }
 
     /**
index 627d4ac977b07456e46118181d56fa2b55d0c748..9868f208ffe542a888d15467c109476f5aec9c5a 100644 (file)
@@ -9,7 +9,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -20,7 +20,7 @@
   <description>client to send message to Dmaap message router</description>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
 
index 3a74244b198ccd1fd68db123d4490f19ed644f43..87cef643492f0dfc5d5e1bd892e93a49a317f180 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>feature-repo-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 9f85ca04e776a3dd39caae8f53dff5d4326c9df6..f23bbc9638fb3e9e4ded97d892a3b4aac810b712 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 7333dca3cfd1a69063099214e6df890fbe40e0a4..1fa07e10793a951e0c86b5d025621729ae682a91 100644 (file)
@@ -9,7 +9,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
@@ -20,9 +20,9 @@
   <name>OpenDaylight :: transportpce :: Inventory</name>
 
   <properties>
-    <mdsal.version>10.0.6</mdsal.version>
-    <netconf.version>4.0.5</netconf.version>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <mdsal.version>11.0.6</mdsal.version>
+    <netconf.version>5.0.2</netconf.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
     <transportpce.db.host>localhost:3306</transportpce.db.host>
     <transportpce.db.database>transportpce</transportpce.db.database>
     <transportpce.db.username>root</transportpce.db.username>
index cce8ce59969fbebfaebe0ce04f6e81c0e8f49f3d..2ce19aa90a2a92fbd9eb1efbffcea7bbd1ea0556 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 959f3ec1f372456d9585c5110eb5ca8c0991f71f..bf1359476b4c4557734644008e65f5853dfe0351 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
@@ -23,7 +23,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <name>OpenDaylight :: transportpce :: swagger</name>
 
   <properties>
-    <netconf.version>4.0.5</netconf.version>
+    <netconf.version>5.0.2</netconf.version>
     <configfile.directory>etc/opendaylight/karaf</configfile.directory>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
index b59724cc534d2b3d78fad7a4c9ad107585066de7..f80f8897cc0505ab8aef9c11b0933616b4fcaad4 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
@@ -23,9 +23,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <name>OpenDaylight :: transportpce :: tapi</name>
 
   <properties>
-    <mdsal.version>10.0.6</mdsal.version>
-    <netconf.version>4.0.5</netconf.version>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <mdsal.version>11.0.6</mdsal.version>
+    <netconf.version>5.0.2</netconf.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
 
@@ -41,7 +41,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>10.0.6</version>
+        <version>11.0.6</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index 20376a19e9f74bd91bd26b14ee601eef9beeaf86..c0c97c2a77c425e3ba871a4b7468ac4eedb43bb1 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
@@ -23,8 +23,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <name>OpenDaylight :: transportpce</name>
 
   <properties>
-    <netconf.version>4.0.5</netconf.version>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <netconf.version>5.0.2</netconf.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
     <configfile.directory>etc/opendaylight/karaf</configfile.directory>
     <skip.karaf.featureTest>false</skip.karaf.featureTest>
   </properties>
index b49489d267fd471d39bf9fd0aee2d98cb5eef4fd..1659f64544470914f0dc90a27174fada4dbdaf8a 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 58b1a1e54194a4c6bf09a18d3754e66dc2867819..7d86e09252fc5daccb1a470b7527bda247a550cd 100644 (file)
@@ -10,7 +10,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -20,7 +20,7 @@
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -35,7 +35,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>4.0.5</version>
+        <version>5.0.2</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.netconf</groupId>
+      <artifactId>netconf-topology</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
       <artifactId>sal-netconf-connector</artifactId>
index ae2bd2447300afe51024c5204476cdae5f68fcae..6e4ccfad917b3c13010d363236b1b1cdd86ce5a3 100644 (file)
@@ -18,9 +18,8 @@ import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.inventory.DeviceInventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,7 +55,7 @@ public class DeviceConfigListener implements DataTreeChangeListener<Node> {
             LOG.debug("nodeId {}", nodeId);
 
             NetconfNode netconfNode = rootNode.getDataAfter().augmentation(NetconfNode.class);
-            NetconfNodeConnectionStatus.ConnectionStatus connectionStatus =
+            ConnectionStatus connectionStatus =
                     netconfNode.getConnectionStatus();
             long count = netconfNode.getAvailableCapabilities().getAvailableCapability().stream()
                     .filter(cp -> cp.getCapability().contains(StringConstants.OPENROADM_DEVICE_MODEL_NAME))
@@ -89,7 +88,7 @@ public class DeviceConfigListener implements DataTreeChangeListener<Node> {
      */
     private void processModifiedSubtree(String nodeId, NetconfNode netconfNode, String openROADMversion)
             throws InterruptedException, ExecutionException {
-        NetconfNodeConnectionStatus.ConnectionStatus connectionStatus = netconfNode.getConnectionStatus();
+        ConnectionStatus connectionStatus = netconfNode.getConnectionStatus();
         /*long count = netconfNode.getAvailableCapabilities().getAvailableCapability().stream()
                 .filter(cp -> cp.getCapability().contains(StringConstants.OPENROADM_DEVICE_MODEL_NAME)).count();
         if (count < 1) {
index f64836c72deb5921f4eb02aaf22b98afb529199d..3ba26dfe48a82ecec611a87df8749a37241967d8 100644 (file)
@@ -17,9 +17,8 @@ import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.transportpce.common.StringConstants;
 import org.opendaylight.transportpce.inventory.DeviceInventory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,8 +49,7 @@ public class DeviceListener implements DataTreeChangeListener<Node> {
         for (DataTreeModification<Node> device : changesWithoutDefaultNetconfNode) {
             String nodeId = device.getRootNode().getDataAfter().key().getNodeId().getValue();
             NetconfNode netconfNode = device.getRootNode().getDataAfter().augmentation(NetconfNode.class);
-            NetconfNodeConnectionStatus.ConnectionStatus connectionStatus =
-                    netconfNode.getConnectionStatus();
+            ConnectionStatus connectionStatus = netconfNode.getConnectionStatus();
             long count = netconfNode.getAvailableCapabilities().getAvailableCapability().stream()
                     .filter(cp -> cp.getCapability().contains(StringConstants.OPENROADM_DEVICE_MODEL_NAME))
                     .count();
@@ -86,7 +84,7 @@ public class DeviceListener implements DataTreeChangeListener<Node> {
      */
     private void processModifiedSubtree(String nodeId, NetconfNode netconfNode, String openROADMversion)
             throws InterruptedException, ExecutionException {
-        NetconfNodeConnectionStatus.ConnectionStatus connectionStatus = netconfNode.getConnectionStatus();
+        ConnectionStatus connectionStatus = netconfNode.getConnectionStatus();
 
         long count = netconfNode.getAvailableCapabilities().getAvailableCapability().stream()
                 .filter(cp -> cp.getCapability().contains(StringConstants.OPENROADM_DEVICE_MODEL_NAME))
@@ -142,4 +140,4 @@ public class DeviceListener implements DataTreeChangeListener<Node> {
         return change.getRootNode().getDataBefore() != null && change.getRootNode().getDataAfter() == null
                 && ModificationType.DELETE.equals(change.getRootNode().getModificationType());
     }
-}
+}
\ No newline at end of file
index 5e8373813896063c51e992bd39c84694310ac526..2054182fa99c172429e9a77a198bb33b64bbda22 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 5e395b5bb3e3362a5249ea35edf9fc32395927cb..0da6a9637db84f89988a31b79789b7d02360a4fd 100644 (file)
@@ -25,7 +25,7 @@
     <application.attach.zip>true</application.attach.zip>
     <maven.deploy.skip>true</maven.deploy.skip>
     <transportpce.version>7.0.0-SNAPSHOT</transportpce.version>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
index 2bbd79f1d4995d7e094d2b835f9d12a127db65d8..51cc74009e2d35282d6ad8f59cfe6d1018585f89 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -22,7 +22,7 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
     <kafka.version>3.0.0</kafka.version>
   </properties>
 
   </dependencyManagement>
 
   <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.transportpce.models</groupId>
-      <artifactId>openroadm-common-10.1.0</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-service-10.1.0</artifactId>
     </dependency>
 
     <!-- Testing Dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.transportpce.models</groupId>
+      <artifactId>openroadm-common-10.1.0</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>test-common</artifactId>
index 73676f0aa32b7f143915151e54ca45e97053a3e3..2de87a9e1cd6b85175c31baf6000a781ea5bddfe 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
@@ -23,7 +23,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -38,21 +38,21 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <dependency>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yangtools-artifacts</artifactId>
-        <version>9.0.6</version>
+        <version>10.0.3</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>10.0.6</version>
+        <version>11.0.6</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>4.0.5</version>
+        <version>5.0.2</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
@@ -114,22 +114,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-model-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-data-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-data-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-data-codec-gson</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>ietf-topology</artifactId>
@@ -162,33 +146,13 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-dom-codec</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-dom-codec-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-dom-codec-spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-runtime-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-runtime-spi</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf.model</groupId>
-      <artifactId>rfc6241</artifactId>
+      <artifactId>rfc5277</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.opendaylight.netconf.model</groupId>
-      <artifactId>rfc5277</artifactId>
+      <groupId>org.opendaylight.netconf</groupId>
+      <artifactId>netconf-topology</artifactId>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
@@ -198,10 +162,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-    </dependency>
 
     <!-- Sodium bump: javax.annotation.Nullable and friends -->
     <dependency>
@@ -218,6 +178,26 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-codec-gson</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-dom-adapter</artifactId>
@@ -228,5 +208,40 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <artifactId>mdsal-binding-generator</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-dom-codec</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-dom-codec-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-dom-codec-spi</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-runtime-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-runtime-spi</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.netconf.model</groupId>
+      <artifactId>rfc6241</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 </project>
index b48c61ffee6d9066e1c7084e1001a3f08aa32a1c..1e395c2406aee0f4b3303194597b59491716859c 100644 (file)
@@ -38,9 +38,9 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.Netconf;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.Streams;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netmod.notification.rev080714.netconf.streams.Stream;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
index dbbf0aaaf0e3cbb4f5ad18408522a15ba398df94..e771bae8a9be90633022279ac4915385c65e702f 100644 (file)
@@ -11,7 +11,7 @@ import java.util.List;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.networkutils.rev220630.OtnLinkType;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.portmapping.rev220316.mapping.Mapping;
 import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.renderer.rev210915.renderer.rpc.result.sp.Link;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
 import org.opendaylight.yangtools.yang.common.Uint32;
 
 /**
@@ -59,7 +59,7 @@ public interface NetworkModelService {
      * @param connectionStatus
      *     connection status of the node
      */
-    void setOpenRoadmNodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus);
+    void setOpenRoadmNodeStatus(String nodeId, ConnectionStatus connectionStatus);
 
     /**
      * create new otn link in otn-topology.
index 3985fa2b1d2eaca23cb8eab1ec4f1db0669b9430..f051e6ccf366a74e2e22085adcbd92139c5c959c 100644 (file)
@@ -63,7 +63,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.top
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPoint;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.TerminationPointKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.network.topology.rev180226.networks.network.node.termination.point.SupportingTerminationPoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
@@ -185,7 +185,7 @@ public class NetworkModelServiceImpl implements NetworkModelService {
     }
 
     @Override
-    public void setOpenRoadmNodeStatus(String nodeId, NetconfNodeConnectionStatus.ConnectionStatus connectionStatus) {
+    public void setOpenRoadmNodeStatus(String nodeId, ConnectionStatus connectionStatus) {
         LOG.info("setOpenROADMNodeStatus: {} {}", nodeId, connectionStatus.name());
         /*
           TODO: set connection status of the device in model,
@@ -787,7 +787,7 @@ public class NetworkModelServiceImpl implements NetworkModelService {
     private void deleteLinks(List<Link> links) {
         for (Link otnTopologyLink : links) {
             LOG.info("deleting link {} from {}", otnTopologyLink.getLinkId().getValue(),
-                NetworkUtils.OVERLAY_NETWORK_ID);
+                NetworkUtils.OTN_NETWORK_ID);
             InstanceIdentifier<Link> iiOtnTopologyLink = InstanceIdentifier.builder(Networks.class)
                 .child(Network.class, new NetworkKey(new NetworkId(NetworkUtils.OTN_NETWORK_ID)))
                 .augmentation(Network1.class)
index 3656c8f02c4abb198e3b1081b6ec6daf383f6b53..7fc2b4c5f7ba232fccb7626ebfa919434850fe4f 100644 (file)
@@ -36,14 +36,14 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilities;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.AvailableCapabilitiesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapabilityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.AvailableCapabilitiesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapabilityBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.credentials.credentials.LoginPasswordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNodeBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
@@ -74,7 +74,7 @@ public class NetConfTopologyListenerTest {
         changes.add(ch);
         when(ch.getRootNode()).thenReturn(node);
 
-        final Node netconfNode = getNetconfNode("netconfNode1", NetconfNodeConnectionStatus.ConnectionStatus.Connecting,
+        final Node netconfNode = getNetconfNode("netconfNode1", ConnectionStatus.Connecting,
             OPENROADM_DEVICE_VERSION_2_2_1);
         when(node.getModificationType()).thenReturn(DataObjectModification.ModificationType.DELETE);
         when(node.getDataBefore()).thenReturn(netconfNode);
@@ -98,9 +98,9 @@ public class NetConfTopologyListenerTest {
         when(ch.getRootNode()).thenReturn(node);
 
         final Node netconfNodeBefore = getNetconfNode("netconfNode1",
-            NetconfNodeConnectionStatus.ConnectionStatus.Connecting, OPENROADM_DEVICE_VERSION_2_2_1);
+            ConnectionStatus.Connecting, OPENROADM_DEVICE_VERSION_2_2_1);
         final Node netconfNodeAfter = getNetconfNode("netconfNode1",
-            NetconfNodeConnectionStatus.ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
+            ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
         when(node.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
         when(node.getDataBefore()).thenReturn(netconfNodeBefore);
         when(node.getDataAfter()).thenReturn(netconfNodeAfter);
@@ -124,9 +124,9 @@ public class NetConfTopologyListenerTest {
         when(ch.getRootNode()).thenReturn(node);
 
         final Node netconfNodeBefore = getNetconfNode("netconfNode1",
-            NetconfNodeConnectionStatus.ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
+            ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
         final Node netconfNodeAfter = getNetconfNode("netconfNode1",
-            NetconfNodeConnectionStatus.ConnectionStatus.Connecting, OPENROADM_DEVICE_VERSION_2_2_1);
+            ConnectionStatus.Connecting, OPENROADM_DEVICE_VERSION_2_2_1);
         when(node.getModificationType()).thenReturn(DataObjectModification.ModificationType.WRITE);
         when(node.getDataBefore()).thenReturn(netconfNodeBefore);
         when(node.getDataAfter()).thenReturn(netconfNodeAfter);
@@ -151,7 +151,7 @@ public class NetConfTopologyListenerTest {
         when(ch.getRootNode()).thenReturn(node);
 
         final Node netconfNodeBefore = getNetconfNode("netconfNode1",
-            NetconfNodeConnectionStatus.ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
+            ConnectionStatus.Connected, OPENROADM_DEVICE_VERSION_2_2_1);
         when(node.getModificationType()).thenReturn(DataObjectModification.ModificationType.SUBTREE_MODIFIED);
         when(node.getDataBefore()).thenReturn(netconfNodeBefore);
 
@@ -166,7 +166,7 @@ public class NetConfTopologyListenerTest {
         verify(networkModelService, never()).deleteOpenRoadmnode(anyString());
     }
 
-    private Node getNetconfNode(final String nodeId, final NetconfNodeConnectionStatus.ConnectionStatus cs,
+    private Node getNetconfNode(final String nodeId, final ConnectionStatus cs,
         final String openRoadmVersion) {
         final List<AvailableCapability> avCapList = new ArrayList<>();
         avCapList.add(new AvailableCapabilityBuilder()
index 5bcb5f5e20b63d93bbcb2ce17f42e39c382a0831..4ab2f227fc4dc771b64b3e7c1e7867bd69f21342 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -23,7 +23,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -51,10 +51,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-common-7.1.0</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.transportpce.models</groupId>
-      <artifactId>openroadm-common-10.1.0</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-device-1.2.1</artifactId>
@@ -71,10 +67,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-network-10.1.0</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.transportpce.models</groupId>
-      <artifactId>openroadm-service-10.1.0</artifactId>
-    </dependency>
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>transportpce-api</artifactId>
@@ -93,10 +85,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
-      <artifactId>rfc6991-ietf-yang-types</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
       <artifactId>rfc8345-ietf-network</artifactId>
@@ -121,13 +109,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <!-- Sodium bump: javax.annotation.Nullable and friends -->
-    <dependency>
-      <groupId>com.google.code.findbugs</groupId>
-      <artifactId>jsr305</artifactId>
-      <version>3.0.2</version>
-      <optional>true</optional>
-    </dependency>
 
     <!-- Testing Dependencies -->
     <dependency>
@@ -136,11 +117,23 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+      <artifactId>rfc6991-ietf-yang-types</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-generator</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+      <version>3.0.2</version>
+      <scope>test</scope>
+      <optional>true</optional>
+    </dependency>
   </dependencies>
 
   <build>
index 003e9a7153e5f94ee17aef72887c0006bcbddb87..9b073f5140e65507b1532f6f8e637edf073490e7 100644 (file)
@@ -14,7 +14,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -24,7 +24,7 @@
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
+      <dependency>
+        <groupId>org.opendaylight.mdsal</groupId>
+        <artifactId>mdsal-artifacts</artifactId>
+        <version>11.0.6</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
     </dependencies>
   </dependencyManagement>
 
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-common-10.1.0</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.transportpce.models</groupId>
-      <artifactId>openroadm-device-2.2.1</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-device-7.1.0</artifactId>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-model-api</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-data-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>yang-data-impl</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-data-codec-gson</artifactId>
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
       <artifactId>rfc6991-ietf-inet-types</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
-      <artifactId>rfc6991-ietf-yang-types</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
       <artifactId>rfc8345-ietf-network</artifactId>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-dom-codec</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-dom-codec-spi</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-runtime-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>mdsal-binding-runtime-spi</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.google.code.gson</groupId>
-      <artifactId>gson</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-annotations</artifactId>
       <groupId>org.glassfish.jersey.core</groupId>
       <artifactId>jersey-common</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.glassfish.jersey.core</groupId>
-      <artifactId>jersey-server</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.glassfish.jersey.core</groupId>
       <artifactId>jersey-client</artifactId>
     </dependency>
 
     <!-- Testing Dependencies -->
+    <dependency>
+      <groupId>org.opendaylight.transportpce.models</groupId>
+      <artifactId>openroadm-device-2.2.1</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.transportpce</groupId>
       <artifactId>test-common</artifactId>
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-model-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-data-impl</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal.binding.model.ietf</groupId>
+      <artifactId>rfc6991-ietf-yang-types</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
       <artifactId>mdsal-binding-generator</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-runtime-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-runtime-spi</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal</groupId>
+      <artifactId>mdsal-binding-dom-codec</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.glassfish.jersey.core</groupId>
+      <artifactId>jersey-server</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>org.glassfish.jersey.containers</groupId>
       <artifactId>jersey-container-grizzly2-http</artifactId>
index 8bb53215cca9dbb3353468e99ec73723f19f70ef..a213903274019f5f6b57e3f3969a708e802c8b19 100644 (file)
@@ -132,10 +132,8 @@ public class GnpyTopoImpl {
                     "In GnpyTopoImpl : openroadm topology network or openroadm network are not well mounted ...");
             }
         } catch (InterruptedException | ExecutionException e) {
-            this.networkTransactionService.close();
             throw new GnpyException("In gnpyTopoImpl: error in reading the topology", e);
         }
-        this.networkTransactionService.close();
     }
 
     private void extractElements(java.util.Optional<Network> openRoadmTopo,
index 61974484917ef0b3157054aa7ff5c056ae413b3b..ea4560c794799bcedf81edf145b8df4184186b89 100644 (file)
@@ -35,10 +35,10 @@ public class RequestMessageBodyWriter implements MessageBodyWriter<Request> {
     @Override
     @SuppressWarnings("java:S1872")
     public boolean isWriteable(Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) {
-        return "org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.Request$$$codecImpl"
+        return "org.opendaylight.yang.rt.v1.obj.gnpy.gnpy.api.rev220221.Request"
                 .equals(type.getName())
-                || "org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.RequestBuilder$RequestImpl"
-                        .equals(type.getName());
+            || "org.opendaylight.yang.gen.v1.gnpy.gnpy.api.rev220221.RequestBuilder$RequestImpl"
+                .equals(type.getName());
     }
 
     @Override
index 065eab4a5918743c23081ff2ee4ed3cc6a5248ae..a61204c08f76bb5dded723360799fe9f502a5399 100644 (file)
@@ -275,11 +275,9 @@ public class PceCalculation {
             if (nwOptional.isPresent()) {
                 nw = nwOptional.get();
                 LOG.debug("readMdSal: network nodes: nwOptional.isPresent = true {}", nw);
-                networkTransactionService.close();
             }
         } catch (InterruptedException | ExecutionException e) {
             LOG.error("readMdSal: Error reading topology {}", nwInstanceIdentifier);
-            networkTransactionService.close();
             returnStructure.setRC(ResponseCodes.RESPONSE_FAILED);
         }
         return nw;
index e6bc8d7c330e81508febfff6a881428f3356e0ff..d308e86f845146797f847e3bc71de1998f30f234 100644 (file)
@@ -28,7 +28,6 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.opendaylight.mdsal.binding.api.WriteTransaction;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.transportpce.common.NetworkUtils;
 import org.opendaylight.transportpce.common.network.NetworkTransactionImpl;
@@ -132,9 +131,8 @@ public class GnpyUtilitiesImplTest extends AbstractTest {
             throws InterruptedException, ExecutionException {
         InstanceIdentifier<Network> nwInstanceIdentifier = InstanceIdentifier.builder(Networks.class)
                 .child(Network.class, new NetworkKey(new NetworkId(networkId))).build();
-        WriteTransaction dataWriteTransaction = getDataBroker().newWriteOnlyTransaction();
-        dataWriteTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, network);
-        dataWriteTransaction.commit().get();
+        networkTransaction.put(LogicalDatastoreType.CONFIGURATION, nwInstanceIdentifier, network);
+        networkTransaction.commit().get();
     }
 
     @Test
diff --git a/pom.xml b/pom.xml
index ff99dd648bf50b08cc99b9fdd6adb7f6ea204540..42989bb5f7065a76e0d6811e141aef21fe8de924 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.4</version>
+    <version>12.0.2</version>
     <relativePath/>
   </parent>
 
index 84ae3a64ae9cf2bdb905cafa045f6125e37fe4a9..2aae5491ff7d8dcbf8d8588317596741a7617596 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -23,7 +23,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -67,10 +67,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-device-7.1.0</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.opendaylight.transportpce.models</groupId>
-      <artifactId>openroadm-network-10.1.0</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.opendaylight.transportpce.models</groupId>
       <artifactId>openroadm-service-10.1.0</artifactId>
index e4e304f51a26ebbe65012c24d35b88b139992611..68c67ce39a9d7cb80b510cbda9d75ec7fc07d237 100644 (file)
@@ -15,7 +15,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -25,7 +25,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
index 494d26001abfa7aa31076cbacc744108dd8f041e..755bc8caafd98c1ff7b29b4c57cd934f0125e04a 100644 (file)
@@ -15,7 +15,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -25,7 +25,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -40,7 +40,7 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>4.0.5</version>
+        <version>5.0.2</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
@@ -154,6 +154,10 @@ Author: Martial Coulibaly <martial.coulibaly@gfi.com> on behalf of Orange
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.netconf</groupId>
+      <artifactId>netconf-topology</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.netconf</groupId>
       <artifactId>sal-netconf-connector</artifactId>
index 2d92919b9f6d884d8f024e4e50eceab0be71194e..9464a5ed7dcb0f9250d5c6d5dde005d95d2756cb 100644 (file)
@@ -66,7 +66,7 @@ import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.to
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.Topology;
 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.topology.rev181210.topology.context.TopologyKey;
-import org.opendaylight.yangtools.yang.binding.Enumeration;
+import org.opendaylight.yangtools.yang.binding.EnumTypeObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -181,7 +181,7 @@ public class TapiNetworkModelListenerImpl implements TapiNotificationListener {
                 return;
             }
             ConnectivityContext connContext = optConnContext.get();
-            Map<Uuid, Enumeration[]> states = new HashMap<>();
+            Map<Uuid, EnumTypeObject[]> states = new HashMap<>();
             if (connContext.getConnectivityService() == null) {
                 return;
             }
@@ -226,12 +226,13 @@ public class TapiNetworkModelListenerImpl implements TapiNotificationListener {
         }
     }
 
-    private Enumeration[] getStates(ConnectivityService connService) throws InterruptedException, ExecutionException {
+    private EnumTypeObject[] getStates(ConnectivityService connService)
+            throws InterruptedException, ExecutionException {
         OperationalState operState = OperationalState.ENABLED;
         AdministrativeState adminState = AdministrativeState.UNLOCKED;
         if (connService.getConnection() == null) {
             LOG.info("No connections on service = {}", connService);
-            return new Enumeration[]{null, null};
+            return new EnumTypeObject[]{null, null};
         }
         for (org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev181210
                 .connectivity.service.Connection connection : connService.getConnection().values()) {
@@ -254,7 +255,7 @@ public class TapiNetworkModelListenerImpl implements TapiNotificationListener {
                 operState = OperationalState.DISABLED;
             }
         }
-        return new Enumeration[]{adminState, operState};
+        return new EnumTypeObject[]{adminState, operState};
     }
 
     private void updateConnections(List<Uuid> changedOneps, List<String> onepStates) {
index 40e00af97203dba17978f8d4682a7428b7d1eb84..4efbeed9224b841e177938c8f21a3075b627c247 100644 (file)
@@ -353,8 +353,8 @@ public class ConvertORTopoToTapiFullTopo {
         // TODO add states corresponding to device config
         LOG.info("ROADM node {} should have {} NEPs and {} SIPs", roadm.getNodeId().getValue(), numNeps, numSips);
         LOG.info("ROADM node {} has {} NEPs and {} SIPs", roadm.getNodeId().getValue(),
-            roadmNode.getOwnedNodeEdgePoint().values().size(),
-            roadmNode.getOwnedNodeEdgePoint().values().stream()
+            roadmNode.nonnullOwnedNodeEdgePoint().values().size(),
+            roadmNode.nonnullOwnedNodeEdgePoint().values().stream()
                 .filter(nep -> nep.getMappedServiceInterfacePoint() != null).count());
 
         tapiNodes.put(roadmNode.key(), roadmNode);
index 85c3e0a4d784775aad08bdcd24678df69936bc3b..a7f1e29f14108f582b84890091abab99049ed35a 100644 (file)
@@ -14,9 +14,9 @@ import org.opendaylight.mdsal.binding.api.DataObjectModification;
 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
 import org.opendaylight.mdsal.binding.api.DataTreeModification;
 import org.opendaylight.transportpce.common.StringConstants;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNodeConnectionStatus.ConnectionStatus;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.ConnectionOper.ConnectionStatus;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.device.rev221225.connection.oper.available.capabilities.AvailableCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev221225.NetconfNode;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
index ff29646f79c34ccdb872d75131ae1b96c9faf3d6..268c77de3789e8128d4d99a851b875fc768e5d1e 100644 (file)
@@ -300,21 +300,18 @@ public class TapiNetworkModelServiceImpl implements TapiNetworkModelService {
                 LOG.error("Could not update TAPI links");
                 return;
             }
-            Map<LinkKey, Link> links = optTopology.get().getLink();
-            if (links != null) {
-                for (Link link : links.values()) {
-                    List<Uuid> linkNeps = Objects.requireNonNull(link.getNodeEdgePoint()).values().stream()
-                            .map(NodeEdgePointRef::getNodeEdgePointUuid).collect(Collectors.toList());
-                    if (!Collections.disjoint(changedOneps, linkNeps)) {
-                        InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Context.class)
-                                .augmentation(Context1.class).child(TopologyContext.class)
-                                .child(Topology.class, new TopologyKey(tapiTopoUuid))
-                                .child(Link.class, new LinkKey(link.getUuid())).build();
-                        Link linkblr = new LinkBuilder().setUuid(link.getUuid())
-                                .setAdministrativeState(transformAdminState(mapping.getPortAdminState()))
-                                .setOperationalState(transformOperState(mapping.getPortOperState())).build();
-                        this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, linkIID, linkblr);
-                    }
+            for (Link link : optTopology.get().nonnullLink().values()) {
+                List<Uuid> linkNeps = Objects.requireNonNull(link.getNodeEdgePoint()).values().stream()
+                        .map(NodeEdgePointRef::getNodeEdgePointUuid).collect(Collectors.toList());
+                if (!Collections.disjoint(changedOneps, linkNeps)) {
+                    InstanceIdentifier<Link> linkIID = InstanceIdentifier.builder(Context.class)
+                            .augmentation(Context1.class).child(TopologyContext.class)
+                            .child(Topology.class, new TopologyKey(tapiTopoUuid))
+                            .child(Link.class, new LinkKey(link.getUuid())).build();
+                    Link linkblr = new LinkBuilder().setUuid(link.getUuid())
+                            .setAdministrativeState(transformAdminState(mapping.getPortAdminState()))
+                            .setOperationalState(transformOperState(mapping.getPortOperState())).build();
+                    this.networkTransactionService.merge(LogicalDatastoreType.OPERATIONAL, linkIID, linkblr);
                 }
             }
             this.networkTransactionService.commit().get();
index 9dd64c602dc6eaeaccc30589c93f3c3adc570b4c..583940ded344da6fca20bd1546df7efd3875e750 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.6</version>
+    <version>11.0.6</version>
     <relativePath/>
   </parent>
 
@@ -22,7 +22,7 @@
   <packaging>bundle</packaging>
 
   <properties>
-    <transportpce.models.version>17.2.0</transportpce.models.version>
+    <transportpce.models.version>18.0.0-SNAPSHOT</transportpce.models.version>
   </properties>
 
   <dependencyManagement>
@@ -37,7 +37,7 @@
       <dependency>
         <groupId>org.opendaylight.netconf</groupId>
         <artifactId>netconf-artifacts</artifactId>
-        <version>4.0.5</version>
+        <version>5.0.2</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index 4e48bf63e291ca49bccf4db64e3b69dc9df7736a..51446b76237cbea21bd6fd2ccac60f69bbb4ad83 100644 (file)
@@ -43,7 +43,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
     def setUp(self):
         # pylint: disable=consider-using-f-string
         print("execution of {}".format(self.id().split(".")[-1]))
-        time.sleep(10)
+        time.sleep(1)
 
     def test_01_rdm_device_connection(self):
         response = test_utils.mount_device("ROADMA01", ('roadma', self.NODE_VERSION))
index e88f125fdea91d7bcee078ac5a51299275a39d5b..d409cfa600a76e3e98be80d21d4819c797faf71c 100644 (file)
@@ -42,7 +42,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(10)
+        time.sleep(2)
 
     # Connect the ROADMA
     def test_01_connect_rdm(self):
index ed289d29fe25694b739716ec719559cb85d69303..36ca1550140b9f3cd5d2240a544c6e7ee58f6bdb 100644 (file)
@@ -110,7 +110,7 @@ class TransportPCETopologyTesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_ROADMA(self):
         response = test_utils.mount_device("ROADMA01", ('roadma', self.NODE_VERSION))
index 506dbf73c4aedfe4939756a3402a0e8b4c61bab7..f6b4d84ef0ba5c82f68df027369078e17aae0002 100644 (file)
@@ -43,7 +43,7 @@ class TransportPCERendererTesting(unittest.TestCase):
     def setUp(self):
         # pylint: disable=consider-using-f-string
         print("execution of {}".format(self.id().split(".")[-1]))
-        time.sleep(10)
+        time.sleep(2)
 
     def test_01_rdm_device_connected(self):
         response = test_utils.mount_device("ROADMA01", ('roadma', self.NODE_VERSION))
index 326cb481db9ca413c27d497c8e62b7e919247b78..20b7bc1270c7261bab4b0d1d35ce1c20b7227d44 100644 (file)
@@ -41,7 +41,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(10)
+        time.sleep(2)
 
     # Connect the ROADMA
     def test_01_connect_rdm(self):
index 838bb4c008e45884108d09bf503497af8ef440c1..964ee8a4e95bf1f3de4e9b66081c2a8597fe8299 100644 (file)
@@ -111,7 +111,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_ROADM_A1(self):
         response = test_utils.mount_device("ROADM-A1", ('roadma', self.NODE_VERSION))
index f7d9539926c3b47dae81320ad2c9aae86347a3c4..629c7a311dcc5444cd3f4da67a89871a054bcb41 100644 (file)
@@ -42,7 +42,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_SPDR_SA1(self):
         response = test_utils.mount_device("SPDR-SA1", ('spdra', self.NODE_VERSION))
index a2a6958d62cb635a216f8b4c076c1205a251d0f3..371e6fb91c7dfb043240b682c3e6b51c119017bd 100644 (file)
@@ -42,7 +42,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
     def setUp(self):
         # pylint: disable=consider-using-f-string
         print("execution of {}".format(self.id().split(".")[-1]))
-        time.sleep(10)
+        time.sleep(2)
 
     def test_01_rdm_device_connection(self):
         response = test_utils.mount_device("ROADM-D1", ('roadmd', self.NODE_VERSION))
index c27c5e8b7a777d27f5c91e61cf93eaba51ca9489..eab96048ef192ac9bb84dad57bb7e61447547c66 100644 (file)
@@ -53,7 +53,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_SPDR_SA1(self):
         response = test_utils.mount_device("SPDR-SA1", ('spdra', self.NODE_VERSION))
index effe77bb0b2b595f57e03f0d6d3092b54e8bf5ec..c3a1dfdebcfd40d52eb93337db4d97dcdc38ddd3 100644 (file)
@@ -42,7 +42,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_SPDR_SA1(self):
         response = test_utils.mount_device("SPDR-SA1", ('spdra', self.NODE_VERSION))
@@ -166,6 +166,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Operation Successful',
                       response['output']['configuration-response-common']['response-message'])
+        time.sleep(2)
 
     # Test OCH-OTU interfaces on SPDR-A1
     def test_04_check_interface_och(self):
@@ -343,6 +344,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Operation Successful',
                       response['output']['configuration-response-common']['response-message'])
+        time.sleep(2)
 
     # Test ODU4 interfaces on SPDR-A1 and SPDR-C1
     def test_09_check_interface_ODU4(self):
@@ -499,6 +501,7 @@ class TransportPCEtesting(unittest.TestCase):
         self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Operation Successful',
                       response['output']['configuration-response-common']['response-message'])
+        time.sleep(2)
 
     # Test the interfaces on SPDR-A1
     def test_12_check_interface_10GE_CLIENT(self):
index b6181acf60a4bab1f4ba366cb910a0b27439c1f7..4da4d80b07032775082a8838b9b9704372b65550 100644 (file)
@@ -151,7 +151,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_spdrA(self):
         response = test_utils.mount_device("SPDR-SA1", ('spdra', self.NODE_VERSION))
index a0a4c1ed6e888b5f41e21d8c6c50773beab2ad01..bcf644f8fbf562f80c9d479cc3db3b3fd2909771 100644 (file)
@@ -54,7 +54,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     def setUp(self):
         # pylint: disable=consider-using-f-string
         print("execution of {}".format(self.id().split(".")[-1]))
-        time.sleep(10)
+        time.sleep(2)
 
     def test_01_xpdr_device_connection(self):
         response = test_utils.mount_device("XPDR-A2",
index b8173c2aa06e36c1fc651bd323321ea86766d421..2592457856fb28d96885455c69b9a162758d9326 100644 (file)
@@ -58,7 +58,7 @@ class TransportPCE400GPortMappingTesting(unittest.TestCase):
     def setUp(self):
         # pylint: disable=consider-using-f-string
         print("execution of {}".format(self.id().split(".")[-1]))
-        time.sleep(10)
+        time.sleep(2)
 
     def test_01_xpdr_device_connection(self):
         response = test_utils.mount_device("XPDR-A2",
index 3ff03545c1be7ecf8df6750162991c04a3c31019..2f92031bc238e1078b4396e7128dcda854a3a877 100644 (file)
@@ -29,7 +29,8 @@ import simulators
 SIMS = simulators.SIMS
 
 HONEYNODE_OK_START_MSG = 'Netconf SSH endpoint started successfully at 0.0.0.0'
-KARAF_OK_START_MSG = "Blueprint container for bundle org.opendaylight.netconf.restconf.* was successfully created"
+KARAF_OK_START_MSG = "Blueprint container for bundle org.opendaylight.transportpce.servicehandler.+" \
+    "was successfully created"
 LIGHTY_OK_START_MSG = re.escape("lighty.io and RESTCONF-NETCONF started")
 
 ODL_LOGIN = 'admin'
@@ -163,7 +164,7 @@ def start_tpce():
     else:
         process = start_karaf()
         start_msg = KARAF_OK_START_MSG
-    if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=300):
+    if wait_until_log_contains(TPCE_LOG, start_msg, time_to_wait=100):
         print('OpenDaylight started !')
     else:
         print('OpenDaylight failed to start !')
index 10ec7bf07bf3892ece459150e9fd220e54e0574e..c8d79a78ca599e83a4d24492c452cec7de2c862b 100644 (file)
@@ -132,7 +132,7 @@ class TransportPCEtesting(unittest.TestCase):
         print("all processes killed")
 
     def setUp(self):
-        time.sleep(5)
+        time.sleep(2)
 
     def test_01_connect_spdrA(self):
         print("Connecting SPDRA")
index 13a68b209a361ea300d1baf85ecb0513e51b1440..47a3eb9a01e04277af07f1a4572d51dab30f85fe 100644 (file)
@@ -963,6 +963,31 @@ class TransportPCEFulltesting(unittest.TestCase):
         response = test_utils.unmount_device("ROADM-C1")
         self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
 
+    def test_69_restore_status_port_roadma_srg(self):
+        url = "{}/config/org-openroadm-device:org-openroadm-device/circuit-packs/3%2F0/ports/C2"
+        body = {"ports": [{
+            "port-name": "C2",
+            "logical-connection-point": "SRG1-PP2",
+            "port-type": "client",
+            "circuit-id": "SRG1",
+            "administrative-state": "inService",
+            "port-qual": "roadm-external"}]}
+        response = requests.request("PUT", url.format("http://127.0.0.1:8141/restconf"),
+                                    data=json.dumps(body), headers=test_utils.TYPE_APPLICATION_JSON,
+                                    auth=(test_utils.ODL_LOGIN, test_utils.ODL_PWD),
+                                    timeout=test_utils.REQUEST_TIMEOUT)
+        self.assertEqual(response.status_code, requests.codes.ok)
+        time.sleep(2)
+
+    def test_70_clean_openroadm_topology(self):
+        response = test_utils.get_ietf_network_request('openroadm-topology', 'config')
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        links = response['network'][0]['ietf-network-topology:link']
+        for link in links:
+            if link["org-openroadm-common-network:link-type"] in ('XPONDER-OUTPUT', 'XPONDER-INPUT', 'ROADM-TO-ROADM'):
+                response = test_utils.del_ietf_network_link_request('openroadm-topology', link['link-id'], 'config')
+                self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
+
 
 if __name__ == "__main__":
     unittest.main(verbosity=2)