yangtools.git
4 days agoAdd DataObject{Identifier,Reference}.Builder(.WithKey) 62/112362/9
Robert Varga [Fri, 28 Jun 2024 09:30:44 +0000 (11:30 +0200)]
Add DataObject{Identifier,Reference}.Builder(.WithKey)

This patch adds a proper Builder definition and specialized
implementations, which produce DataObject{Identifier,Reference} and not
InstanceIdentifier as such.

This also eliminates the notion that a Builder has a hashCode/equals
contract.

JIRA: YANGTOOLS-1577
Change-Id: Ie3fe06264f58a6985123034f439f413fce0d251b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoBump Xtend to 2.35.0 63/112363/1
Robert Varga [Fri, 28 Jun 2024 10:41:44 +0000 (12:41 +0200)]
Bump Xtend to 2.35.0

https://eclipse.dev/Xtext/releasenotes.html#/releasenotes/2024/02/27/version-2-34-0
https://eclipse.dev/Xtext/releasenotes.html#/releasenotes/2024/05/28/version-2-35-0

Change-Id: Ic9239a565e96d727b876d6c7f809916f76219ee2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoUse DataObjectIdentifier for action references 60/112360/1
Robert Varga [Fri, 28 Jun 2024 07:48:40 +0000 (09:48 +0200)]
Use DataObjectIdentifier for action references

Every action is invoked on a particular instance of a DataObject -- the
path cannot be inexact. Express this by using DataObjectIdentifier
instead of InstanceIdentifier.

JIRA: YANGTOOLS-1577
Change-Id: Iaa4de116a983a4b902951f14fe5e46f9135d710f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoRefactor AbstractDataObjectReference.toString() 59/112359/1
Robert Varga [Fri, 28 Jun 2024 07:26:52 +0000 (09:26 +0200)]
Refactor AbstractDataObjectReference.toString()

Use proper contract() name and only print out steps, as everything else
is derived from them. Also make InstanceIdentifier.contract() dynamic
based on wildcarded flag.

JIRA: YANGTOOLS-1576
Change-Id: If1c8bfd2dc063cbb8af3f0ddcccce5389b17c1d8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoAdd odl-yangtools-binding-codec feature 58/112358/1
Robert Varga [Fri, 28 Jun 2024 06:51:57 +0000 (08:51 +0200)]
Add odl-yangtools-binding-codec feature

This packages binding-codec-* artifacts into their own feature.

JIRA: YANGTOOLS-1576
Change-Id: Ic78c446a240b3784c95e2dd819d184b3272d0871
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoAdd odl-yangtools-binding-runtime feature 41/112341/5
Robert Varga [Thu, 27 Jun 2024 21:23:57 +0000 (23:23 +0200)]
Add odl-yangtools-binding-runtime feature

Baseline Binding runtime needs to be packaged. Unlike
odl-mdsal-binding-runtime, this packaging does not include
binding-data-codec parts of runtime.

JIRA: YANGTOOLS-1576
Change-Id: I3331f293ba8c8858792cdacf9fb0d8f386d1e10f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoUse DataObjectReference in binding-data-codec-api 42/112342/3
Robert Varga [Thu, 27 Jun 2024 22:00:46 +0000 (00:00 +0200)]
Use DataObjectReference in binding-data-codec-api

Users should not care about the particular implementation of
DataObjectReference, but InstanceIdentifier is special in that it is a
legacy.

This patch adds a DataObjectReference.toLegacy() method to perform
down conversion to it.

JIRA: YANGTOOLS-1577
Change-Id: I1702de86112eb87cc349c8eac95b3d6c27fac641
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
4 days agoMove InstanceIdentifier.pathArguments 40/112340/5
Robert Varga [Thu, 27 Jun 2024 20:56:32 +0000 (22:56 +0200)]
Move InstanceIdentifier.pathArguments

Move the field into AbstractDataObjectReference, allowing providing for
more bits completed for the DataObjectIdentifier class hierarchy.

JIRA: YANGTOOLS-1577
Change-Id: I334779d1d8143d93afd99a9b1cf25631208e4db6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 days agoExpose DataObjectReference.lastStep() 39/112339/7
Robert Varga [Thu, 27 Jun 2024 18:46:32 +0000 (20:46 +0200)]
Expose DataObjectReference.lastStep()

Each reference needs to have a target type, carried in its last step.
Expose this fact via a lastStep() method.

JIRA: YANGTOOLS-1577
Change-Id: I7562383089127aeb7796c81e0b28f686b1d70d8e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 days agoEliminate InstanceIdentifier.hashCode() 38/112338/6
Robert Varga [Thu, 27 Jun 2024 18:00:52 +0000 (20:00 +0200)]
Eliminate InstanceIdentifier.hashCode()

Do not memoize InstanceIdentifier.hashCode(), allowing the
implementation to reside in AbstractDataObjectReference.

JIRA: YANGTOOLS-1577
Change-Id: I6ddc7a274195ca4e904c14cb8bbc77f5f609f792
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 days agoDo not use InstanceIdentifier.getPathArguments() 37/112337/1
Robert Varga [Thu, 27 Jun 2024 17:23:03 +0000 (19:23 +0200)]
Do not use InstanceIdentifier.getPathArguments()

Use steps() instead. Also add assert on isExact().

JIRA: YANGTOOLS-1608
Change-Id: I87f2848d21efb2aabe8219af29572dd53702f3ca
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
5 days agoSplit out odl-codegen-extensions 36/112336/2
Robert Varga [Thu, 27 Jun 2024 15:24:16 +0000 (17:24 +0200)]
Split out odl-codegen-extensions

We do not want the entirety of odl-ext, as most of it is related to
MD-SAL things. Split out odl-codegen-extensions.yang, which carries the
only extension we are using.

JIRA: YANGTOOLS-1576
Change-Id: Ief7ddddfc23c5087b69a1f72f9d6e0173654e0a7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
6 days agoRevert "Unify ORv1 and IIv5" 98/112298/1
Robert Varga [Wed, 26 Jun 2024 10:26:54 +0000 (12:26 +0200)]
Revert "Unify ORv1 and IIv5"

This reverts commit fc4e74fa556965d77d9bdab94332aa96813e9492, as it
causes a sizing regression.

JIRA: YANGTOOLS-1608
Change-Id: I6b3c52119b2af0e09fbadab4d713e3c37417bca2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoDeprecate serial forms before IIv5 95/112295/1
Robert Varga [Tue, 25 Jun 2024 23:08:27 +0000 (01:08 +0200)]
Deprecate serial forms before IIv5

We do not emit these, mark them as deprecated, so they stand out as
something we can remove sooner than the entire InstanceIdentifier class.

JIRA: YANGTOOLS-1608
Change-Id: I410b43364aa426ab5ae880e6ba37db8c468da860
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoUnify ORv1 and IIv5 94/112294/1
Robert Varga [Tue, 25 Jun 2024 23:03:46 +0000 (01:03 +0200)]
Unify ORv1 and IIv5

The format is the same, just the resolved class differs. Let's take
advantage of that.

JIRA: YANGTOOLS-1608
Change-Id: I0fd9e3410fc6d411d87f1d91833ffc7135df4e58
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoUse InstanceIdentifier.unsafeOf() in serialization path 93/112293/1
Robert Varga [Tue, 25 Jun 2024 22:55:07 +0000 (00:55 +0200)]
Use InstanceIdentifier.unsafeOf() in serialization path

Do not trust consistency of read data -- establish class identity, hash
and wildcard from the list of arguments only.

JIRA: YANGTOOLS-1608
Change-Id: Id96f5081bde1a6525f5db140a8eb5ce7db533e03
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoSwitch to using IIv5 92/112292/1
Robert Varga [Tue, 25 Jun 2024 22:42:50 +0000 (00:42 +0200)]
Switch to using IIv5

Switch InstanceIdentifier to emit IIv5 and gut IIv4 of writeout
capabilities.

JIRA: YANGTOOLS-1608
Change-Id: I7fc86453538dab844642bd242b121291afd96ba5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoAdd yang.binding.IIv5 91/112291/1
Robert Varga [Tue, 25 Jun 2024 22:36:51 +0000 (00:36 +0200)]
Add yang.binding.IIv5

IIv4 and previous have a rather unfortunate design in that we carry a
ton of state derived from steps -- and we trust that state.

IIv5 rectifies this by only serializing steps and deriving properties
from steps -- thus the derived state is accurate.

JIRA: YANGTOOLS-1608
Change-Id: I32bfd4542d000da70081d1d7b27f035a22c55a3a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoClean up InstanceIdentifier steps creation 90/112290/1
Robert Varga [Tue, 25 Jun 2024 20:52:23 +0000 (22:52 +0200)]
Clean up InstanceIdentifier steps creation

We are being quite inefficient in the way we are allocating steps:
- we use Iterables.concat() with a singleton argument
- we use Iterables.concat() with a freshly-built list

This patch refactors to consistently use either:
- AppendIterable to hold the single appended item, or
- an ImmutableList
when we are building an Iterable which makes into into an
InstanceIdentifier. The access for Builder.equals() is explicitly
separated out and uses Iterables.concat() or the internal buffer

JIRA: YANGTOOLS-1608
Change-Id: I7b54d0b746891ab57b97c75f4a124e9b580fc503
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoFinish public DataObjectReference class hierarchy 89/112289/2
Robert Varga [Tue, 25 Jun 2024 18:42:48 +0000 (20:42 +0200)]
Finish public DataObjectReference class hierarchy

Introduce private binding.impl package and drop the basic design of
InstanceIdentifier-independent implementations.

JIRA: YANGTOOLS-1608
Change-Id: I6e8e3c04adc65d75f989c8e26e5124d46242352a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoIntroduce yangtools.binding.lib 87/112287/4
Robert Varga [Tue, 25 Jun 2024 15:24:19 +0000 (17:24 +0200)]
Introduce yangtools.binding.lib

We have a number of classes which are used by generated code as baseline
library classes.

Introduce a new yangtools.binding.lib package to hold these, so we have
a clean separation of the user-facing contracts and their
implementations.

JIRA: YANGTOOLS-1576
Change-Id: I5a8789ccee43e86ddbe66eaa702daedde23f3522
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoFix DataObjectReference javadoc 86/112286/2
Robert Varga [Tue, 25 Jun 2024 16:16:49 +0000 (18:16 +0200)]
Fix DataObjectReference javadoc

We have two @returns here, fix them up.

JIRA: YANGTOOLS-1608
Change-Id: I31e2ad52a3451fe35f7354a332509c9b8ea0adee
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoIntroduce yangtools.binding.meta 85/112285/4
Robert Varga [Tue, 25 Jun 2024 14:29:47 +0000 (16:29 +0200)]
Introduce yangtools.binding.meta

Split out interfaces used for metadata discovery to separate package,
signalling these are ancillary to the codegen primary task.

JIRA: YANGTOOLS-1576
Change-Id: Ia988e11090d7b37a0faeb12aee96a058b688045c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoAdd odl-yangtools-binding-spec 78/112278/3
Robert Varga [Tue, 25 Jun 2024 12:40:43 +0000 (14:40 +0200)]
Add odl-yangtools-binding-spec

Add basic packaging of the binding specification, essentially mirroring
what odl-mdsal-binding-base used to be.

JIRA: YANGTOOLS-1576
Change-Id: I8e3137093de5aa8a65bc2dee987b1e9741a4c0ab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoRename binding-ri to binding-generator 77/112277/3
Robert Varga [Tue, 25 Jun 2024 11:08:19 +0000 (13:08 +0200)]
Rename binding-ri to binding-generator

'binding-ri' does not really reflect the singleton nature of this code.
Rename it back to binding-generator.

JIRA: YANGTOOLS-1576
Change-Id: I746802c3f653731cfe871c0fc47aadeba9b9cd3b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
7 days agoFix OSGiModuleInfoSnapshotImpl 76/112276/1
Robert Varga [Tue, 25 Jun 2024 11:04:08 +0000 (13:04 +0200)]
Fix OSGiModuleInfoSnapshotImpl

We should be using Uint64, not UnsignedLong.

JIRA: YANGTOOLS-1576
Change-Id: Ie4dc2c240a0d6bbe6f22fcc19df64184a49e754c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
8 days agoIntroduce DataObject{Identifier,Reference} 73/112273/4
Robert Varga [Mon, 24 Jun 2024 22:15:43 +0000 (00:15 +0200)]
Introduce DataObject{Identifier,Reference}

InstanceIdentifier has way cluttered API, combining multiple aspects,
without giving useful guarantees.

We introduce DataObjectReference, which captures the addressing
capabilities of an InstanceIdentifier.

We also introduce DataObjectIdentifier, which guarantees isExact() is
true -- and forms the baseline BindingInstanceIdentifier.

Finally, we also the baseline 'WithKey' trait, so it is readily
available as the impact of the target type.

JIRA: YANGTOOLS-1577
Change-Id: Ieb87705f65c2032fdb499cdd74b55c5994718566
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
8 days agoImprove type wiring 72/112272/3
Robert Varga [Mon, 24 Jun 2024 20:33:13 +0000 (22:33 +0200)]
Improve type wiring

Take ownership of Java mapping of YANG built-in types. This takes shape
as binding.contract.BuiltInType, which contains constants for each known
type.

This also splits the meaning of 'InstanceIdentifier' where type system
is concerned -- the definition in BaseYangTypes should become
BindingInstanceIdentifier.

JIRA: YANGTOOLS-1577
Change-Id: I38fd4eb69c1bc700bd99bf230526eb015c7e1c7c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
8 days agoTake ownership of yangtools.yang.binding package 71/112271/3
Robert Varga [Mon, 24 Jun 2024 20:15:05 +0000 (22:15 +0200)]
Take ownership of yangtools.yang.binding package

Maintaining this package separately will not work reasonably. This patch
moves back InstanceIdentifier et al., but retains DataObjectStep et al.
in yangtools.binding package. yang.binding gets dummy serialization
proxies instead.

JIRA: YANGTOOLS-1576
Change-Id: I3e605ca364508c026bac18099fae68c9facdcf87
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
8 days agoFix binding-runtime-osgi module name 70/112270/1
Robert Varga [Mon, 24 Jun 2024 17:19:18 +0000 (19:19 +0200)]
Fix binding-runtime-osgi module name

Use yangtools, not mdsal, matching the package we are exporting.

JIRA: YANGTOOLS-1576
Change-Id: Ia99210baa5be71bdfb53adde80da722168ba5155
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
9 days agoUpdate DataObjectStep class hierarchy 58/112258/2
Robert Varga [Sun, 23 Jun 2024 11:54:07 +0000 (13:54 +0200)]
Update DataObjectStep class hierarchy

KeylessStep is not the only non-ExactDataObjectStep we will have.

Prepare for that eventuality by splitting out KeylessStep.matches()
into InexactDataObjectStep.

JIRA: YANGTOOLS-1576
Change-Id: I7dc8272a6016d4df5122fe1e61c77e53388eff11
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename binding-runtime-dynamic to binding-loader 56/112256/3
Robert Varga [Fri, 21 Jun 2024 15:08:44 +0000 (17:08 +0200)]
Rename binding-runtime-dynamic to binding-loader

Rename the artifact and adjust the exported packages.

JIRA: YANGTOOLS-1576
Change-Id: Ib6ffd9b30dc9b14c381a9adb41b2134a14a3d1dc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename mdsal.binding.dom.codec.api 52/112252/2
Robert Varga [Fri, 21 Jun 2024 10:45:07 +0000 (12:45 +0200)]
Rename mdsal.binding.dom.codec.api

Use yangtools.binding.data.codec.api as the new name, ditching the
'mdsal' moniker.

JIRA: YANGTOOLS-1576
Change-Id: I2bf6e8be065e44dfd4e16f8ed14c4ac1369db755
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename mdsal.binding.dom.codec.impl 51/112251/2
Robert Varga [Fri, 21 Jun 2024 10:42:22 +0000 (12:42 +0200)]
Rename mdsal.binding.dom.codec.impl

Rename this package to yangtools.binding.data.codec.impl and adjust
callers.

JIRA: YANGTOOLS-1576
Change-Id: I47212c195d49eb5d0829991cc214cc01710c4437
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename mdsal.binding.dom.codec.spi 50/112250/2
Robert Varga [Fri, 21 Jun 2024 10:35:16 +0000 (12:35 +0200)]
Rename mdsal.binding.dom.codec.spi

Rename this package to yangtools.binding.data.codec.spi and adjust
callers.

JIRA: YANGTOOLS-1576
Change-Id: Ia6ee14999b7cbbb54bc82e63204e4e93709961f0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename package in binding-codegen 49/112249/1
Robert Varga [Fri, 21 Jun 2024 10:09:32 +0000 (12:09 +0200)]
Rename package in binding-codegen

Use yangtools.binding.codegen instead of the rather verbose
mdsal.binding.java.api.generator.

JIRA: YANGTOOLS-1576
Change-Id: I36e00904baccaada83707ac3a885711ee6df5ee7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoRename binding-util to binding-reflect 48/112248/6
Robert Varga [Thu, 20 Jun 2024 18:21:01 +0000 (20:21 +0200)]
Rename binding-util to binding-reflect

Rename the artifact, the module and the package exposed, adopting it to
org.opendaylight.yangtools namespace.

JIRA: YANGTOOLS-1567
Change-Id: Iaa1a2bdbe03527220e1fe5c41df70a5672b634ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoEnable binding-data-codec-osgi build 47/112247/5
Robert Varga [Thu, 20 Jun 2024 18:00:34 +0000 (20:00 +0200)]
Enable binding-data-codec-osgi build

Fixup checkstyle and adapt to current situation.

JIRA: YANGTOOLS-1576
Change-Id: Ia358135e5b6836416736021a51f204eff7acca6d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
11 days agoEnable binding-runtime-osgi build 46/112246/4
Robert Varga [Thu, 20 Jun 2024 17:52:55 +0000 (19:52 +0200)]
Enable binding-runtime-osgi build

This is a more invasive patch, as it also imports most bits and pieces
from mdsal.git/dom/mdsal-dom-schema-osgi as it existed as of commit
29d0b0b9d5f68d22bdc655a054b22dcf7f69c5f5.

JIRA: YANGTOOLS-1576
Change-Id: Ia0e00b64289d69ae4bc155adef199b55f6172e4f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename binding-lib 45/112245/2
Robert Varga [Thu, 20 Jun 2024 16:31:59 +0000 (18:31 +0200)]
Rename binding-lib

binding-lib is not a good name. binding-spec is a better one, allowing
us to drop the .lib suffix in packages -- resulting in better
ergonomics.

JIRA: YANGTOOLS-1576
Change-Id: I29a52002f64f595b752dad8dba15a93fd9e789f7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoEnable binding-data-codec-dynamic build 44/112244/2
Robert Varga [Thu, 20 Jun 2024 16:29:58 +0000 (18:29 +0200)]
Enable binding-data-codec-dynamic build

Fixup checkstyle warnings and enable build.

JIRA: YANGTOOLS-1576
Change-Id: Id8e37b44dea08a09b8201339f9aa35caaefadd40
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoFix binding-data-codec-spi artifactId 43/112243/2
Robert Varga [Thu, 20 Jun 2024 15:45:20 +0000 (17:45 +0200)]
Fix binding-data-codec-spi artifactId

We have a mismatch in naming here, fix that up.

JIRA: YANGTOOLS-1576
Change-Id: Idd91b5f6deaf697eaa71d166e37f12be9f6d7576
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoEnable binding-runtime-spi build 42/112242/2
Robert Varga [Thu, 20 Jun 2024 15:43:03 +0000 (17:43 +0200)]
Enable binding-runtime-spi build

Fixup checkstyle warnings and enable build.

JIRA: YANGTOOLS-1576
Change-Id: Iba71cdc15cecf8dc764abb79a033b5f87e5b11f4
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoEnable binding-test-model build 41/112241/2
Robert Varga [Thu, 20 Jun 2024 15:35:48 +0000 (17:35 +0200)]
Enable binding-test-model build

The test model requires yang-ext for now for the augment-identifier
extension. Add both to the build.

JIRA: YANGTOOLS-1576
Change-Id: I9d0aaa3a2792a1f0a07acfda334c6adae80e98f2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename opendaylight.mdsal.binding.runtime.spi 39/112239/1
Robert Varga [Thu, 20 Jun 2024 14:04:38 +0000 (16:04 +0200)]
Rename opendaylight.mdsal.binding.runtime.spi

Rename opendaylight.mdsal.binding.runtime.spi to
opendaylight.yangtools.binding.runtime.spi.

JIRA: YANGTOOLS-1576
Change-Id: I35b24e8ecbc08e1db7da5b973551aeb0ea7609dc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename opendaylight.mdsal.binding.runtime.api 38/112238/2
Robert Varga [Thu, 20 Jun 2024 13:55:55 +0000 (15:55 +0200)]
Rename opendaylight.mdsal.binding.runtime.api

Rename opendaylight.mdsal.binding.runtime.api to
opendaylight.yangtools.binding.runtime.api.

JIRA: YANGTOOLS-1576
Change-Id: Ie2b08520c5726a2452732f6fcf53e1a4c78caba8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename opendaylight.mdsal.binding.model.ri 37/112237/4
Robert Varga [Thu, 20 Jun 2024 13:08:34 +0000 (15:08 +0200)]
Rename opendaylight.mdsal.binding.model.ri

Rename opendaylight.mdsal.binding.model.ri to
opendaylight.yangtools.binding.model.ri.

JIRA: YANGTOOLS-1576
Change-Id: I2c10421aa1b1bd923b22fff48e37b4d05815ff11
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename opendaylight.mdsal.binding.model.api 36/112236/2
Robert Varga [Thu, 20 Jun 2024 12:27:23 +0000 (14:27 +0200)]
Rename opendaylight.mdsal.binding.model.api

Rename opendaylight.mdsal.binding.model.api to
opendaylight.yangtools.binding.model.api.

JIRA: YANGTOOLS-1576
Change-Id: I699ea8c7bc97128f87bd9159b8683e282a955645
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoRename org.opendaylight.yangtools.yang.binding 35/112235/1
Robert Varga [Thu, 20 Jun 2024 12:15:38 +0000 (14:15 +0200)]
Rename org.opendaylight.yangtools.yang.binding

Rename org.opendaylight.yangtools.yang.binding to
org.opendaylight.yangtools.binding.lib and adjust downstreams.

JIRA: YANGTOOLS-1576
Change-Id: I489acc8d0e6e8c126ae0e5eadfdf9acfc3c68f58
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoIntroduce odl-bytebuddy 34/112234/2
Robert Varga [Thu, 20 Jun 2024 11:48:14 +0000 (13:48 +0200)]
Introduce odl-bytebuddy

YANG Binding requires ByteBuddy in dynamic environments, so let's
package it.

JIRA: YANGTOOLS-1576
Change-Id: I44bf6cf56bd215b9a78da23356054a8e171e60e1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoPlug binding/ into the build 32/112232/9
Robert Varga [Wed, 19 Jun 2024 20:30:15 +0000 (22:30 +0200)]
Plug binding/ into the build

This is the first step, with just yang-binding being brought to the
party. This requires we also start maintaining the ByteBuddy dependency.

As we are not quite ready with binding-test-model, the components which
need it are not enabled yet.

JIRA: YANGTOOLS-1576
Change-Id: I7a45ccf7b808b393a4151e5694dfc2eba6dc0b5c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
12 days agoAdopt binding/ components 33/112233/7
Robert Varga [Wed, 19 Jun 2024 09:05:58 +0000 (11:05 +0200)]
Adopt binding/ components

The artifacts are going to be released from YANG Tools, lets perform
some house cleaning:
- change groupId to org.opendaylight.yangtools, which we must do because
  of our Maven Central namespace assignment
- rename yang-binding to binding-lib (which it really is)
- rename mdsal-binding-dom-codec to binding-data-codec-dynamic (not dom)
- rename mdsal-binding-java-api-generator to binding-codegen (it is
  generating code)
- rename mdsal-binding-runtime-* to binding-runtime-
- rename mdsal-binding-loader to binding-runtime-dynamic (it is
  interfacing the dynamic, JIT-supported parts of a JVM)
- rename mdsal-binding-spec-util to binding-util (now that there is no
  correspoding binding-api)
- rename mdsal-binding-test-model to binding-test-model

JIRA: YANGTOOLS-1576
Change-Id: Ie6d4e64d472cd42314e62c1035d8fad6039cfafa
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 14.0.0-SNAPSHOT
Robert Varga [Mon, 3 Jun 2024 17:40:43 +0000 (19:40 +0200)]
Bump versions to 14.0.0-SNAPSHOT

This starts the next major development iteration.

Change-Id: I530979d8f1f01d17720f69f9e7eb924a349eb9e2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove unneeded serialVersionUID fields
Robert Varga [Mon, 3 Jun 2024 17:29:23 +0000 (19:29 +0200)]
Remove unneeded serialVersionUID fields

SpotBugs now recognizes records are special, hence we can remove the
workaround.

Change-Id: If237583a2bc340f14f9b4180ea5756494a259b22
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 13.0.5-SNAPSHOT
Robert Varga [Mon, 3 Jun 2024 17:35:17 +0000 (19:35 +0200)]
Bump versions to 13.0.5-SNAPSHOT

This starts the next development iteration.

Change-Id: I91385d77a436ec34d5f6d5fbaea7296bfa9b887a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRelease mdsal
jenkins-releng [Mon, 3 Jun 2024 15:51:52 +0000 (15:51 +0000)]
Release mdsal

2 weeks agoBump upstreams
Robert Varga [Tue, 28 May 2024 12:16:16 +0000 (14:16 +0200)]
Bump upstreams

Adopt:
- odlparent-13.1.3
- yangtools-13.0.6

Change-Id: Iba9db31ef9900b60a766c1f5c4558a17e50001cc
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 13.0.4-SNAPSHOT
Robert Varga [Sun, 5 May 2024 12:11:12 +0000 (14:11 +0200)]
Bump versions to 13.0.4-SNAPSHOT

This starts the next development iteration.

Change-Id: Id72d4d09cb11ca514e07d4d957d4a6d3674801b8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRelease mdsal
jenkins-releng [Sun, 5 May 2024 03:40:52 +0000 (03:40 +0000)]
Release mdsal

2 weeks agoBump upstreams
Robert Varga [Sat, 4 May 2024 22:38:00 +0000 (00:38 +0200)]
Bump upstreams

Adopt:
- odlparent-13.1.2
- yangtools-13.0.5

Change-Id: Icf1bdfdeee82da4991aff6302a1ed1de7dec688d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 13.0.4
Robert Varga [Mon, 22 Apr 2024 09:55:48 +0000 (11:55 +0200)]
Bump yangtools to 13.0.4

Adopt the single fix from upstream.

Change-Id: I36b11da370af4dcc04f8c0a3ca6e9fff29dd66ba
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 13.0.3-SNAPSHOT
Robert Varga [Tue, 16 Apr 2024 11:53:43 +0000 (13:53 +0200)]
Bump versions to 13.0.3-SNAPSHOT

This starts the next development iteration.

Change-Id: I247882cc078d49b8410bc033f9e0bd3c09568c5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRelease mdsal
jenkins-releng [Tue, 16 Apr 2024 09:52:17 +0000 (09:52 +0000)]
Release mdsal

2 weeks agoBump upstreams
Robert Varga [Mon, 15 Apr 2024 11:00:36 +0000 (13:00 +0200)]
Bump upstreams

Adopt:
- odlparent-13.1.1
- yangtools-13.0.3

Change-Id: I2bc3240a8b2bf3915d7379fc700da6bb46908922
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoEliminate CodecItemFactory
Robert Varga [Fri, 12 Jan 2024 01:36:57 +0000 (02:36 +0100)]
Eliminate CodecItemFactory

This is a useless indirection, as we can simply pass the required
information down to where the case class is needed.

JIRA: MDSAL-815
Change-Id: I7413f33d0c4a76e29b180ef34623e7a0607c784f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFixup checkstyle
Robert Varga [Mon, 15 Apr 2024 11:56:12 +0000 (13:56 +0200)]
Fixup checkstyle

Upgraded checkstyle is finding more violations, fix them up.

Change-Id: I96ab46cc8f370b39dd287d3a1717952a5685dce5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 13.0.2-SNAPSHOT
Robert Varga [Thu, 14 Mar 2024 08:41:53 +0000 (09:41 +0100)]
Bump versions to 13.0.2-SNAPSHOT

This starts the next development iteration.

Change-Id: Icc2713325cddcd655991c4e2d00be786370ea407
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRelease mdsal
jenkins-releng [Thu, 14 Mar 2024 05:47:17 +0000 (05:47 +0000)]
Release mdsal

2 weeks agoVerify revision string
Robert Varga [Tue, 12 Mar 2024 21:37:39 +0000 (22:37 +0100)]
Verify revision string

yang.common.Revision has a guaranteed format, hence if toString() does
not match, it is not an IAE, but rather a VerifyException pointing out a
violation of our expectations.

Change-Id: Ieabc84f40df3c56bcc7690c2c277cd95583bf1de
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMigrate users of deprecated yang.common methods
Robert Varga [Tue, 12 Mar 2024 17:07:04 +0000 (18:07 +0100)]
Migrate users of deprecated yang.common methods

QNameModule and QName have deprecated a few methods, migrate to their
replacements.

Change-Id: I458a58177db17efc0ae866b62ff77288ca910475
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump upstreams
Robert Varga [Tue, 12 Mar 2024 14:47:34 +0000 (15:47 +0100)]
Bump upstreams

Adopt:
- odlparent-13.0.11
- yangtools-13.0.2

This unfortunately breaks Xtend's magic 'get' prefix handling, so fix
that up.

Change-Id: I639738394f26c3bedaea82518e2e4d395e430022
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRemove superfluouse @NonNull
Robert Varga [Tue, 12 Mar 2024 17:09:11 +0000 (18:09 +0100)]
Remove superfluouse @NonNull

We have @NonNullByDefault, hence we do not need an explicit @NonNull.

Change-Id: I6b546d685d7ffb27577e377987fafd97ee7c3d64
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDo not generate prime when not needed
Robert Varga [Fri, 23 Feb 2024 22:30:47 +0000 (23:30 +0100)]
Do not generate prime when not needed

In case we do not have any properties we end up emitting a local
variable which we'll never use -- generating a compiler warning.

Improve InterfaceTemplate to check for this condition and emit the
prime only if there are actually at least one property.

Change-Id: I3341ca075e8c7c0b671a76f226b7bdb99cb12465
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoAdd yang.binding.contract documentation
Robert Varga [Mon, 22 Jan 2024 22:12:27 +0000 (23:12 +0100)]
Add yang.binding.contract documentation

Document the contents of the contract package.

Change-Id: I02cdf674fa591decc85339f8049ba281c4cd62a2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump versions to 13.0.1-SNAPSHOT
Robert Varga [Sat, 20 Jan 2024 16:32:22 +0000 (17:32 +0100)]
Bump versions to 13.0.1-SNAPSHOT

This starts the next development iteration.

Change-Id: Ia471501c5f24994491208d9776fd4e74e581f156
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRelease mdsal
jenkins-releng [Sat, 20 Jan 2024 13:12:42 +0000 (13:12 +0000)]
Release mdsal

2 weeks agoClean up constant reference
Robert Varga [Fri, 19 Jan 2024 13:12:27 +0000 (14:12 +0100)]
Clean up constant reference

We have two methods with the same name, make sure we use the right
constant when referencing it.

JIRA: MDSAL-852
Change-Id: I7628d2c997e3c62895984d6d85672c65ff9f0ce7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit c112f99b13a8b337563a27761159f7f4bb9dbd94)
(cherry picked from commit edac194e791de33fd9f4a3338855113139ff9ad0)

2 weeks agoUse Locale.ROOT for toUpperCase
Robert Varga [Thu, 18 Jan 2024 16:41:27 +0000 (17:41 +0100)]
Use Locale.ROOT for toUpperCase

We can just assert this is the root locale, not a some particular
language.

Change-Id: Ibce067abf252162740a9c6ed88a3beff99f455b1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoExclude generated services from SpotBugs
Robert Varga [Thu, 18 Jan 2024 15:12:38 +0000 (16:12 +0100)]
Exclude generated services from SpotBugs

We have additional package root we want to exclude, update the list.

JIRA: MDSAL-836
Change-Id: If5e0e15b09570a4e8ff5e9e35d058e3bee018c2c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoFix ModuleInfoSnapshotResolver
Robert Varga [Thu, 18 Jan 2024 14:52:06 +0000 (15:52 +0100)]
Fix ModuleInfoSnapshotResolver

Previous update missed the ModuleInfoSnapshotResolver update, leading to
broker OSGi functionality.

Update both callsites to directly derive root package name from the
advertized namespace.

JIRA: MDSAL-836
Change-Id: I520824b59018afd2d7afdf06173889f90fd70449
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 13.0.1
Robert Varga [Thu, 18 Jan 2024 10:42:04 +0000 (11:42 +0100)]
Bump yangtools to 13.0.1

Adopt fixes from upstream that are needed downstream.

Change-Id: I5b31163fff4ab9c1206167f57815014e24010817
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoOverride Rpc/Action invoke method
Robert Varga [Thu, 18 Jan 2024 06:56:56 +0000 (07:56 +0100)]
Override Rpc/Action invoke method

Add a plain @Override method for Rpc/Action's invoke method, so that it
is manifested in the generated type.

JIRA: MDSAL-852
Change-Id: I7db7c9036bdb3051ae48a903b66df933fb338fae
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoChanged $Yang* generation package and name
Oleksandr Panasiuk [Tue, 5 Sep 2023 08:04:23 +0000 (11:04 +0300)]
Changed $Yang* generation package and name

The naming of these classes is rather unfortunate, as it starts with $
due to the requirement not to conflict with other generated classes. So
they were renemed to avoid dollar sign usage.
Also the root package for theese classes was changed from
org.opendaylight.yang.gen.v1 to org.opendaylight.yang.svc.v1.
A lot of test classes are touched in this patch but no logic were
changed there, its just providing a new path for YangModuleInfoImpl.

JIRA: MDSAL-836
Change-Id: If9e43d21063c2fc48d8adbf0ccfc2406fe760054
Signed-off-by: Oleksandr Panasiuk <oleksandr.panasiuk@pantheon.tech>
Signed-off-by: lubos-cicut <lubos.cicut@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoClean up AugmentationCodecContext
Robert Varga [Mon, 15 Jan 2024 16:02:59 +0000 (17:02 +0100)]
Clean up AugmentationCodecContext

Use A for Augmentation<?>, there is just no need to mix in DataObject.

JIRA: MDSAL-815
Change-Id: I8fc122a85e83878e7cda62420163ca0ed010299e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoCovert yang-binding to bnd-parent
Robert Varga [Sun, 14 Jan 2024 15:32:18 +0000 (16:32 +0100)]
Covert yang-binding to bnd-parent

There are just a few exported packages, switch to bnd-parent.

Change-Id: Iaabeff023f27d25739f08f31560f339df2ee6dde
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoClean up dependencies a bit
Robert Varga [Sun, 14 Jan 2024 14:44:48 +0000 (15:44 +0100)]
Clean up dependencies a bit

Eliminate yet another set of warnings.

Change-Id: I16f659072a1c794c28daac43ccb37ffca9c327bb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMigrate users of Builders/ImmutableNodes
Robert Varga [Sun, 14 Jan 2024 10:15:30 +0000 (11:15 +0100)]
Migrate users of Builders/ImmutableNodes

Update references to use data.spi.node.ImmutableNodes.

Change-Id: Ide361652366ef8dc5ade34bb513219ce7cf448f3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoHide CodecContext methods
Robert Varga [Fri, 12 Jan 2024 11:24:34 +0000 (12:24 +0100)]
Hide CodecContext methods

There is no point having these protected, just make them
package-private.

While we are here, also centralize implementations, as otherwise we have
duplicates.

JIRA: MDSAL-815
Change-Id: I7d708c5d508f49fb8c3224463d8c36fd9cf5e021
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoSilence maven-javadoc-plugin
Robert Varga [Sat, 13 Jan 2024 22:12:46 +0000 (23:12 +0100)]
Silence maven-javadoc-plugin

Sprinkle lint suppressions for missing javadocs, cleaning up build
output and focusing on real issues.

Change-Id: I022b6a2f86ab5e21ff74a19a85c3802664b5c7de
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoPromote dom-parent to bundle-parent
Robert Varga [Sat, 13 Jan 2024 17:01:39 +0000 (18:01 +0100)]
Promote dom-parent to bundle-parent

This parent is used all over place. It really is MD-SAL's
'bundle-parent', so let's promote and rename it.

While we are at it, also switch its parent to yangtools' bundle-parent
and define correct SCM.

Change-Id: Idf72a16eb6ceb1c2816d79d28470efd7665b02ce
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoMake AugmentationCodecPrototype generic
Robert Varga [Thu, 11 Jan 2024 23:35:38 +0000 (00:35 +0100)]
Make AugmentationCodecPrototype generic

Augmentations should capture their target type, which eliminates the
need for quite a few casts.

JIRA: MDSAL-815
Change-Id: I3d9c8326ac2bb24135c66ecfe240ed95cea98318
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoDeprecate BindingCodecTreeNode.getSchema()
Robert Varga [Fri, 12 Jan 2024 20:07:11 +0000 (21:07 +0100)]
Deprecate BindingCodecTreeNode.getSchema()

The BindingCodecTreeNode hierarchy should be expressive enough so that
users do not need the underlying schema. Deprecate getSchema() for
removal.

Change-Id: I58c18075ce78b11db2a922f5de4d4859c256bd35
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRefactor PathArgument to DataObjectStep
Robert Varga [Tue, 9 Jan 2024 20:14:59 +0000 (21:14 +0100)]
Refactor PathArgument to DataObjectStep

InstanceIdentifier.PathArgument is the basic modeling construct for
expressing a path composed of DataObject type references.

Extract it to a top-level construct, DataObjectStep, which has tree
specializations. AbstractPathArgument is kept around for serialization
complatibility.

This has the nice property of capturing the three possible addressing
states, so we can discern them when we see them.

Furthermore there is now only YangInstanceIdentifier.PathArgument, which
makes for cleaner method signatures and imports.

JIRA: MDSAL-815
Change-Id: I22706ccaecae4b70e8afe2644fc74057953c32b0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoReparent ChoiceCodecContext
Robert Varga [Thu, 11 Jan 2024 22:37:43 +0000 (23:37 +0100)]
Reparent ChoiceCodecContext

Choice as itself does not map to a DataObject, but rather to a ChoiceIn
-- it is the individual cases that also map to DataObject.

In this patch we reparent ChoiceCodecContext to be a subclass of
DataContainerCodecContext, which allows us to ditch the idea that a
there is a InstanceIdentifier.PathArgument corresponding to this
context.

A nice bonus is that we end up with exactly one serialization method,
which is delegating to the individual case.

Another nice thing is we have a natural place to host the case lookup
logic -- which fits squarely with
ChoiceCodecContext.bindingPathArgumentChild() contract.

JIRA: MDSAL-815
Change-Id: I12a80c849f6405e0e5723afc3f31704a2ad604a6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRetain protype in DataContainerCodecContext
Robert Varga [Thu, 11 Jan 2024 18:42:26 +0000 (19:42 +0100)]
Retain protype in DataContainerCodecContext

Acknowledge that DataContainerCodecContext is always instantiated from a
prototype and retain it in the base class.

This ends up centralizing things enough to eliminate an ugly cast we are
using in AugmentationCodecContext.

JIRA: MDSAL-815
Change-Id: Ib604918c2d9e180fece0583331fc2486797cf546
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoLoosen BindingDataContainerCodecTreeNode.getBindingClass()
Robert Varga [Thu, 11 Jan 2024 17:56:57 +0000 (18:56 +0100)]
Loosen BindingDataContainerCodecTreeNode.getBindingClass()

Do not require BindingObject, as we stream navigation encounters
ChoiceIn interface, which is not a BindingObject -- it defers to its
constituent children to provide the BindingObject contract through their
DataObject inheritence.

JIRA: MDSAL-815
Change-Id: I76d1c2405138da2f6985216aef2dfa4580cea724
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoSeparate out DataContainerPrototype
Robert Varga [Thu, 11 Jan 2024 15:38:56 +0000 (16:38 +0100)]
Separate out DataContainerPrototype

We have CommonDataObjectCodecPrototype defining strict prerequisites
while providing awefully little in terms of API worth.

Split out DataContainerPrototype, which exposes a typed javaClass() and
the corresponding runtimeType().

JIRA: MDSAL-815
Change-Id: Icaca2603e3b946764ff9d4157ab04be95bd4dde2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoHide CodecContextSupplier
Robert Varga [Thu, 11 Jan 2024 12:05:53 +0000 (13:05 +0100)]
Hide CodecContextSupplier

Refactoring InstanceIdentifier.Item flushes out a problem with the class
hierarchy of ChoiceNodeContextPrototype.

Start off by refactoring CodecContextSupplier, introducing
LazyCodecContextSupplier base class.

JIRA: MDSAL-815
Change-Id: I79fe079d9fc4b0adf166c1a8b2561fb03a2f071f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoRefactor DOMYangTextSourceProvider
Robert Varga [Sat, 6 Jan 2024 03:48:25 +0000 (04:48 +0100)]
Refactor DOMYangTextSourceProvider

This should really be a proper extension with its own API. While we are
at it.

mdsal-binding-runtime-api is made synchronous, as there is just no need
to use futures.

Change-Id: I3711662242df8d912c2536a3d73d4f86beea2c33
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
2 weeks agoBump yangtools to 13.0.0
Robert Varga [Mon, 11 Dec 2023 10:19:04 +0000 (11:19 +0100)]
Bump yangtools to 13.0.0

This adopts yangtools-13.0.0 and updates the various integration
surfaces.

Change-Id: Ie9e2ed6fec32bdb7cd98803552a4500a5b44f127
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>