transportpce.git
6 weeks agoImplement client create service frequency choice 83/113983/23
Joakim Törnqvist [Mon, 14 Oct 2024 12:42:33 +0000 (14:42 +0200)]
Implement client create service frequency choice

Implement the augmentations found in:
transportpce-service-spectrum-constraint@2023-09-07.yang.

APIImpact

The properties "frequency-range" and "frequency-slot" are implemented.
The properties "frequency-slot" is only valid when "service-format"
is set to "other".

Allowing the client to set frequency-slot using any other type of
service-format may cause unintended side effects such as the mc
interface (e.g. 37.5GHz) being smaller than the nmc
interface (e.g. 40GHz).

POST /rests/operations/org-openroadm-service:service-create
{
    "input": {
        ...
        "service-a-end": {
            ...
            "service-format": "other",
            "frequency-range": {
                "min-frequency": 191.4,
                "max-frequency": 191.5
            },
            "frequency-slot": {
                "center-frequency": 193.1,
                "slot-width": 37.5
            },
            ...
        },
        "service-z-end": {
            ...
            "service-format": "other",
            "frequency-range": {
                "min-frequency": 191.4,
                "max-frequency": 191.5
            },
            "frequency-slot": {
                "center-frequency": 193.1,
                "slot-width": 37.5
            },
            ...
        }
    }
}

Frequency Range
---------------

"frequency-range": {
    "min-frequency": 192.1,
    "max-frequency": 194.1
}

Allows the client to narrow down the frequency spectrum from
which TPCE chooses a range for the service. The values
are expected to be in THz (eg. 192.1).
If the client specifies a larger frequency range than
is needed for for the service, TPCE may choose a subset
of the range.

Frequency Slot
--------------

"frequency-slot": {
    "center-frequency": 193.2,
    "slot-width": 37.5
}

Allows the client to select a specific center frequency and slot width.
Should typically be used on its own without "frequency-range".
Valid values for slot-width are defined by 12.5 x m, where m is a
positive integer greater or equal to 1.
Omitting the property "slot-width" will cause TPCE to try to
select an appropriate range automatically using "center-frequency".

Combining frequency-range and frequency-slot
--------------------------------------------

Although there is no restriction preventing the client from using both
frequency-range and frequency-slot, doing so provides no real benefit.
The exception is this case where center-frequency is left out:

"frequency-range": {
    "min-frequency": 191.325,
    "max-frequency": 194.0
},
"frequency-slot": {
    "slot-width": 25
}

In this case, TPCE should select an available frequency range of 25GHz
within the range 191.325 - 194.0.

Code Changes
------------

The primary change is in the method getSpectrumAssignment in the class
PostAlgoPathValidator. The method implements the package in
org.opendaylight.transportpce.pce.frequency.

The secondary change is the class PceComplianceCheck. It has been
updated to also validate the new frequency related parameters
in the updated service-create API body.

The packages aside, the rest of the changes in the existing
classes is mostly a ripple effect due to the changes in the class
PostAlgoPathValidator. See the extracted code below added with
comments for further explanation.

public class PostAlgoPathValidator {
    ...
    private SpectrumAssignment getSpectrumAssignment(
            GraphPath<String, PceGraphEdge> path,
            Map<NodeId, PceNode> allPceNodes,
            int spectralWidthSlotNumber) {
        ...
        Select frequencySelectionFactory =
                new FrequencySelectionFactory();

        // Find the available frequencies based on available
        // frequencies on the nodes, client input and
        // the frequencies available to the customer.
        BitSet assignableBitset =
                frequencySelectionFactory.availableFrequencies(
                        clientInput,
                        spectrumConstraint,
                        result
                );

        LOG.debug("Assignable bitset: {}", assignableBitset);

        // Find a spectrum using the available spectrum and a
        // slot width. The slot width is either spectralWidthSlotNumber
        // or the slot width found in the slot-width property, i.e.
        // API input. slot-width property will overried
        // spectralWidthSlotNumber.
        return computeBestSpectrumAssignment(
            assignableBitset,
            clientInput.slots(spectralWidthSlotNumber),
            isFlexGrid
        );
    }
}

JIRA: TRNSPRTPCE-833
Change-Id: I3d8f73924a0bf192394e3f15f20330cef6edb699
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
6 weeks agoNew packages simplifying picking service frequency 82/113982/20
Joakim Törnqvist [Mon, 14 Oct 2024 12:41:23 +0000 (14:41 +0200)]
New packages simplifying picking service frequency

The intention behind the packages is to simplify selecting
an available frequency range from which a subset may be setup
for a new service.

Choosing a frequency range depends on these criteria:

1) Is the "customer" limited to a certain range?
2) The available range on the nodes for the service.
3) The service format (type).
4) The requested frequency range presented in the service
   create request (i.e. API body).
5) The requested center frequency presented in the
   service create request (i.e. API body).

The class FrequencySelectionFactory in the 'frequency' package brings
all the pieces together solving the requirements above.

There is also a new package 'input' dealing with input validation.

Example #1: Determine the available spectrum for the new service
----------------------------------------------------------------

/**
 * Determine the available spectrum for the new service.
 * A frequence range from a service may be picked from
 * the output of this method.
 *
 * @param input API input.
 * @param availableSpectrumOnNodes
 *             The available spectrum on the nodes
 *             selected for the new service.
 * @param customerSpectrumConstraint
 *             The customer may be restricted to this
 *             spectrum.
 * @return The spectrum that is available for the new
 *         service.
 */
BitSet availableSpectrum(
        PathComputationRequestInput input,
        BitSet availableSpectrumOnNodes,
        BitSet customerSpectrumConstraint) {

    ClientInput clientInput = new ApiClientInput(
            input,
            new FrequencyIntervalFactory(768, 6.25),
            new FrequencySpectrum(
                    new SpectrumIndex(
                            191.325,
                            6.25,
                            768
                    )
            ),
            new ServiceFrequency(),
            6.25
    );

    Select frequencyFactory =
            new FrequencySelectionFactory(768);

    BitSet availableSpectrum =
            frequencyFactory.availableFrequencyRange(
                    clientInput,
                    customerSpectrumConstraint,
                    availableSpectrumOnNodes
    );

    return availableSpectrum;
}

Example #2:Validate PathComputationRequestInput
-----------------------------------------------
The intent with this example code is to validate this part of
the service-create api body:

"service-format": "other",
"frequency-slot": {
    "center-frequency": 193.1,
    "slot-width": 37.5
},

In short, slot-width need to be in 12.5 GHz increments and
center-frequency in 6.25 GHz increments. i.e. center-frequency
is expected to be 6.25 GHz increments from the anchor frequency
193.1 (e.g.  ..., 193.09375, 193.1, 193.10625, ...).

Also, frequency-slot is only valid together with service-format = other.

public void validateInput(PathComputationRequestInput input) {
    Factory inputValidationFactory = new ValidInputFactory();
    Valid validInput = inputValidationFactory.instantiate(
            191.325,
            193.1,
            6.25,
            12.5,
            768
    );

    if (!validInput.isValid(input)) {
        LOG.error(
                "PCEInput validation failed: {}",
                validInput.lastErrorMessage()
        );
    }
}

JIRA: TRNSPRTPCE-833
Change-Id: I565198a5906ac600ada204b100f41eb9fe7aeb82
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
6 weeks agoImplement service-format 'other' 73/114473/18
Joakim Törnqvist [Thu, 14 Nov 2024 06:49:27 +0000 (07:49 +0100)]
Implement service-format 'other'

Add "service-format": "other" to service-create api body.
The primary difference between this format and the others is that
"other" will set the nmc interface 8GHz narrower than the mc interface.

APIImpact

POST /rests/operations/org-openroadm-service:service-create
{
    "input": {
        ...
        "service-a-end": {
            ...
            "service-format": "other"
            ...
        },
        "service-z-end": {
            ...
            "service-format": "other"
            ...
        }
    }
}

Background

The justification for this change at this time, is to prepare for
adding frequency selection properties to the API body at a later commit.
i.e. we want to allow the client to choose a service center-frequency
and slot-width but only using the service-format "other". Setting
center-frequency and slot-width using any other type of service-format
may cause less desirable side effects.

The frequency selection code will follow in a separate commit. Splitting
them up makes it easier to distinguish one piece of functionality
from the other.

JIRA: TRNSPRTPCE-833
Change-Id: I82a130c0cac5647caf91f22c53825b3620e5c001
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
6 weeks agoAugment service-create adding frequency properties 77/113977/11
Joakim Törnqvist [Mon, 14 Oct 2024 12:26:40 +0000 (14:26 +0200)]
Augment service-create adding frequency properties

This commit augments the OpenmROADM create-service API with
frequency related properties.
The intent is to provide a way for the client to influence/choose
the frequency range when setting up a service.

APIImpact

Modifies the service-create body with these new properties currently
not in the OpenRoadm standard:

* min-frequency     (THz)
* max-frequency     (THz)
* center-frequency  (THz)
* slot-width        (GHz)

Example:

POST /rests/operations/org-openroadm-service:service-create
{
    "input": {
        ...
        "service-a-end": {
            ...
            "frequency-range": {
                "min-frequency": 191.4,
                "max-frequency": 191.5
            },
            "frequency-slot": {
                "center-frequency": 193.1,
                "slot-width": 37.5
            },
            ...
        },
        "service-z-end": {
            ...
            "frequency-range": {
                "min-frequency": 191.4,
                "max-frequency": 191.5
            },
            "frequency-slot": {
                "center-frequency": 193.1,
                "slot-width": 37.5
            },
            ...
        }
    }
}

NOTE: While this commit augments the service-create API body, it does
not implement these properties in TPCE.

Intention
---------

The intention behind these properties to allow the client to
choose which frequency range is used for the service.
The intention is not to allow the client to choose a different
frequency range in A end vs Z end.

Frequency Range
---------------

"frequency-range": {
    "min-frequency": 192.1,
    "max-frequency": 194.1
}

Allows the client to narrow down the frequency spectrum from
which TPCE chooses a range for the service. The values
are expected to be in THz (eg. 192.1).
If the client specifies a larger frequency range than
is needed for for the service, TPCE may choose a subset
of the range.

Frequency Slot
--------------

"frequency-slot": {
    "center-frequency": 193.2,
    "slot-width": 37.5
}

Allows the client to select a specific center frequency and slot width.
Should typically be used on its own without "frequency-range".
Valid values for slot-width are defined by 12.5 x m, where m is a
positive integer greater or equal to 1.
Omitting the property "slot-width" will cause TPCE to try to
select an appropriate range automatically using "center-frequency".

Combining frequency-range and frequency-slot
--------------------------------------------

Although there is no restriction preventing the client from using both
frequency-range and frequency-slot, doing so provides no real benefit.
The exception is this case where center-frequency is left out:

"frequency-range": {
    "min-frequency": 191.325,
    "max-frequency": 194.0
},
"frequency-slot": {
    "slot-width": 25
}

In this case, TPCE should select an available frequency range of 25GHz
within the range 191.325 - 194.0.

JIRA: TRNSPRTPCE-833
Change-Id: I02c8db0d0a7beb0ff0a20334b2db192504c5e912
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
6 weeks agoMerge "Set serviceFeasibilityCheck to false for some RPCs"
Gilles Thouenon [Thu, 19 Dec 2024 12:16:43 +0000 (12:16 +0000)]
Merge "Set serviceFeasibilityCheck to false for some RPCs"

6 weeks agoMerge "Ignore end node without available TPs in PCE"
Gilles Thouenon [Thu, 19 Dec 2024 12:16:25 +0000 (12:16 +0000)]
Merge "Ignore end node without available TPs in PCE"

6 weeks agoMerge "Check if SRG has available PPs before access"
Gilles Thouenon [Thu, 19 Dec 2024 12:16:05 +0000 (12:16 +0000)]
Merge "Check if SRG has available PPs before access"

6 weeks agoReimplement GnpyConsumer without jersey 66/114766/1
Gilles Thouenon [Sun, 15 Dec 2024 13:42:13 +0000 (14:42 +0100)]
Reimplement GnpyConsumer without jersey

- clean pce pom file to remove jakarta and jersey dependencies
- reimplement GnpyConsumer to use basic HttpClient
- adapt unit tests using wiremock

JIRA: TRNSPRTPCE-837
Change-Id: I463b91d305c87e266a43836db0e22535c3d032b2
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Co-authored-by: manuedelf <emmanuelle.delfour@orange.com>
6 weeks agoClean the odl-transportpce-dmaap-client feature 65/114765/1
Gilles Thouenon [Tue, 17 Dec 2024 18:08:48 +0000 (19:08 +0100)]
Clean the odl-transportpce-dmaap-client feature

Use odl-jersey-2 feature to avoid packaging jakarta.inject and causing
possibly big trouble in karaf when installing the feature

Change-Id: I1947bd8e86f86204ec015d0591dd503f9f119927
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
6 weeks agoClean JsonStringConverter 64/114764/1
Gilles Thouenon [Tue, 17 Dec 2024 14:31:39 +0000 (15:31 +0100)]
Clean JsonStringConverter

Remove a duplicated line

Change-Id: I850b2d84483e543f97e5854731071aa1be70f30f
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
6 weeks agoclean the odl-transportpce feature 63/114763/1
Gilles Thouenon [Mon, 16 Dec 2024 16:26:04 +0000 (17:26 +0100)]
clean the odl-transportpce feature

- remove from the odl-transportpce feature packaging the jakarta.inject
  dependency
- replace some jersey dependencies by the odl-jersey-2

JIRA: TRNSPRTPCE-837
Change-Id: If6b167e0a395bc5d3998a72c7c2b49c298ca1a4c
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
6 weeks agoClose properly the GnpyConsumer component 62/114762/1
Gilles Thouenon [Fri, 13 Dec 2024 10:03:49 +0000 (11:03 +0100)]
Close properly the GnpyConsumer component

Change-Id: Ie519e98d9eb228089f24b172723b921deef88b36
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
2 months agoAdd Func Test for Topology extension 37/113937/36
orenais [Thu, 10 Oct 2024 11:54:18 +0000 (13:54 +0200)]
Add Func Test for Topology extension

JIRA: TRNSPRTPCE-828
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Ibc714402e4ae2a5bbd2e8fe79bd3dd53903fcb4c

2 months agoAdd Tapi Abstracted Node to OR Topo 57/114257/25
orenais [Wed, 30 Oct 2024 09:40:57 +0000 (10:40 +0100)]
Add Tapi Abstracted Node to OR Topo

- Add in networkModelServiceImpl a method to create
  a TAPI-SBI-ABS-NODE node at each level of the OR
  topology.
- Call this method at controller initialization if
  the tapi feature is activated from TapiProvider.
- Adjust tapi functional test considering that a new
  node TAPI-SBI-ABS-NODE is added at tapi feature
  initialization.
- Add in NetworkModelServiceImpl a method to delete
  The node and associated links (linkClass =  Inter-
  domain or alienToTapi) at tapi feature desinstal-
  lation.
- Add unsintall_karaf_features to test_utils
- Unsinstall tapi feature at the end of each tapi
  functional test.

JIRA: TRNSPRTPCE-827
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Iebe33624e1a71f595aef515e705f41941ab64a1e

2 months agoCreate topo Context at Init for Alien & SBI 23/113723/17
orenais [Thu, 26 Sep 2024 17:14:54 +0000 (19:14 +0200)]
Create topo Context at Init for Alien & SBI

JIRA: TRNSPRTPCE-830
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Ib4ffcf68cd26841aaf430738f348317f55bb203c

2 months agoHandle modifications in existing RPCs and new RPCs 15/113715/13
orenais [Tue, 24 Sep 2024 15:29:21 +0000 (17:29 +0200)]
Handle modifications in existing RPCs and new RPCs

-Handle new RPC init-interdomain-links
-Handle new parameters related to T-API and OpenConfig
 added in existing RPC.

JIRA: TRNSPRTPCE-824
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Ib3d351b660dcc975b5c68e43b39952d1dfea1d1f

2 months agoCheck if SRG has available PPs before access 90/114490/2
Jonas Mårtensson [Tue, 19 Nov 2024 08:45:11 +0000 (09:45 +0100)]
Check if SRG has available PPs before access

If all PPs are used for any SRG, node validation will crash in
getRdmSrgClient because it tries to access the first element of
the empty available PP set, causing path computation to fail even
if there are other SRGs with available PPs.

This fixes the issue by moving the existing check for empty
available SRG PPs to before trying to access the first element.

JIRA: TRNSPRTPCE-835
Change-Id: I499f84b22f709504f3c67269ed4491ca7ed4246d
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
2 months agoIgnore end node without available TPs in PCE 93/114493/2
Jonas Mårtensson [Tue, 19 Nov 2024 08:47:45 +0000 (09:47 +0100)]
Ignore end node without available TPs in PCE

When PCE validates a node, if it is an end node (SRG or XPONDER) it
initializes TPs and if there are no available TPs, it sets valid to
false. This should result in the node being ignored by path
computation but currently it does not.

This fixes node validation so that such a node is ignored.

JIRA: TRNSPRTPCE-836
Change-Id: I7d133cf2009280b60cc5dd3b728c4b4229a518e7
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
2 months agonetworkutils RPCs adjusted for topo extension 14/113714/8
orenais [Tue, 24 Sep 2024 09:39:18 +0000 (11:39 +0200)]
networkutils RPCs adjusted for topo extension

JIRA: TRNSPRTPCE-823
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I633a78177e76bf2e1a1f63222bf48b116b4bbaec

2 months agoYang file to augment OR topology 13/113713/8
orenais [Tue, 24 Sep 2024 08:24:25 +0000 (10:24 +0200)]
Yang file to augment OR topology

JIRA: TRNSPRTPCE-822
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I93584290543f9e6898a9979f9d6124051362f4a6

2 months agoAdjust tox ini tests sequencing 46/114246/7
orenais [Tue, 29 Oct 2024 16:36:31 +0000 (17:36 +0100)]
Adjust tox ini tests sequencing

Change sequencing to perform tapi func tests after testsPCE
which makes all tests sequential, to check if func test run
better.

Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I9a1508848f9885ce3a3421e6c272525b4feedac3

2 months agoMerge changes I5958bef2,Icbca02a2
Gilles Thouenon [Sat, 2 Nov 2024 16:52:41 +0000 (16:52 +0000)]
Merge changes I5958bef2,Icbca02a2

* changes:
  Fix a few bugs processing Topo
  Populate OM in portMapping and Topo

2 months agoSet serviceFeasibilityCheck to false for some RPCs 71/113971/4
Jonas Mårtensson [Sat, 12 Oct 2024 16:17:48 +0000 (18:17 +0200)]
Set serviceFeasibilityCheck to false for some RPCs

Requesting a service feasibility check sets the related variable to
true in PCE listener. Other service RPCs did not set it back to false
when requested, which resulted in service handling exiting after path
computation was completed and did not continue with service rendering
and OLM setup. This change sets service feasibility to false for other
service RPCs.

JIRA: TRNSPRTPCE-831

Change-Id: I6a9f3d00c908ecf82b19ba55ee4afd13b19822d3
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
3 months agoFix a few bugs processing Topo 07/112607/27
orenais [Wed, 17 Jul 2024 14:11:20 +0000 (16:11 +0200)]
Fix a few bugs processing Topo

Second implementation without changing supporting-odu4
to a leaflist

JIRA: TRNSPRTPCE-759
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I5958bef26014f31e08bf8000447028896b6d3c8c

3 months agoPopulate OM in portMapping and Topo 87/112687/19
orenais [Mon, 22 Jul 2024 09:59:20 +0000 (11:59 +0200)]
Populate OM in portMapping and Topo

- Populate Operational mode in Port Mapping from profile
  (for device R7.1)
- Populate rate in PortMapping from supported Interface
  capabilities (All device versions
  & supported Operational mode (device R7.1)
- Propagate Operational mode from PortMapping to topology.
- Adjust tox-ini to have tests121 performed sequentially
  after tests221 to avoid failures on the gate.

JIRA: TRNSPRTPCE-708
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: Icbca02a277d60b340963b3932fec90dc02ece3f0

3 months agoMake lighty build voting in the CI 75/114275/1
Gilles Thouenon [Wed, 30 Oct 2024 17:25:43 +0000 (18:25 +0100)]
Make lighty build voting in the CI

Change-Id: I5498b693b138a74e9c3da826e5a393631076ec1b
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoFix bad import in lighty module 74/114274/1
Gilles Thouenon [Wed, 30 Oct 2024 17:23:12 +0000 (18:23 +0100)]
Fix bad import in lighty module

Change-Id: I2f8fe3080b3b21c6fe5581e3b3890efc4e12e62f
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoBump transportpce-models to 21.1.0 72/114272/1
Gilles Thouenon [Wed, 30 Oct 2024 10:37:44 +0000 (11:37 +0100)]
Bump transportpce-models to 21.1.0

Adopt the released version

Change-Id: I672d1c552e8defd9a76e62025450f8ff45400bad
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoBump upstream dependencies to Scandium-SR1 56/114256/1
Gilles Thouenon [Tue, 29 Oct 2024 09:45:05 +0000 (10:45 +0100)]
Bump upstream dependencies to Scandium-SR1

Adopt:
- odlparent-14.0.4
- yangtools-14.0.5
- mdsal-14.0.4
- netconf-8.0.3
- lighty-21.0.0
- transportpce-models-21.1.0-SNAPSHOT

Also update netconf.device package revision.

Change-Id: Iece3f0dfff17f15c188c021e829e8a20fa4d1d73
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoBump netconf to 8.0.2 55/114255/1
Robert Varga [Fri, 20 Sep 2024 06:41:29 +0000 (08:41 +0200)]
Bump netconf to 8.0.2

Pick up bugfixes from upstream.
Also
- update code since NetconfNode has moved to the NetconfNodeAugment
object
- adapt functional tests library

Change-Id: I9b9bd25b85da8be4dcdfbf10ccc3b91af7fe27fd
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Co-authored-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoBump transportpce-models version to 21.0.0 54/114254/1
Gilles Thouenon [Sun, 8 Sep 2024 08:46:34 +0000 (10:46 +0200)]
Bump transportpce-models version to 21.0.0

Change-Id: Idbb3e0630195abf5d9d986ae3b702c95595140d6
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoFixup javadoc checkstyle issues 53/114253/1
Gilles Thouenon [Tue, 29 Oct 2024 10:56:38 +0000 (11:56 +0100)]
Fixup javadoc checkstyle issues

Change-Id: I175f14bbd99fc9ae1a4284ebcb74c32cd96ae3c8
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoRefactor test_utils lib to improve the Reg search 52/114252/1
Gilles Thouenon [Fri, 20 Sep 2024 18:43:34 +0000 (20:43 +0200)]
Refactor test_utils lib to improve the Reg search

Adapt the wait_until_log_contains method in order to be able to detect
different Regex, depending on the context of use.

JIRA: TRNSPRTPCE-820
Change-Id: I516d4a23b052c30c219150a6b6ecee73ebbc3ecf
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoUpdate netconf node mount settings in func. tests 51/114251/1
Gilles Thouenon [Sat, 21 Sep 2024 03:19:30 +0000 (05:19 +0200)]
Update netconf node mount settings in func. tests

Many NETCONF session reconnection issues are observed when running
functional tests on the CI. Update some settings.

Change-Id: I56f8edad2e83a7973b271f5840f936cc924f407b
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoBump project version to 11.0.0-SNAPSHOT 50/114250/1
Gilles Thouenon [Wed, 30 Oct 2024 08:16:20 +0000 (09:16 +0100)]
Bump project version to 11.0.0-SNAPSHOT

Start next Titanium development iteration

Change-Id: I087100311ec6fc7f9a921fb77c95ed21968b156b
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
3 months agoMerge "Fix grid spectrum computation (reversed logic)"
Gilles Thouenon [Tue, 29 Oct 2024 17:01:02 +0000 (17:01 +0000)]
Merge "Fix grid spectrum computation (reversed logic)"

4 months agoFix grid spectrum computation (reversed logic) 34/113634/10
Joakim Törnqvist [Tue, 24 Sep 2024 08:07:38 +0000 (10:07 +0200)]
Fix grid spectrum computation (reversed logic)

Corrects an issue where flexgrid spectrum assignment
searches for available frequencies in 50GHz steps and
fixgrid searches in 6.25GHz steps. The reverse makes more sense.

Consider the for-loop in the method computeBestSpectrumAssignment
in the class PostAlgoPathValidator.

    for (int i=spectrumOccupation.size(); i >= spectralWidthSlotNumber;
            i -= isFlexGrid ? spectralWidthSlotNumber : 1) {
        ...
    }

* If isFlexGrid = true and spectralWidthSlotNumber = 8, then this loop
  subtracts 8 from i each iteration.
* If isFlexGrid = false, this loop subtracts 1 from i each iteration.

Changes
===============

In essence, fixGrid behaves as flexGrid and vice versa. This commit
inverts the logic. As an example, the bug affects scenarios where
part of a 50GHz range is available. See the examples below.

The method computeBestSpectrumAssignment is changed from private
to public access to allow unit testing. Two unit tests are also
added in the new class PostAlgoPathValidatorTest.

Examples
===============

Assuming the available frequency range can be represented
by this BitSet (1=available, 0=used):

                      |         50GHz         |         50GHz         |
SLOT:       0 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
AVAILABLE:  0 0      0  1  1  1  1  1  1  1  1  1  1  1  1  0  0  0  0

Example FixGrid
===============

Compute spectrumassignment:

    BitSet available = new BitSet(768);
    available.set(16, 28);
    postAlgoPathValidator.computeBestSpectrumAssignment(
            available,
            8,
            false
    )

The above example will produce this result:

    SpectrumAssignment{beginIndex=20, flexGrid=false, stopIndex=27}

This may be illustrated as:
                      |         50GHz         |         50GHz         |
SLOT:       0 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ASSIGNED:   0 0      0  0  0  0  0  1  1  1  1  1  1  1  1  0  0  0  0

FIX
------------

After this commit, the above example will produce this result:

    SpectrumAssignment{beginIndex=16, flexGrid=false, stopIndex=23}

This may be illustrated as:
                      |         50GHz         |         50GHz         |
SLOT:       0 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ASSIGNED:   0 0      0  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0

EXAMPLE FlexGrid
================

Compute spectrumassignment:

    BitSet available = new BitSet(768);
    available.set(16, 28);
    postAlgoPathValidator.computeBestSpectrumAssignment(
            available,
            8,
            true
    )

The above example will produce this result:

    SpectrumAssignment{beginIndex=16, flexGrid=true, stopIndex=23}

This may be illustrated as:
                      |         50GHz         |         50GHz         |
SLOT:       0 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ASSIGNED:   0 0      0  1  1  1  1  1  1  1  1  0  0  0  0  0  0  0  0

FIX
------------

After this commit, the above example will produce this result:

    SpectrumAssignment{beginIndex=20, flexGrid=false, stopIndex=27}

This may be illustrated as:
                      |         50GHz         |         50GHz         |
SLOT:       0 1 ... 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
ASSIGNED:   0 0      0  0  0  0  0  1  1  1  1  1  1  1  1  0  0  0  0

JIRA: TRNSPRTPCE-821
Change-Id: Idb4e7509a9575775846f6d3f0dab63a9ba2ea927
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoLink node id to node name conversion in TAPI 58/113558/3
Joakim Törnqvist [Wed, 18 Sep 2024 06:57:00 +0000 (08:57 +0200)]
Link node id to node name conversion in TAPI

Corrects an issue where a value such as ROADM-A-xxxxx
would not return the node name ROADM-A.

JIRA: TRNSPRTPCE-818
Change-Id: Ib6f73bc9eafa39cead5d29d312cd8f8b660cb116
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoUpgrade lightynode to Ca-SR1 17/112417/3
Christophe Betoule [Tue, 2 Jul 2024 09:52:49 +0000 (11:52 +0200)]
Upgrade lightynode to Ca-SR1

This new version of Lightynode is aligned with lighty-core-20.1.0
dependancy.

JIRA: TRNSPRTPCE-800
Change-Id: Ib7485690249ce011e0e851bebb6ee2cb8f6867b2
Signed-off-by: Christophe Betoule <christophe.betoule@orange.com>
4 months agoError due to empty list of XPDR in TAPI 92/112492/17
Joakim Törnqvist [Mon, 8 Jul 2024 11:22:55 +0000 (13:22 +0200)]
Error due to empty list of XPDR in TAPI

When an OpenROADM service is converted to TAPI, an exception
(NoSuchElementException) is thrown.

JIRA: TRNSPRTPCE-804
Change-Id: I29ac92817050b4e2cbad73c752442874bbf2a9df
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoError due to duplicate roadm node id key in TAPI 91/112491/16
Joakim Törnqvist [Mon, 8 Jul 2024 11:05:26 +0000 (13:05 +0200)]
Error due to duplicate roadm node id key in TAPI

Resolves an issue where an IllegalArgumentException was thrown
due to duplicate node id keys for ROADMs. A node id such as
ROADM-B-SRG1 was transformed into ROADM, instead of ROADM-B.

JIRA: TRNSPRTPCE-803
Change-Id: I1198454b3749dbfeaa1329b3efc94e28c3f6ddd2
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoError in TAPI creating frequency ranges 38/112438/25
Joakim Törnqvist [Wed, 3 Jul 2024 10:27:16 +0000 (12:27 +0200)]
Error in TAPI creating frequency ranges

When an OpenROADM service is converted to TAPI, an exception
(ArrayIndexOutOfBoundsException) is thrown.
A byte array (size 96) was used when the code was actually expecting
size 768 (i.e. 96 x 8), when trying to create a Map<Double, Double>
with frequency ranges.

The use of method getFreqMapFromBitSet in ConvertORToTapiTopology
has been replaced with the package
org.opendaylight.transportpce.tapi.frequency.

A refactored version of getFreqMapFromBitSet can be found in the class
org.opendaylight.transportpce.tapi.frequency.NumericFrequency.

JIRA: TRNSPRTPCE-802
Change-Id: I423507decaae38b44d9f6968882179c3ec1b11d4
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoNew Tapi package dealing with frequency BitSets 37/112437/22
Joakim Törnqvist [Wed, 3 Jul 2024 10:25:45 +0000 (12:25 +0200)]
New Tapi package dealing with frequency BitSets

Refactored code creating classes capable of converting
byte to BitSet to numeric frequency ranges.

e.g. byte[] = {-1} -> 191.325:191.375 THz

Each byte in an array is treated as 8 bits. Meaning an array
of 96 bytes is treated as a BitSet of 768 bits. The bits may
subsequently be converted to a map where the key is the
lower frequency and the value is the upper frequency in a range.

The package treats each signed byte at "face value". FlexGrid
or FixGrid data are treated equally.

Examples
byte[] = {1}       -> BitSet: {0}               -> 191.325:191.33125
byte[] = {15}      -> Bitset: {0,1,2,3}         -> 191.325:191.35
byte[] = {-16}     -> BitSet: {4,5,6,7}         -> 191.35:191.375
byte[] = {-1}      -> BitSet: {0,1,2,3,4,5,6,7} -> 191.325:191.375
byte[] = {-128}    -> BitSet: {7}               -> 191.36875:191.375
byte[] = {-128, 1} -> BitSet: {7,8}             -> 191.36875:191.38125

Package Overview

The main parts of this package are the classes AvailableGrid and
NumericFrequency. AvailableGrid is used to ease converting
a byte array to either assigned (used) or available frequencies
represented by a BitSet.

AvailableGridFactory provides a way to instantiate an AvailableGrid
object using either available or used frequency grid byte data.

The method getFreqMapFromBitSet in ConvertORToTapiTopology has
been modified and copied to NumericFrequency and is used to
convert a bitset to a Map<Double, Double> (numeric frequency range).

The interface Math is intended to make it easier to unit test the code.
The implementation of Math (i.e. FrequencyMath) simply wraps calls to
GridUtils.getStartFrequencyFromIndex(...) and
GridUtils.getStopFrequencyFromIndex(...).
Since GridUtils depends on global constants, any changes to those
constants may result in unit tests failing. The interface 'Math'
provides a way to test the code using predictable data.

Example usage:

/**
 * This method converts a byte array (e.g. 96 elements) representing
 * frequency ranges into a BitSet (i.e. 768 bits), and finally into
 * a Map<Double, Double> where the key represents the start frequency
 * and the value the end frequency in a range.
 *
 * In short, this example will convert...
 *     byte[] = {-1}
 * ...into...
 *      Map<Double, Double> = 191.325:191.375
 */
public Map<Double, Double> availableMap(byte[] availableByteMap) {

    Available available = new AvailableGrid(availableByteMap);

    // This object will help us convert an instance of 'Available'
    // into a numeric frequency range.
    Numeric numericFrequency = new NumericFrequency(
            GridConstant.START_EDGE_FREQUENCY,
            GridConstant.EFFECTIVE_BITS,
            new FrequencyMath()
    );

    // Convert BitSet data contained in the bitMap object
    // into a frequency range map.
    // Note: If instead we want the assigned frequencies
    //       we could execute:
    //       numericFrequency.assignedFrequency(available):
    return numericFrequency.availableFrequency(available);
}

JIRA: TRNSPRTPCE-802
Change-Id: I578abad37351eb4ead5e8907207f1384df27f09a
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoFrequency rounding error in GridUtils 26/113326/3
Joakim Törnqvist [Wed, 28 Aug 2024 12:06:10 +0000 (14:06 +0200)]
Frequency rounding error in GridUtils

There is a frequency rounding error in the class GridUtils, methods
 - getStartFrequencyFromIndex(int index)
 - getStopFrequencyFromIndex(int index)

As an example, GridUtils.getStartFrequencyFromIndex(1) will return
191.33124999999998 instead of 191.33125.

HOW TO REPRODUCE

@Test
void testStartEnd() {

    System.out.println(" Index |        Start       |      End ");
    System.out.println(
        " ----- |--------------------|--------------------");

    for (int i = 0; i < 8; i++) {
        BigDecimal start = GridUtils.getStartFrequencyFromIndex(i);
        BigDecimal end = GridUtils.getStopFrequencyFromIndex(i);

        String message =
            String.format(" %5d | %18s | %18s ", i, start, end);

        System.out.println(message);
    }
}

The above code will output (note index 1 and 6 in the table):

 Index |        Start       |      End
 ----- |--------------------|--------------------
     0 |            191.325 |          191.33125
     1 | 191.33124999999998 | 191.33749999999998
     2 |           191.3375 |          191.34375
     3 |          191.34375 |          191.35000
     4 |             191.35 |          191.35625
     5 |          191.35625 |          191.36250
     6 | 191.36249999999998 | 191.36874999999998
     7 |          191.36875 |          191.37500

After this commit the same code above will produce:

 Index |        Start       |      End
 ----- |--------------------|--------------------
     0 |            191.325 |          191.33125
     1 |          191.33125 |          191.33750
     2 |           191.3375 |          191.34375
     3 |          191.34375 |          191.35000
     4 |             191.35 |          191.35625
     5 |          191.35625 |          191.36250
     6 |           191.3625 |          191.36875
     7 |          191.36875 |          191.37500

JIRA: TRNSPRTPCE-812
Change-Id: Idcc40d2c1aca2bd18ac0fcc5daed26c004ed7a58
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
4 months agoBump upstream dependencies for 2024.09 Scandium 73/112973/6
Gilles Thouenon [Thu, 15 Aug 2024 07:23:46 +0000 (09:23 +0200)]
Bump upstream dependencies for 2024.09 Scandium

Adopt:
- odlparent-14.0.3
- yangtools-14.0.4
- mdsal-14.0.2
- netconf-8.0.1
- transportpce-models-21.0.0-SNAPSHOT

Also,
- update dependencies in pom.xml files due to package rename and
  associated imports
- adapt the implementation of DeviceListeners
- disable the tox buildlighty's vote in the CI

JIRA: TRNSPRTPCE-815
Change-Id: Id31ee13f052c4d8718a9553fed82abb9386d831e
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
5 months agoImprove lightynode installation process 30/113330/2
Gilles Thouenon [Fri, 30 Aug 2024 08:55:43 +0000 (10:55 +0200)]
Improve lightynode installation process

The same version of lightynode simulator is used for all functional
tests. We no longer need to install it several times before each test
series.
- improve lightynode installation process
- adapt also tox.ini

JIRA: TRNSPRTPCE-813
Change-Id: I380fa9bb2a876e2b3ed083ee335bf004926b262c
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
5 months agoIncrease the kafka producer reconnect backoff time 12/113312/1
Gilles Thouenon [Tue, 27 Aug 2024 14:32:02 +0000 (16:32 +0200)]
Increase the kafka producer reconnect backoff time

Configure the kafka producer with a reconnection time at 10min (instead
of 500ms) to avoid polluting the logs with too many warnings messages.

JIRA: TRNSPRTPCE-807
Change-Id: Ie48800105bdeed8e3525d693cda1fc8e22c9bd24
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
6 months agoSearch available frequencies in TAPI cause error 56/112356/13
Joakim Törnqvist [Thu, 27 Jun 2024 13:02:31 +0000 (15:02 +0200)]
Search available frequencies in TAPI cause error

Resolves an issue causing a NoSuchElementException when
TAPI is activated and an OpenROADM service is copied to TAPI.

The exception was thrown during an iteration while attempting
to filter out available bitsets by using string comparison
that would never be true:

"AvailFreqMapsKey{mapName=cband}" != "cband"

JIRA: TRNSPRTPCE-801
Change-Id: I507c0e602fdee92df39e75ef0f9af2d2f23739e9
Signed-off-by: Joakim Törnqvist <joakim.tornqvist@smartoptics.com>
6 months agoFix shellcheck in installMavenUbuntu script 10/112910/1
Gilles Thouenon [Wed, 31 Jul 2024 08:30:38 +0000 (10:30 +0200)]
Fix shellcheck in installMavenUbuntu script

Change-Id: Ifdf2d839674f63018682ea0c45c84c468b099722
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
6 months agoMerge "Bump CI scripts to Ubuntu 20.04"
Gilles Thouenon [Wed, 31 Jul 2024 08:19:32 +0000 (08:19 +0000)]
Merge "Bump CI scripts to Ubuntu 20.04"

6 months agoBump CI scripts to Ubuntu 20.04 22/112222/6
Gilles Thouenon [Tue, 18 Jun 2024 08:34:23 +0000 (10:34 +0200)]
Bump CI scripts to Ubuntu 20.04

Build node on the CI have migrated from CentOS to Ubuntu-2004 which
already supports different versions of java.
- remove old installMavenCentOS.sh script which is now obsolete
- replace it with installMavenUbuntu.sh which configures java-21 and
  install maven 3.9.8

Change-Id: I50c29126cb2797d1ba4c386284c4015f8079f6df
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
7 months agoMerge "Debug tool for openconfig proprietary extensions"
Guillaume Lambert [Thu, 20 Jun 2024 08:32:41 +0000 (08:32 +0000)]
Merge "Debug tool for openconfig proprietary extensions"

7 months agoBump few upstream dependencies for Ca-SR1 29/112229/1
Gilles Thouenon [Fri, 14 Jun 2024 06:15:50 +0000 (08:15 +0200)]
Bump few upstream dependencies for Ca-SR1

Adopt:
- netconf-7.0.7 (critical fix)
- transportpce-models-20.1.2

JIRA: TRNSPRTPCE-799
Change-Id: I57a8efa611f9e7d9f80ecf2905ed22bf3b1cec29
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
7 months agoDebug tool for openconfig proprietary extensions 68/111368/18
guillaume.lambert [Fri, 12 Apr 2024 13:27:31 +0000 (15:27 +0200)]
Debug tool for openconfig proprietary extensions

Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I61e21b88029961186308a6a5373f562b6991c8a2

7 months agoFix CI Cent OS 8 configuration issue (workaround) 90/112090/12
guillaume.lambert [Wed, 12 Jun 2024 09:46:18 +0000 (11:46 +0200)]
Fix CI Cent OS 8 configuration issue (workaround)

- reverts commit 94578ec62abf23679af8557bde48e26e1b7bc7d7
  to reenable voting for checkbashisms and pre-commit

Mirrorlist URLs have been archived and moved to Cent OS vault.
https://forums.centos.org/viewtopic.php?t=78708&start=30
https://forums.centos.org/viewtopic.php?t=80698
This impacts Jenkins minions configuration.

- force vault use in yum repos config till this is fixed upstream

Change-Id: I87831c5fe4cb81031f75d42762e1ad16e296a3e5
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
7 months agoConsolidate ConnectivityUtils 14/111214/6
orenais [Fri, 29 Mar 2024 14:42:11 +0000 (15:42 +0100)]
Consolidate ConnectivityUtils

- Add spectrum information to Cep
- Centralize Topological_mode & TopoUUID handling in TapiProvider
- Refactor ConnectivityUtils adding CreateRoadmCepAndClientNeps to
factorize & backporting createCepRoadm and createRoadmNep into
ConvertORToTapiTopology to call it from Tapilink
- Move method to calculate fiber parameters from PceLink to NetworkUtils
to call them in TapiLink
- Add methods to create OTS & OMS Cep in TapiLinkImpl at init
- Add method to build OTS-Cep-Spec from OR OMS
- Add Test for OTS & OMS cep
- Refactor TapiLinkImpl & TapiORListener
- AddTest for PhotonicMediaNodeEdgePointSpec in Test of
convertORTopoToFullTapiTopoTest
- adapt tapi constructors in lighty build

JIRA: TRNSPRTPCE-759
Signed-off-by: orenais <olivier.renais@orange.com>
Change-Id: I2a1aeb3c413b315c46c66723342888c497365b6f

7 months agoFix common GridUtils comments 46/112046/3
orenais [Fri, 17 May 2024 08:53:53 +0000 (10:53 +0200)]
Fix common GridUtils comments

Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ia6b3813507337844e257ad5b7d9dd1b4cd971a4e

7 months agorefactoTapi2.4 Final touch 45/112045/3
Gilles Thouenon [Sun, 9 Jun 2024 17:11:33 +0000 (19:11 +0200)]
refactoTapi2.4 Final touch

Backport commit b6c6d93979d076cf5dac84f18df3b15c312961c1 from
stable/calcium branch.
Fix a commit handling error during the development...

Change-Id: I603aa131ace9f23ee364eca86943c330405134bb
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Co-authored-by: orenais <olivier.renais@orange.com>
7 months agoFix frequencies in TAPI ConvertORToTapiTopology 44/112044/3
orenais [Tue, 21 May 2024 12:34:34 +0000 (14:34 +0200)]
Fix frequencies in TAPI ConvertORToTapiTopology

JIRA: TRNSPRTPCE-764
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ie6c070aa718b4561f3ad73676f8eb3f49ca64034

7 months agoBump upstream dependencies to Ca-SR1 43/112043/3
Gilles Thouenon [Fri, 7 Jun 2024 18:41:15 +0000 (20:41 +0200)]
Bump upstream dependencies to Ca-SR1

Adopt:
- odlparent-13.1.3
- yangtools-13.0.6
- mdsal-13.0.4
- netconf-7.0.6
- transportpce-models-20.1.1

Aslo adapt lighty build to tapi code evolution.

JIRA: TRNSPRTPCE-799
Change-Id: If1a2e0f19b7dd2885dd952b271090dc46df44edd
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
7 months agoFix floating equality bug in tapi module 42/112042/2
Gilles Thouenon [Fri, 7 Jun 2024 19:19:21 +0000 (21:19 +0200)]
Fix floating equality bug in tapi module

Change-Id: Ied1dba218056fec63044055b94886c81009b12ae
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
7 months agoMake lighty build voting in the CI 41/112041/2
Gilles Thouenon [Wed, 22 May 2024 12:46:09 +0000 (14:46 +0200)]
Make lighty build voting in the CI

Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I728a72a4f92626f52b07346544fe4bfca79092ab

7 months agoFix tpce-lighty build 40/112040/2
Gilles Thouenon [Tue, 21 May 2024 15:47:32 +0000 (17:47 +0200)]
Fix tpce-lighty build

- get the RpcService from LightyServices
- change urn of yang modules instances

FIRA: TRNSPRTPCE-799
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I60abe1130a2136a740f041364742342e85d109cc

7 months agoFixup checkstyle issues 39/112039/2
Gilles Thouenon [Tue, 21 May 2024 14:32:42 +0000 (16:32 +0200)]
Fixup checkstyle issues

Move some variables.

JIRA: TRNSPRTPCE-799
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Change-Id: I143fdb8ece7b7d77892c960819d88da168df6b81

7 months agoBump lighty to 20.0.0 58/112058/1
Gilles Thouenon [Mon, 10 Jun 2024 09:53:45 +0000 (11:53 +0200)]
Bump lighty to 20.0.0

Change-Id: I94a321d5a38e11b93bd76bc5b9437ef7c2d81c49
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
7 months agoMake tox pre-commit and checkbashism non voting 57/112057/1
Gilles Thouenon [Sat, 8 Jun 2024 07:50:09 +0000 (09:50 +0200)]
Make tox pre-commit and checkbashism non voting

These two tox test environments are systematically failing on the CI.
- checkbashisms can't be installed.
- idem with pre-commit?
Disable them for now while waiting to understand what is going on.

Change-Id: I9a1c946d922cfa821a7d77ae791bb2c6b3358a7f
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
8 months agoMerge "Refactor ConvertORTopoToTapiTopoTest"
Guillaume Lambert [Tue, 21 May 2024 07:27:00 +0000 (07:27 +0000)]
Merge "Refactor ConvertORTopoToTapiTopoTest"

8 months agoUpdate release in docs/conf.yaml 93/111693/2
guillaume.lambert [Tue, 14 May 2024 13:40:52 +0000 (15:40 +0200)]
Update release in docs/conf.yaml

Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I15c62732e9e3519d43922fc59853ca0c2a897660

8 months agoMerge "Power setup gainloss failure Junit test"
Guillaume Lambert [Tue, 14 May 2024 13:20:34 +0000 (13:20 +0000)]
Merge "Power setup  gainloss failure Junit test"

8 months agoMerge "Refactor TAPI utils TapiContext"
Guillaume Lambert [Tue, 14 May 2024 13:20:29 +0000 (13:20 +0000)]
Merge "Refactor TAPI utils TapiContext"

8 months agoRefactor ConvertORTopoToTapiTopoTest 85/111685/2
guillaume.lambert [Tue, 14 May 2024 09:30:44 +0000 (11:30 +0200)]
Refactor ConvertORTopoToTapiTopoTest

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I012fda1c98ddfe812872dddb85489cda1192455a

8 months agoMerge changes I04980c0b,Ib74e699a,I6ca86692,Ida6061da,Iea661424, ...
Guillaume Lambert [Mon, 13 May 2024 08:40:17 +0000 (08:40 +0000)]
Merge changes I04980c0b,Ib74e699a,I6ca86692,Ida6061da,Iea661424, ...

* changes:
  Refactor ConvertORTopoToFullTapiTopoTest step 7
  Refactor ConvertORTopoToFullTapiTopoTest step 6
  Refactor ConvertORTopoToFullTapiTopoTest step 5
  Refactor ConvertORTopoToFullTapiTopoTest step 4
  Refactor ConvertORTopoToFullTapiTopoTest step 3
  Refactor ConvertORTopoToFullTapiTopoTest step 2
  Refactor ConvertORTopoToFullTapiTopoTest step 1

8 months agoRefactor TAPI utils TapiContext 45/111545/3
guillaume.lambert [Sun, 28 Apr 2024 13:52:40 +0000 (15:52 +0200)]
Refactor TAPI utils TapiContext

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ica321417d3ff7ac23a345b1e182ad940cc1058c8

8 months agoPower setup gainloss failure Junit test 37/111637/3
guillaume.lambert [Mon, 6 May 2024 10:38:35 +0000 (12:38 +0200)]
Power setup  gainloss failure Junit test

JIRA: TRNSPRTPCE-798
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I12e34d532c84ab4c0590981090f1f290d6a45938

8 months agoAbort power setup if setting gainloss fails 80/111480/3
Jonas Mårtensson [Mon, 22 Apr 2024 12:25:34 +0000 (12:25 +0000)]
Abort power setup if setting gainloss fails

Currently, if changing control mode from power to gainloss fails on a
device, e.g. because it becomes disconnected, power setup just
continues with the next node.

This changes behaviour so that power setup is aborted instead and
service creation is rolled back.

JIRA: TRNSPRTPCE-798
Change-Id: I85f03f318c66a524ac91d62cf7459d01e9a5d021
Signed-off-by: Jonas Mårtensson <jonas.martensson@smartoptics.com>
8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 7 79/111579/2
guillaume.lambert [Thu, 2 May 2024 15:05:39 +0000 (17:05 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 7

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I04980c0b032546765bcc9010f83d9a253fa95617

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 6 73/111573/3
guillaume.lambert [Thu, 2 May 2024 09:33:43 +0000 (11:33 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 6

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ib74e699af595515a536a963eec2ed5cd612a86f4

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 5 56/111556/3
guillaume.lambert [Tue, 30 Apr 2024 15:13:45 +0000 (17:13 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 5

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I6ca8669229c45f7fb660beb559b7469df601b803

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 4 53/111553/3
guillaume.lambert [Tue, 30 Apr 2024 08:15:50 +0000 (10:15 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 4

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ida6061daf919a37c033fbe23c5ec7af36e47205f

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 3 51/111551/3
guillaume.lambert [Mon, 29 Apr 2024 16:36:28 +0000 (18:36 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 3

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Iea661424d133995b3413ca98e127808e4c775090

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 2 49/111549/4
guillaume.lambert [Mon, 29 Apr 2024 13:08:48 +0000 (15:08 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 2

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I79e404cfec8a033698695b5ec348a4e09e2c66d2

8 months agoRefactor ConvertORTopoToFullTapiTopoTest step 1 47/111547/3
guillaume.lambert [Sun, 28 Apr 2024 23:09:58 +0000 (01:09 +0200)]
Refactor ConvertORTopoToFullTapiTopoTest step 1

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I5bef988d4582652ca02e30699cb303600656911f

8 months agoMerge "Bump transportpce-models upstream dependency"
Gilles Thouenon [Fri, 3 May 2024 05:46:36 +0000 (05:46 +0000)]
Merge "Bump transportpce-models upstream dependency"

8 months agoMerge changes I1e9ed1dd,I86ae4ee0
Guillaume Lambert [Thu, 2 May 2024 15:32:44 +0000 (15:32 +0000)]
Merge changes I1e9ed1dd,I86ae4ee0

* changes:
  Refactor TAPI TapiNetworkModelServiceImpl
  Rework TAPI TapiNetworkModelServiceImpl code style

8 months agoMerge "Refactor TAPI TopologyUtils"
Guillaume Lambert [Thu, 2 May 2024 15:32:36 +0000 (15:32 +0000)]
Merge "Refactor TAPI TopologyUtils"

8 months agoMerge "Refactor TAPI utils TapiLinkImpl"
Guillaume Lambert [Thu, 2 May 2024 15:32:28 +0000 (15:32 +0000)]
Merge "Refactor TAPI utils TapiLinkImpl"

8 months agoBump transportpce-models upstream dependency 78/111578/2
Gilles Thouenon [Thu, 2 May 2024 12:21:23 +0000 (14:21 +0200)]
Bump transportpce-models upstream dependency

Adopt transportpce-models-21.0.0-SNAPSHOT

Change-Id: I380da272eb7ac8bad66c8b42fc52ac2ce6f9eb3f
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
9 months agoRefactor TAPI utils TapiLinkImpl 46/111546/1
guillaume.lambert [Sun, 28 Apr 2024 14:56:02 +0000 (16:56 +0200)]
Refactor TAPI utils TapiLinkImpl

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ia15c822faea4e5c23f46dc6c46fc21330220411b

9 months agoRefactor TAPI TopologyUtils 19/111519/5
guillaume.lambert [Thu, 25 Apr 2024 09:34:43 +0000 (11:34 +0200)]
Refactor TAPI TopologyUtils

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Id54f56a401141031ee762def51459f0a9f49aacf

9 months agoRefactor TAPI TapiNetworkModelServiceImpl 82/111482/8
guillaume.lambert [Mon, 22 Apr 2024 14:30:57 +0000 (16:30 +0200)]
Refactor TAPI TapiNetworkModelServiceImpl

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I1e9ed1dd865f954f7d1626ac8e195a4cf1b3d48e

9 months agoRework TAPI TapiNetworkModelServiceImpl code style 81/111481/2
guillaume.lambert [Mon, 22 Apr 2024 12:33:20 +0000 (14:33 +0200)]
Rework TAPI TapiNetworkModelServiceImpl code style

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I86ae4ee0ba9334168b02f105459ec626e85e52d0

9 months agoRefactor TAPI ConvertTapiTopoToAbstracted 76/111476/1
guillaume.lambert [Mon, 22 Apr 2024 09:27:24 +0000 (11:27 +0200)]
Refactor TAPI ConvertTapiTopoToAbstracted

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I44a04d6bd9bbc38c4ce904cd9b08d6907d4afc67

9 months agoRework TAPI ConvertTapiTopoToAbstracted code style 75/111475/1
guillaume.lambert [Mon, 22 Apr 2024 09:11:14 +0000 (11:11 +0200)]
Rework TAPI ConvertTapiTopoToAbstracted code style

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I938031a1fcfb3ce96d75c149aebecf919cd1c592

9 months agoAdd perltidy to pre-commit linters 82/111382/4
guillaume.lambert [Sun, 14 Apr 2024 18:36:35 +0000 (20:36 +0200)]
Add perltidy to pre-commit linters

Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ie20eb4bc885383deb304363eb8053f8161b3ada1

9 months agoRun perltidy on debug tools 81/111381/1
guillaume.lambert [Sun, 14 Apr 2024 18:42:55 +0000 (20:42 +0200)]
Run perltidy on debug tools

Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: Ia92921efe3ae3ca66f436bd1f5bb268f4fa1b5c6

9 months agoMerge "Fix ConvertORToTapiTopology getXpdrUsedWavelength"
Guillaume Lambert [Wed, 10 Apr 2024 11:13:44 +0000 (11:13 +0000)]
Merge "Fix ConvertORToTapiTopology getXpdrUsedWavelength"

9 months agoMerge changes I2927cbf5,I35d6b4ed,Iffd49368
Guillaume Lambert [Wed, 10 Apr 2024 07:56:12 +0000 (07:56 +0000)]
Merge changes I2927cbf5,I35d6b4ed,Iffd49368

* changes:
  Refactor TAPI topology ConvertORToTapiTopology
  Use Map in TAPI topology ConvertORToTapiTopology
  Fix some TAPI topology Upper/Lower Freq inversions

9 months agoFix ConvertORToTapiTopology getXpdrUsedWavelength 21/111321/1
guillaume.lambert [Mon, 8 Apr 2024 11:07:31 +0000 (13:07 +0200)]
Fix ConvertORToTapiTopology getXpdrUsedWavelength

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I1cca57e44a4a89e85f2748123970d4cca0675d9e

9 months agoRefactor TAPI topology ConvertORToTapiTopology 16/111216/10
guillaume.lambert [Wed, 3 Apr 2024 10:49:05 +0000 (12:49 +0200)]
Refactor TAPI topology ConvertORToTapiTopology

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I2927cbf53b52126a56e590ff6dce7e5044efa502

9 months agoUse Map in TAPI topology ConvertORToTapiTopology 83/111283/6
guillaume.lambert [Fri, 5 Apr 2024 14:12:42 +0000 (16:12 +0200)]
Use Map in TAPI topology ConvertORToTapiTopology

JIRA: TRNSPRTPCE-735
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I35d6b4edd4fc73fb7da677d4d7007aadc82fc7c8