Skip to content

Conversation

@Tobianas
Copy link
Contributor

No description provided.

@Tobianas Tobianas force-pushed the gnmi branch 9 times, most recently from 5122ebd to 53fde6b Compare October 29, 2025 09:45
@Tobianas Tobianas force-pushed the gnmi branch 2 times, most recently from 710eedc to ba5b31b Compare October 30, 2025 10:44
@Tobianas Tobianas force-pushed the gnmi branch 2 times, most recently from 1762ddd to 9801f2d Compare November 4, 2025 09:01
Copy link
Collaborator

@ihrasko ihrasko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disable maven-dependency plugin and make cleanups.

@Tobianas Tobianas force-pushed the gnmi branch 5 times, most recently from 33839dc to 2d5fa35 Compare November 10, 2025 09:06
this.gnmiExecutorService, this.appModuleConfig.getGnmiConfiguration(), encryptionService,
this.customReactor);
startAndWaitLightyModule(this.gnmiSouthboundModule);
gnmiSouthboundModule.init();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the next logical step would be to translate this module to OSGI and use @reference gnmiSouthboundModule

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? RcGnmiAppModule starts lighty restconf and controller. When we want to start the feature we do it just by starting the gnmi plugin, not the entire lighty controller. Now its done the same way as for example OpenApi in ODL

.YangModuleInfoImpl.getInstance()
);

public static final Set<YangModuleInfo> OPENCONFIG_YANG_MODELS = Set.of(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

optional: in follow-up patches we can use dependency on mdsal/ietf features

@Tobianas Tobianas force-pushed the gnmi branch 3 times, most recently from d3ed735 to 1381fca Compare November 17, 2025 16:46
@Tobianas Tobianas force-pushed the gnmi branch 4 times, most recently from 5757572 to b5575a0 Compare November 20, 2025 18:34
@Tobianas
Copy link
Contributor Author

How to use:

  1. mvn clean install -DskipTests
  2. cd karaf/target/assembly/bin
  3. ./karaf
  4. feature:install gnmi-feature

.build();
Boolean gnmiStartSuccessfully = gnmiSouthboundModule.start().get(TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
assertTrue(gnmiStartSuccessfully);
gnmiSouthboundModule = new GnmiSouthboundModule(lightyController.getServices().getBindingDataBroker(),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where is parserFactory?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

resolved

<scope>test</scope>
</dependency>
<dependency>
<groupId>com.beust</groupId>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need? separate test deps

<maven.install.skip>true</maven.install.skip>
</properties>

<modules>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

feature-parent ... ...

<module>lighty-modules</module>
<module>lighty-resources</module>
<module>lighty-tests-report</module>
<module>bnd-parent</module>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

probably not needed as we will be using gnmi from ODL, from now build in karaf should do it all

}
if (this.gnmiSouthboundModule != null) {
success &= gnmiSouthboundModule.shutdown(lightyModuleTimeout, DEFAULT_LIGHTY_MODULE_TIME_UNIT);
gnmiSouthboundModule.close();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what about to update success result

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method is void

@ihrasko ihrasko self-requested a review December 3, 2025 08:04
encryptionService, parserFactory, xpathParserFactory, null);
}

public GnmiSouthboundModule(DataBroker dataBroker, RpcProviderService rpcProviderService,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

formatting

GnmiSouthboundProvider expected to be provided a path
to initial models from json configuration. Since we
are no longer relying on json configuration, we need
to provide them manually.

Signed-off-by: tobias.pobocik <[email protected]>
Convert GnmiSouthboundModule as osgi component
to allow it to run using karaf.

Signed-off-by: tobias.pobocik <[email protected]>
We do not need this since GnmiSouthboundModule is now component

Signed-off-by: tobias.pobocik <[email protected]>
The point of this rework is to not rely on other
lighty modules to run gnmi. Let's rather use
what is available from opendaylight instead.

Signed-off-by: tobias.pobocik <[email protected]>
The point of this rework is to not rely on other
lighty modules to run gnmi. Let's rather use
what is available from opendaylight instead.

Signed-off-by: tobias.pobocik <[email protected]>
Introduce features to run the gnmi feature.

Signed-off-by: tobias.pobocik <[email protected]>
Introduce bnd-parent as a substitute to lighty-app-parent.
We are no longer depending on lighty-core, so we need to
create our own parent.

Signed-off-by: tobias.pobocik <[email protected]>
Just like all other ODL components, introduce parent
for gnmi.

Signed-off-by: tobias.pobocik <[email protected]>
Convert the gnmi module to rely on the
previously created bnd-parent instead of lighty
parent.

Signed-off-by: tobias.pobocik <[email protected]>
Lighty.io does not have modernizer-maven-plugin and
modernizer-maven-plugin so its code was not made
with it in mind.

Signed-off-by: tobias.pobocik <[email protected]>
Gnmi module no longer requires json configuration to start.
The json configuration is used only to configure rcgnmi app
which starts gnmi.

Move all the code needed for json configuration to rcgnmi
utils instead of being in gnmi module since it needs lighty-
core dependencies.

Signed-off-by: tobias.pobocik <[email protected]>
Introduce gnmi-karaf

Signed-off-by: tobias.pobocik <[email protected]>
Karaf does not support using impl injection

Signed-off-by: tobias.pobocik <[email protected]>
Lighty.io uses versions which are not supported by karaf, exclude them

Signed-off-by: tobias.pobocik <[email protected]>
Fix simulator to generate fat zip and all resources just like it did
when it had lighty-app-parent.

Signed-off-by: tobias.pobocik <[email protected]>
Implement changes made in GnmiSouthboundModule
into tests.

Signed-off-by: tobias.pobocik <[email protected]>
Refactored `GnmiSouthboundModule` to support initialization via
dependency injection (OSGi) or manual configuration (Standalone/Test).
This change was necessary mostly for tests which are not running using
karaf and thus rely on json configuration.

Signed-off-by: tobias.pobocik <[email protected]>
Since this module no longer depends on lighty-core and its dependency management,
we need to specify the dependencies and versions of pekko we want to use.

Signed-off-by: tobias.pobocik <[email protected]>
Modernize our code in lighty-gnmi-sb with:
- use orElseThrow instead of get
- use java.nio.Path instead of Paths

Signed-off-by: Ivan Hrasko <[email protected]>
Modernize our code in lighty-gnmi-device-simulator with:
- use orElseThrow instead of get
- use java.nio.Path instead of Paths

Signed-off-by: Ivan Hrasko <[email protected]>
Modernize our code in lighty-gnmi-test with:
- use orElseThrow instead of get
- use java.nio.Path instead of Paths

Signed-off-by: Ivan Hrasko <[email protected]>
We do not need this file since the correct feature.xml is generated
according to pom.xml.

Signed-off-by: Ivan Hrasko <[email protected]>
We are going to be an ODL project, rename our feature accordingly
with human readable name as well.

Signed-off-by: Ivan Hrasko <[email protected]>
Do not skip dependency check, instead fix used/unused dependencies,
order them alphabetically and applied test scope.

Signed-off-by: Ivan Hrasko <[email protected]>
@ihrasko ihrasko merged commit f69153a into PANTHEONtech:feat-gnmi Dec 4, 2025
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants