guillaume.lambert [Thu, 28 Mar 2024 10:14:30 +0000 (11:14 +0100)]
Refactor TAPI utils TapiListener
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I3aa83ce91fac1084bf871681a3e566eed3d424ee
guillaume.lambert [Wed, 27 Mar 2024 15:17:50 +0000 (16:17 +0100)]
Refactor few TAPI rpcs
Change-Id: Ib6d5843c674ea7f2c5eacffe4df7a6c3b6b45b3a
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Gilles Thouenon [Thu, 28 Mar 2024 07:13:01 +0000 (07:13 +0000)]
Merge "Refactor TAPI topology TapiPortMappingListener"
guillaume.lambert [Wed, 27 Mar 2024 15:33:22 +0000 (16:33 +0100)]
Refactor TAPI topology TapiPortMappingListener
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I3c0937ed3552ba3192644fc490730c18c334a64a
guillaume.lambert [Wed, 27 Mar 2024 15:22:18 +0000 (16:22 +0100)]
Refactor TAPI topology TAPIOrLinkListener
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I857a6f0f90ada5d53f853b80d6f2a35fcf16f983
Gilles Thouenon [Wed, 27 Mar 2024 12:35:29 +0000 (12:35 +0000)]
Merge "Refactor TAPI rpc DeleteConnectivityServiceImpl"
guillaume.lambert [Wed, 27 Mar 2024 08:36:12 +0000 (09:36 +0100)]
Refactor TAPI rpc DeleteConnectivityServiceImpl
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I0fba1c50c454b312026338d80c5d659d724b59c9
Gilles Thouenon [Wed, 27 Mar 2024 08:28:22 +0000 (08:28 +0000)]
Merge "Refactor TAPI rpc CreateConnectivityServiceImpl"
orenais [Fri, 23 Feb 2024 16:34:04 +0000 (17:34 +0100)]
Refactor TAPI 2.4
JIRA: TRNSPRTPCE-735
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Iebccbefb0ddfb1ec902916a18e9447046c7101e2
guillaume.lambert [Tue, 19 Mar 2024 07:11:25 +0000 (08:11 +0100)]
Refactor TAPI rpc CreateConnectivityServiceImpl
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I85b7c6dc7e74c957f78123b5b8fb5dcf577fcb57
Gilles Thouenon [Mon, 25 Mar 2024 16:36:20 +0000 (16:36 +0000)]
Merge "SH slight clean-up after Ca bump"
Gilles Thouenon [Mon, 25 Mar 2024 12:50:22 +0000 (12:50 +0000)]
Merge "Refactor a few renderer RPCs"
Gilles Thouenon [Mon, 25 Mar 2024 11:34:21 +0000 (11:34 +0000)]
Merge "Refactor Networkmodel PortMappingListener"
guillaume.lambert [Mon, 18 Mar 2024 14:42:24 +0000 (15:42 +0100)]
SH slight clean-up after Ca bump
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I7a3e1afd1532c3fdc9633533e3174d721b93958b
guillaume.lambert [Wed, 13 Mar 2024 16:47:09 +0000 (17:47 +0100)]
Refactor nbinotifications
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I2c1e78e2712b26825cd7fe56060779a0622f5d11
guillaume.lambert [Sun, 17 Mar 2024 21:13:40 +0000 (22:13 +0100)]
Refactor a few renderer RPCs
JIRA: TRNSPRTPCE-764
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Icdd66a41bfea36d66a2e9f7686d492f3065d253a
guillaume.lambert [Sun, 17 Mar 2024 20:53:38 +0000 (21:53 +0100)]
Refactor Networkmodel PortMappingListener
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Id4c08284c6f032258d1cc00920ccb208ccee6e8c
Gilles Thouenon [Thu, 21 Mar 2024 10:36:07 +0000 (11:36 +0100)]
Bump kafka-client version to 3.7.0
JIRA: TRNSPRTPCE-789
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Id83149775a1a670880a58be39270bae5f4b5d275
Gilles Thouenon [Thu, 21 Mar 2024 10:25:13 +0000 (11:25 +0100)]
Migrate tapi notification functional tests to 2.4
- fix NPE issue in CreateConnectivityServiceValidation when the request
does not contain any topology constraints
- TAPI notification functional test suite had been forgotten in the TAPI
migration to new models in v2.4. Adapt these tests to the new
implementation.
JIRA: TRNSPRTPCE-790
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I0d0cb473cc7178205e1a5e8614563aa7aaf63dc9
Gilles Thouenon [Thu, 21 Mar 2024 10:23:56 +0000 (11:23 +0100)]
Fix bugs in nbinotifications module
- fix NPE issue in NbiNotificationsHandler
- fix message issue in PceNotificationHandler of service handler
- add small delay in functional test execution to let the notification
being sent in kafka broker
- fix issue when uninstalling the feature (publisher sessions with
kafka server remained open)
JIRA: TRNSPRTPCE-790
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I914f3c2313e17ec25b36633ef8af26ff8f8394bf
Gilles Thouenon [Thu, 21 Mar 2024 10:07:38 +0000 (11:07 +0100)]
Fix karaf client issue in functional test library
- Remove logout from the bash command sent with subprocess run to avoid
having a runtime exception in karaf when we install the
odl-transportpce-nbinotifications feature
- remove an useless variable in sims_update_cp_port_ntcf method
JIRA: TRNSPRTPCE-782
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I002c3c154d49ff5f128929084a5802f9eea16c9f
Gilles Thouenon [Wed, 20 Mar 2024 08:02:59 +0000 (09:02 +0100)]
Bump netconf to version 7.0.3
Use latest netconf version to pick few fixes.
JIRA: TRNSPRTPCE-782
Change-Id: Ib0d870c1c8d65da4878851afc955415df64144b4
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Tue, 19 Mar 2024 17:14:04 +0000 (18:14 +0100)]
Bump grizzly-http-server version to 4.0.2
Instead of an old and unsecured 2.4.0 version.
JIRA: TRNSPRTPCE-789
Change-Id: Ia99c42f013e1c7415fbce0973795ddc8fb2095d6
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Tue, 19 Mar 2024 16:39:35 +0000 (17:39 +0100)]
Replace javax.activation-api by the jakarta one
Remove the fixed and old version of javax.activation-api for the benefit
of the jakarta.activation-api provided by odlparent.
JIRA: TRNSPRTPCE-789
Change-Id: I3a22c3207c72f8efacde0654c3005b676b478763
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Tue, 19 Mar 2024 16:43:03 +0000 (16:43 +0000)]
Merge changes I6014d5f7,I88b072fa
* changes:
Refine the RPC implementation registration
Bump upstream dependencies to latest Ca versions
Gilles Thouenon [Mon, 18 Mar 2024 17:45:32 +0000 (18:45 +0100)]
Refine the RPC implementation registration
- Replace the ClassToInstanceMap argument by a plain varargs with the
RPC implementations when registering RPC to
mdsal.binding.api.RpcProviderService.
- Optimize code by removing classes that have now become almost useless
- adapt the JUnit tests to check exactly which RPC impl are registered
JIRA: TRNSPRTPCE-788
Change-Id: I6014d5f7a4d0447a14ddcac59de6b1d9539677fb
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Fri, 15 Mar 2024 07:34:13 +0000 (08:34 +0100)]
Bump upstream dependencies to latest Ca versions
Adopt:
- odlparent-13.0.11
- yangtools-13.0.2
- mdsal-13.0.1
- netconf-7.0.2
JIRA: TRNSPRTPCE-782
Change-Id: I88b072fa5abb6c020da743429777f1f2c96075f0
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
guillaume.lambert [Wed, 13 Mar 2024 16:01:00 +0000 (17:01 +0100)]
Fix inventory listeners code style
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I8120d9e53faf337ab4e32705782ba844ce58ca60
guillaume.lambert [Wed, 13 Mar 2024 11:13:25 +0000 (12:13 +0100)]
Refactor common CrossConnectImpl
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I23cbb0a2b6aaa61d90cf86fa6417dcb948b377a2
Jonas Mårtensson [Tue, 13 Jun 2023 07:55:08 +0000 (07:55 +0000)]
Only verify PreFEC BER if end node is Xponder
Trying to read PreFEC BER from end nodes when creating a ROADM-to-ROADM
service is unnecessary since only Xponders report this parameter.
Adapt renderer unitary tests
JIRA: TRNSPRTPCE-158
Change-Id: Id1a9bfe69296abaeffe63d589a79d113bf8d9bcc
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
Co-authored-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Wed, 13 Mar 2024 12:56:41 +0000 (13:56 +0100)]
Fix Renderer Junit Tests exceptions
New rollback process makes junit tests running with exceptions. Fix
them.
JIRA: TRNSPRTPCE-782
Change-Id: Ie8b95582589140b6e079861a4878f683b193ac02
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Gilles Thouenon [Mon, 5 Feb 2024 08:25:42 +0000 (09:25 +0100)]
Bump upstream dependencies to Ca
Adopt:
- odlparent-13.0.10 (already done)
- yangtools-13.0.1
- mdsal-13.0.0
- netconf-7.0.1
- transportpce-models-20.0.0-SNAPSHOT
Also, move each rpc implementation in a dedicated class to ease their
registration.
Adapt, and sometimes redo, some unitary tests.
Prepare lighty build.
FIXME: need mdsal.binding.api.RpcService in lighty.
Adapt the python lib (test_utils) to the new way of configuring
login/passwork when we mount a netconf device.
JIRA: TRNSPRTPCE-782
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I5e8b0634e02b8d0ee810d9bb8471b4b6cac8e990
Gilles Thouenon [Tue, 12 Mar 2024 15:08:35 +0000 (16:08 +0100)]
Make lighty build non voting in CI
Change-Id: I55709eae45349e011923b77825c97062e5ce1676
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Guillaume Lambert [Tue, 12 Mar 2024 10:25:59 +0000 (10:25 +0000)]
Merge changes I8c049137,I8660893e
* changes:
Switch all func tests to lightynode
Add a tox profile to install lightynode
Guillaume Lambert [Tue, 12 Mar 2024 10:23:12 +0000 (10:23 +0000)]
Merge changes Ib0dab687,Ia7e45116,I6839ad8b
* changes:
Turn down OLM power AtoZ and ZtoA in parallel
Refactor RendererServiceOperationsImpl notify
Olm Power Down Task
Guillaume Lambert [Fri, 1 Mar 2024 07:34:36 +0000 (07:34 +0000)]
Merge changes I453a92fd,I68ba6341
* changes:
Allow the client to specify ROADM service SRG port
Address yang name change for transportpce-pce
Guillaume Lambert [Fri, 1 Mar 2024 07:33:24 +0000 (07:33 +0000)]
Merge "Complement sims configuration files"
Guillaume Lambert [Fri, 1 Mar 2024 07:33:01 +0000 (07:33 +0000)]
Merge changes from topic "lambdaHandling"
* changes:
Reindent PceTestData Junit
Refactor PCE OperatorConstraints
Add SpectrumFillingRule check in postAlgoValidator
guillaume.lambert [Wed, 28 Feb 2024 10:01:37 +0000 (11:01 +0100)]
Reindent PceTestData Junit
JIRA: TRNSPRTPCE-783
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Id8ab0f5d24f9ed845ccc0e0ffcfbadb1003d2a39
guillaume.lambert [Tue, 27 Feb 2024 11:16:22 +0000 (12:16 +0100)]
Refactor PCE OperatorConstraints
JIRA: TRNSPRTPCE-783
Change-Id: I062e49ad39ad417026919d4bf5f74b15265cd7bd
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Christophe Betoule [Mon, 5 Feb 2024 15:45:37 +0000 (16:45 +0100)]
Switch all func tests to lightynode
- in tox.ini adopt lightynode sims for remaing 7.1, hybrid and
with_docker tests
- adapt tests using netconf connector instead of restconf one as soon as
Lightynode does not support restconf api.
- adopt lighty-openroadm-device-19.1.0.5
JIRA: TRNSPRTPCE-754
Signed-off-by: Christophe Betoule <christophe.betoule@orange.com>
Change-Id: I8c049137c56c46e4ca4af1ed95a20c4d62a7d420
Gilles Thouenon [Fri, 2 Feb 2024 16:52:55 +0000 (17:52 +0100)]
Add a tox profile to install lightynode
- create a new tox profile that install lightynode
- fix a bug when lightynode directory was not present
- adapt the shell script to be able to specify eiter a specific released
or snapshot version to install
- make tox fail when download fails
JIRA: TRNSPRTPCE-754
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I8660893e48a02d6c355fb6d63778ee5667cd2b69
orenais [Tue, 6 Feb 2024 18:29:39 +0000 (19:29 +0100)]
Add SpectrumFillingRule check in postAlgoValidator
JIRA: TRNSPRTPCE-783
Change-Id: I4c98c6ddfcff4e71c2f8c00774b8e6d80801ca07
Signed-off-by: orenais <olivier.renais@orange.com>
Joakim Törnqvist [Thu, 7 Dec 2023 15:03:53 +0000 (15:03 +0000)]
Allow the client to specify ROADM service SRG port
Allows the client to specifiy port with 'port-device-name' and
'port-name' (see example down below).
The feature is implemented in PceOpticalNode. The rest are
classes being updated since there is a new argument in
the method PceOpticalNode.initSrgTps():
initSrgTps(Preference portPreference) {...}
Feature implementation overview
The feature uses the classes in package:
org.opendaylight.transportpce.pce.networkanalyzer.port
* PceCalculation instantiates an instance of Preference using
PreferenceFactory and passing it on to the constructor in
PceOpticalNode.
* PreferenceFactory in turn uses PathComputationRequestInput
to return either 'NoPreference' or 'ClientPreference'.
* Returning an instance of 'NoPreference' is the backwards compatible
approach. The class 'NoPreference' is currently implemented as
the equivalent of 'port-device-name' and 'port-name' being absent
from the client request.
* If the client uses 'port-device-name' and 'port-name' an instance
of ClientPreference is returned.
* PceOpticalNode uses the method preferredPort(...) defined by
the interface Preference (implemented by NoPreference/
ClientPreference) when building a list of avilable ports.
If a port is not in the preferred list, it's treated as
unavailable by PceOpticalNode.
APIImpact
POST /rests/operations/org-openroadm-service:service-create
{
"input": {
...
"port": {
"port-device-name": "ROADM-B-SRG1",
"port-name": "SRG1-PP2-TXRX",
}
...
}
}
The above will result in port SRG1-PP2-TXRX on node ROADM-B-SRG1
being used in the service. All other ports on ROADM-B-SRG1
will be treated as "unavailable".
JIRA: TRNSPRTPCE-176
Change-Id: I453a92fda2977ac86c5c5ff47e1a7f6cd322334d
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Joakim Törnqvist [Thu, 29 Feb 2024 14:53:22 +0000 (14:53 +0000)]
Address yang name change for transportpce-pce
In TRNSPRTPCE-783, there is name revision update from
transportpce-pce@2023-09-25 to transportpce-pce@2024-02-05.
JIRA: TRNSPRTPCE-176
Change-Id: I68ba63411045c18087e15854835a2d9913e20424
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Gilles Thouenon [Thu, 29 Feb 2024 14:00:13 +0000 (14:00 +0000)]
Merge "Refactor TAPI Connectivity Utils"
Guillaume Lambert [Thu, 29 Feb 2024 13:25:04 +0000 (13:25 +0000)]
Merge "Fix persistence when karaf is restarted"
Guillaume Lambert [Thu, 29 Feb 2024 13:24:43 +0000 (13:24 +0000)]
Merge changes Ib795f077,I723e4262
* changes:
Refactoring rollback when service create fails
New Package dealing with device rollback
Guillaume Lambert [Thu, 29 Feb 2024 13:22:30 +0000 (13:22 +0000)]
Merge "Determine preferred node/port from PCRI"
Guillaume Lambert [Thu, 29 Feb 2024 13:22:01 +0000 (13:22 +0000)]
Merge "Add customer name to pathComputationRequest input"
Christophe Betoule [Thu, 8 Feb 2024 09:28:10 +0000 (10:28 +0100)]
Complement sims configuration files
- Add current-pm-description (pm-handling yang model) for 7.1 ROADM
- Add current-pm-list list (org-openroadm-pm yang model) for 7.1 ROADM-B
JIRA: TRNSPRTPCE-787
Change-Id: I32f5b79e6e6b4555bcd8e8812ee4840e9aad928c
Signed-off-by: Christophe Betoule <christophe.betoule@orange.com>
Joakim Törnqvist [Mon, 19 Feb 2024 11:47:55 +0000 (11:47 +0000)]
Turn down OLM power AtoZ and ZtoA in parallel
Use the new task OlmPowerTurnDownTask to delete a service
AtoZ and ZtoA in parallel.
JIRA: TRNSPRTPCE-616
Change-Id: Ib0dab687ef3f5c4a12ad8a71fa5c78d1f9d72254
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Joakim Törnqvist [Mon, 19 Feb 2024 11:35:54 +0000 (11:35 +0000)]
Refactor RendererServiceOperationsImpl notify
Refactor three private methods in RendererServiceOperationsImpl
into a separate class implementing the interface 'Notification'
in package:
org.opendaylight.transportpce.renderer.provisiondevice.notification
The constructor in RendererServiceOperationsImpl requires an instance
of 'Notification' instead of 'NotificationPublishService'. Meaning
RendererServiceOperationsImpl is using NotificationPublishService
indirectly as opposed to directly.
The rest of the changes is a ripple effect due to the constructor
being updated.
JIRA: TRNSPRTPCE-616
Change-Id: Ia7e45116d44581fe2a54dc0b58843840a007d5fb
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Joakim Törnqvist [Fri, 16 Feb 2024 12:15:13 +0000 (12:15 +0000)]
Olm Power Down Task
A task capable of running in parallel powering down OLM power.
The package also contains an Interface left open to be implemented
at a later time.
Pseudo code example usage:
ListenableFuture<OLMRenderingResult> futureAtoZ =
this.executor.submit(
new OlmPowerTurnDownTask(...)
);
ListenableFuture<OLMRenderingResult> futureZtoA =
this.executor.submit(
new OlmPowerTurnDownTask(...)
);
ListenableFuture<List<OLMRenderingResult>> futures =
Futures.allAsList(futureAtoZ, futureZtoA);
List<OLMRenderingResult> results;
try{
results = futures.get(Timeouts.OLM_TIMEOUT, TimeUnit.MILLISECONDS);
} catch (Exception e) {
LOG.error("Error while turning down power!");
}
if (results.get(0).isSuccess() && results.get(1).isSuccess()) {
LOG.info("OLM power successfully turned down");
}
JIRA: TRNSPRTPCE-616
Change-Id: I6839ad8bdd5feeec5bcd63700efe55c8aed01085
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
guillaume.lambert [Wed, 31 Jan 2024 15:39:29 +0000 (16:39 +0100)]
Refactor TAPI Connectivity Utils
JIRA: TRNSPRTPCE-734
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I05fec0450c269ff5dbc169c70a81c7144834f9c1
Gilles Thouenon [Sat, 24 Feb 2024 15:55:14 +0000 (15:55 +0000)]
Merge "Allow 0 dB spanloss in power management"
Gilles Thouenon [Sat, 24 Feb 2024 15:54:13 +0000 (15:54 +0000)]
Merge "Refactor TAPI ConvertORTopoToTapiFullTopo"
Gilles Thouenon [Sat, 24 Feb 2024 15:52:26 +0000 (15:52 +0000)]
Merge "Refactor TAPI ConvertORToTapiTopology"
Guillaume Lambert [Fri, 23 Feb 2024 15:48:50 +0000 (15:48 +0000)]
Merge "Fix some TAPI ConnectivityUtils log msg"
Guillaume Lambert [Fri, 23 Feb 2024 14:02:50 +0000 (14:02 +0000)]
Merge "Fix OLM rollback"
guillaume.lambert [Thu, 22 Feb 2024 16:09:18 +0000 (17:09 +0100)]
Fix some TAPI ConnectivityUtils log msg
JIRA: TRNSPRTPCE-734
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Iab258e658613bce1cc4e4962a2b2456aa8182edf
Joakim Törnqvist [Thu, 7 Dec 2023 14:13:13 +0000 (14:13 +0000)]
Determine preferred node/port from PCRI
Package intended to be used to determine preferred SRG port
usage when setting up optical services between ROADMs.
Use an instance of PathComputationRequestInput, e.g. API
input and provides a method for checking if a specific SRG port
is among the ports in the client request.
Package org.opendaylight.transportpce.pce.networkanalyzer.port:
* Preference - Interface defining one method capable
of determining if a node/port is 'preferred'
by the client.
* ClientPreference - Implements Preference. Contains information
about actual client port preference.
* NoPreference - Implements Preference. Typically used when
the client has no preference regarding port.
* Factory - Interface defining methods needed in order
to convert a PathComputationRequestInput
to an implementation of Preferenc.
* PreferenceFactory - Implements Factory. The method
'portPreference' should typically be used
implementing the feature in the application.
The method portPreference either returns
an instance of 'ClientPreference' or
'NoPreference'.
Example:
public void someMethod(PathComputationRequestInput input) {
Factory portPreferenceFactory = new PreferenceFactory();
Preference preference = portPreferenceFactory.portPreference(input);
if (preference.preferredPort("ROADM-A-SRG1", "SRG1-PP1-TXRX")) {
System.out.println("The port 'SRG1-PP1-TXRX' on 'ROADM-A-SRG1' "
+"is preferred by the client.");
}
}
JIRA: TRNSPRTPCE-176
Change-Id: Iba7e7886678deb6d965391633f819995635caa06
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Jonas Mårtensson [Mon, 28 Nov 2022 12:09:35 +0000 (12:09 +0000)]
Fix persistence when karaf is restarted
OpenDaylight supports datastore persistence but this does not currently
work for TransportPCE since the service list and all openroadm network
layers are initialised as empty when karaf is started.
This changes the transaction from put to merge in order to not
overwrite existing services and network layers.
This also sets config datastore persistence to false before running
tests since they are implemented with the assumption that datastore is
not persistent.
JIRA: TRNSPRTPCE-706
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
Change-Id: Icec7a1ae47d7001eb408b3b573a837daa8645bc8
Guillaume Lambert [Thu, 15 Feb 2024 15:16:03 +0000 (15:16 +0000)]
Merge "Fix warning message when service creation fails"
Jonas Mårtensson [Fri, 9 Feb 2024 07:43:00 +0000 (07:43 +0000)]
Fix warning message when service creation fails
When service implementation failed, the warning message "Service was
not removed from datastore!" was shown in the log, even if the service
was successfully removed.
JIRA: TRNSPRTPCE-784
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
Change-Id: I64bb939459e32155626bce1a57da6bd09db22ac8
Jonas Mårtensson [Mon, 22 May 2023 13:59:37 +0000 (13:59 +0000)]
Fix OLM rollback
The OLM rollback task did not correctly set spectral slot numbers,
causing a null pointer exception.
JIRA: TRNSPRTPCE-786
Change-Id: I8cdaa109b718d47c8d5b620b9d686903f19c08d3
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
guillaume.lambert [Fri, 2 Feb 2024 16:28:32 +0000 (17:28 +0100)]
Refactor TAPI ConvertORToTapiTopology
JIRA: TRNSPRTPCE-759
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I00c47bebf899a5abc2fd5584d96ba4ce7a8b41ca
Joakim Törnqvist [Wed, 17 Jan 2024 14:35:53 +0000 (14:35 +0000)]
Refactoring rollback when service create fails
The new rollback feature is primarily implemented in the method
deviceRendering in the class RendererServiceOperationsImpl.
The new class TransactionHistory is passed into
DeviceRendererServiceImpl via DeviceRenderingTask.
DeviceRendererServiceImpl populates the TransationHistory class
with created interfaces etc.
A new rollback task NetworkDeviceRenderingRollbackTask has been
created intended to replace DeviceRenderingRollbackTask. The
class is instantiated with a TransactionHistory object intended
to be used in case of a rollback.
Sample pseudo code extract
class RendererServiceOperationsImpl:
private List<DeviceRenderingResult> deviceRendering(...) {
History transactionHistory = new TransactionHistory();
ListenableFuture<DeviceRenderingResult> atozrenderingFuture =
this.executor.submit(
new DeviceRenderingTask(..., transactionHistory));
ListenableFuture<DeviceRenderingResult> ztoarenderingFuture =
this.executor.submit(
new DeviceRenderingTask(..., transactionHistory));
ListenableFuture<List<DeviceRenderingResult>>
renderingCombinedFuture = Futures.allAsList(
atozrenderingFuture, ztoarenderingFuture
);
List<DeviceRenderingResult> renderingResults = new ArrayList<>(2);
renderingResults = renderingCombinedFuture.get(...);
rollbackProcessor.addTask(
new NetworkDeviceRenderingRollbackTask(
"RollbackTransactionHistoryTask",
transactionHistory,
! (renderingResults.get(0).isSuccess()
&& renderingResults.get(1).isSuccess()),
deviceRenderer,
new RollbackResultMessage()
)
);
return renderingResults;
}
New somewhat simplified rollback method using TransactionHistory
intended to replace the previous method using RendererRollbackInput:
class RendererServiceOperationsImpl:
@Override
public RendererRollbackOutput rendererRollback(
History transactionHistory
) {
LOG.info("Rolling back...");
Result rollbackResult = new FailedRollbackResult();
Subscriber deleteSubscriber = new DeleteSubscriber(rollbackResult);
transactionHistory.rollback(
new DeleteService(
crossConnect,
openRoadmInterfaces,
deleteSubscriber
)
);
LOG.info("Rollback done!");
return rollbackResult.renderRollbackOutput();
}
JIRA: TRNSPRTPCE-615
Change-Id: Ib795f077ae763bd92bac44ee77186a19ed0e4b2a
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
guillaume.lambert [Tue, 13 Feb 2024 12:44:48 +0000 (13:44 +0100)]
Fix ConvertORToTapiTopology Upper/Lower Freq bug
JIRA: TRNSPRTPCE
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I91568bef19ddb5475c74696720517fed8c905f11
Joakim Törnqvist [Wed, 17 Jan 2024 14:35:08 +0000 (14:35 +0000)]
New Package dealing with device rollback
Add a new class (TransactionHistory) capable of keeping
track of created interfaces (during a service creation
process) and rolling them back.
The DeleteService class handles the rollback process. Passing
in a subscriber (DeleteSubscriber) capable of tracking the process
and creating a result.
Pseudo code example
public Result rollbackExample(
OpenRoadmInterfaceFactory openRoadmInterfaceFactory,
OpenRoadmInterfaces openRoadmInterfaces,
CrossConnect crossConnect
) {
History transactionHistory = new TransactionHistory();
String supportingOchInterface = openRoadmInterfaceFactory
.createOpenRoadmOchInterface(...);
transactionHistory.add(
new DeviceInterface(nodeId, supportingOchInterface)
);
transactionHistory.addInterfaces(
nodeId,
supportingOchInterface.split("#")
);
Result rollbackResult = new FailedRollbackResult();
Subscriber deleteSubscriber = new DeleteSubscriber(rollbackResult);
transactionHistory.rollback(
new DeleteService(
crossConnect,
openRoadmInterfaces,
deleteSubscriber
)
);
return rollbackResult.renderRollbackOutput();
}
JIRA: TRNSPRTPCE-615
Change-Id: I723e42628e8de0b45ab9160b5b8c366497c0f550
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Jonas Mårtensson [Fri, 9 Feb 2024 08:07:45 +0000 (08:07 +0000)]
Allow 0 dB spanloss in power management
Currently, power management, and therefore also service creation, fails
if any spanloss is 0 dB. There is nothing in the OpenROADM spec that
says 0 dB is out of range. The spanloss range is defined as:
Min: 0, Max: 27 dB
JIRA: TRNSPRTPCE-785
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
Change-Id: I62969b7cbe5c9ba06cdbfa51ee5db87c372479ea
Gilles Thouenon [Thu, 8 Feb 2024 15:10:23 +0000 (15:10 +0000)]
Merge "Refactor TAPI ConvertORTopoToTapiTopo Junit"
orenais [Mon, 5 Feb 2024 13:54:33 +0000 (14:54 +0100)]
Add customer name to pathComputationRequest input
JIRA: TRNSPRTPCE-783
Change-Id: I16dbcf89e3626051cacee2e693cebe5795a6fdc2
Signed-off-by: orenais <olivier.renais@orange.com>
guillaume.lambert [Wed, 31 Jan 2024 11:47:59 +0000 (12:47 +0100)]
Refactor some TAPI Junit tests code
JIRA: TRNSPRTPCE:758
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I49fe0a517fd7c57616ddd32697cd4ab8fd931085
guillaume.lambert [Tue, 6 Feb 2024 14:10:54 +0000 (15:10 +0100)]
Refactor TAPI ConvertORTopoToTapiTopo Junit
JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I865c3b62363162ab34558fda8a1e2720a2d8e9e0
guillaume.lambert [Mon, 5 Feb 2024 20:53:43 +0000 (21:53 +0100)]
Refactor TAPI ConvertORTopoToTapiFullTopo
JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I707ce33c5be5540a8fd7692c06d214fd4bb6d8ed
orenais [Fri, 2 Feb 2024 16:45:00 +0000 (17:45 +0100)]
Udate tapi dependency in Lighty
JIRA: TRNSPRTPCE-759
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I36aacf6d41b8b46ac10366bbd306b1bd2733b8b2
guillaume.lambert [Fri, 2 Feb 2024 12:29:57 +0000 (13:29 +0100)]
Fix tox wiki dead URL false positives in CI
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I33ad8e4b482ea5c5249b138e25c150004263bf98
orenais [Thu, 21 Dec 2023 17:08:05 +0000 (18:08 +0100)]
Refactoring of Tapi Step3
Add characteristics introduced in T-API 2.4 starting with nodes.
Add Payload-structure and photonic-owned-node-edge-point-spec
to xpdr OTSi and OTS NEPs (at initialization, and onDataTreeChange)
JIRA: TRNSPRTPCE-759
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I71e5e148b9ac4cd94589bb85c39618effdde3aa4
orenais [Thu, 21 Dec 2023 17:08:05 +0000 (18:08 +0100)]
Add Supported OM to PortMapping.yang
JIRA: TRNSPRTPCE-707
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Ic3b42fe180a856e905f57f66691131b7324a7e3c
orenais [Thu, 21 Dec 2023 15:35:42 +0000 (16:35 +0100)]
Refactoring of Tapi Step2
Add createAvailable/SupportedPayloadStructure and photonic-owned
-node-edge-point-spec attribute in convertORToTapiTopology class
JIRA: TRNSPRTPCE-758
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I04821270cab8a1408032cea42e45292fdfe81ef1
orenais [Mon, 27 Nov 2023 10:01:10 +0000 (11:01 +0100)]
Refactoring of TAPI Step1
- Step 1.1 : suppress redundant methods between ConnectivityUtils &
TapiPceNotificationHandler
- Step 1.2 : homogenize code between converORTopoTo-Tapi/TapiFull-Topo
& TapiNetworkModelServiceImpl classes
- Step 1.3 : Suppress redundant code in convertORTopoTo-Tapi/
TapiFull-Topo & TapiNetworkModelServiceImpl classes and create
ConvertORToTapiTopology to host common methods of these classes
JIRA: TRNSPRTPCE-758
Change-Id: Ic068c3a610db6b664420f8a864cfe5e75fae91e1
Signed-off-by: orenais <olivier.renais@orange.com>
orenais [Fri, 15 Sep 2023 14:37:51 +0000 (16:37 +0200)]
Migration to TAPI 2.4 Step3
- Correct some bugs associated with migration to T-API 2.4
- Adjust JUnit tests accordingly
- Adjust functional tests
JIRA: TRNSPRTPCE-734
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I54a3cc091cb75b145c81f3e0b251cfc8a0607d56
orenais [Fri, 4 Aug 2023 14:56:01 +0000 (16:56 +0200)]
Migration to TAPI 2.4 Step2
Migration of nbi-notification to TAPI 2.4
JIRA: TRNSPRTPCE-734
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I868d82258cdb1c7b2ee3cb16653dbb89a5ca13cc
orenais [Thu, 3 Aug 2023 07:28:21 +0000 (09:28 +0200)]
Migration to TAPI 2.4 Step1
- Migration of transportpce-tapi to TAPI2.4, including code and tests
- Integrate change of nbi-notification performed in change 106484 to
simplify merge
- Compilation succeeds for tpce-tapi, but fails at tpce-nbinotifications
for which migration is planned in Step2
JIRA: TRNSPRTPCE-735
Change-Id: I7a8580a5d77b80346186084b134a3d42e1c24332
Signed-off-by: orenais <olivier.renais@orange.com>
Gilles Thouenon [Mon, 29 Jan 2024 13:37:55 +0000 (14:37 +0100)]
Remove odl-transportpce-swagger feature
This feature is an old workaround that was intended to allow TPCE
developers to enable swagger. This is an empty feature that has been
useless for a while. Just delete it.
JIRA: TRNSPRTPCE-779
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Ie3b087d2d383c904b1e17c838195b87cd61db2c2
Matej Sramcik [Fri, 29 Sep 2023 10:48:46 +0000 (12:48 +0200)]
Don't use NotificationListener (NodeRegistration)
Don't use NotificationListener in classes used by NodeRegistration.
This is a part of NotificationListener to Listener<?> migration.
JIRA: TRNSPRTPCE-756
Change-Id: Ic527adce8e535c2c7e5bd694afd7219b4e1a5613
Signed-off-by: Matej Sramcik <matej.sramcik@pantheon.tech>
Gilles Thouenon [Wed, 24 Jan 2024 07:25:42 +0000 (08:25 +0100)]
Bump upstream dependencies to K-SR2
Adopt:
- odlparent-13.0.10
- yangtools-11.0.5
- mdsal-12.0.4
- netconf-6.0.6
- transportpce-models-19.2.0
Also, update the revision of opendaylight.netconf.device packages
imported in different modules to rev240118.
JIRA: TRNSPRTPCE-777
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Ib2ef5c492c774bb1442345bd58983d0210f3df7c
Gilles Thouenon [Wed, 24 Jan 2024 10:54:05 +0000 (11:54 +0100)]
Remove some useless code
Remove few useless properties in common, tapi, nbinotifications and
dmaap-client modules.
JIRA: TRNSPRTPCE-778
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I06135cddd40b073c41e4ce37d3032a36a2c02c98
Gilles Thouenon [Wed, 24 Jan 2024 10:46:57 +0000 (11:46 +0100)]
Remove softConstraints from PceGraph
pceSoftConstraints is a property never used in PceGraph. Just remove it
and adapt code consequently.
JIRA: TRNSPRTPCE-778
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Iebedae657ce5114b1d36078bd386b684677db724
Gilles Thouenon [Wed, 24 Jan 2024 10:44:38 +0000 (11:44 +0100)]
Bump lighty-app-parent to 19.1.0
JIRA: TRNSPRTPCE-777
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I465e6dc0aacaae3662aabe06a687bd23abee87a3
Gilles Thouenon [Fri, 15 Dec 2023 10:10:33 +0000 (11:10 +0100)]
Add new functional PCE test to check bug-772
- Add a new pce functional test suite dedicated to check pce bugs. Check
the fix of TRNSPRTPCE-772 bug
- Add adequate topo and portmapping json input files
JIRA: TRNSPRTPCE-772
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I6f9948865343ca15c238f2185134c7f35ccba374
guillaume.lambert [Thu, 14 Dec 2023 14:23:10 +0000 (15:23 +0100)]
PCE graph spectrum assignment slight refactoring
JIRA: TRNSPRTPCE-772
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ib4210d7fe451e9be673f11eb9860e07a2665f351
Joakim Törnqvist [Thu, 7 Dec 2023 13:50:03 +0000 (13:50 +0000)]
Spectrum assignment skipped the last node in path
APIImpact
Corrects an issue were the last node in a path was not
taken into account during spectrum assignment.
A path consists of a list of source/destination node pairs,
eg [(N1,N2) (N2,N3) (N3,N4)].
Consider this network: [A] ----- [B], were A and B are ROADMs.
During path computation the above example may produce a path
such as:
[(A-SRG1, A-DEG1) (A-DEG1, B-DEG1) (B-DEG1, B-SRG1)]
The bug caused the code to skip checking for available
spectrum on B-SRG1.
This was due to spectrum assignment is only processed
in the A-Z direction, combined with an iteration only
taking the source node into account.
JIRA: TRNSPRTPCE-772
Change-Id: Ia0822a1cdb0e4b5f67d9c9675e1203f0a0746ef6
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
Gilles Thouenon [Tue, 31 Oct 2023 12:03:24 +0000 (13:03 +0100)]
Bump upstream dependencies to K-SR1
Adopt:
- odlparent-13.0.7
- yangtools-11.0.4
- mdsal-12.0.3
- netconf-6.0.5
- transportpce-models-19.1.0
Also, update the netconf/device revision imports to rev231024.
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I154c6d4b457d0a0953024acce6bf94e945626657
Gilles Thouenon [Wed, 25 Oct 2023 11:35:29 +0000 (13:35 +0200)]
Bump jgrapht upstream dependency to 1.5.2
- bump to the latests jgrapht version
- replace the KShortestSimplePaths deprecated algo by the new
YenKShortestPath one
JIRA: TRNSPRTPCE-770
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I0fefeefbab1d195bfbb466fd3f68cfffe19a0c77
Gilles Thouenon [Wed, 25 Oct 2023 11:30:09 +0000 (13:30 +0200)]
Fix PCE bug to select the path proposed by GNPy
Introduce the "loose" or "strict" mode to differentiate two ways to
manage include node constraints: either the path must simply include
some nodes whatever the order of node inside the list is, or the path
must be exactly equal to the list of nodes.
JIRA: TRNSPRTPCE-769
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I34c0e3491fc341af3de0ff5b0dc702f40c7dd653
Gilles Thouenon [Wed, 25 Oct 2023 11:24:11 +0000 (13:24 +0200)]
Add pce-constraint-mode enum in pce yang model
This enum will allow to select a way to manage hardconstraints, either
in a "loose" or "strict" mode.
Update import version.
JIRA: TRNSPRTPCE-769
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: Iaa91f34f2d9129471b29c51ff7bd506ad42baa86
Guillaume Lambert [Tue, 31 Oct 2023 14:29:51 +0000 (14:29 +0000)]
Merge "Update tox documentation link in tox-guide"
Guillaume Lambert [Tue, 31 Oct 2023 14:19:59 +0000 (14:19 +0000)]
Merge "Fix port-mapping bug for 7.1 device-models"