[NETCONF-945] Rename netconf-impl to netconf-server Created: 23/Jan/23 Updated: 02/May/23 Resolved: 02/May/23 |
|
| Status: | Resolved |
| Project: | netconf |
| Component/s: | netconf |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0 |
| Type: | Task | Priority: | Medium |
| Reporter: | Robert Varga | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | pt | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Epic Link: | Reorganize netconf.git | ||||||||
| Description |
|
netconf-impl contains classes (in the .osgi) package, which really are related to netconf-server. These get activated in mdsal-netconf-impl via blueprint. Separate these classes out into an OSGi DS-driven netconf-server package. Eliminate blueprint from mdsal-netconf-impl, leaving it empty, but retain dependency compatibility by depending on netconf-server. Note netconf-server should live in /protocol directory. Based on below, this issue deals with just rename and movement of code. The blueprint stuff will be dealt with separately. |
| Comments |
| Comment by Ruslan Kashapov [ 06/Feb/23 ] |
|
there are issues:
due there is almost everything to extract, suggested
|
| Comment by Robert Varga [ 07/Feb/23 ] |
|
Okay, fair enough. Let's punt this for 6.0.x, as renaming things will break users.
|
| Comment by Robert Varga [ 26/Apr/23 ] |
|
So going through the motions of migration, there is a metric ton of clean ups here. The problem is that client-side and server-side APIs are not separated and tucked in netconf-api (which hosts NetconfMessage), netconf-notifications-api and netconf-mapping-api (which both are server-side things). We really want to separate the generic, client-side and server-sides, as otherwise we won't be able to make out what is required where. This essentially means that all the server-side APIs need to be rehosted to org.opendaylight.netconf.server.api sub-packages, to make the dependencies obvious. There is additional wrinkle I came across, which is that we do not have proper NetconfMessage specializations for anything except <hello/> and <notification/>. This muddles which layer netconf-api is really is about:
But then we lack RpcMessage and RpcReplyMessage – and this ends up being checked all over the place. One notable problem netconf.utll.messages.SubtreeFilter, which operates on plain documents, but performs checks for <get> and <get-config> operations – which indicates it operates on Operations layer, without every employing the underlying safety of the Messages layer. As a further wrinkle we have netconf.api.monitoriing, which is obviously tied to a specific YANG module, which in turn is a Content layer thing – and there for that we have the netconf-mapping-api, which deals with RPC mapping and netconf-notifications-api, which deals with Notification mapping – both of which are server-side things. Since the client-side of things only cares about Transport and Messages layer, netconf-api needs to only capture those layers – for now that is. The transport part of things is already being split into transport-api, hence once the dust settles, netconf-api is only about Messages layer and higher-layer concerns a purely a netconf-server thing. |