...
Study is required to clearly define the scope and impacts of updating YANG model schema sets for cmhandlescm-handles.
Table of Contents |
---|
Requirements
...
# | Interface | Requirement | Additional Information |
---|---|---|---|
1 | CPS-NCMP-I-01 | Update module set for CM-Handle(s) use using a ModuleSet Tag ModuleSetTag | Module Ste Set Tag is owned (defined) by DMI PLuginDMI Plugin Known module set tags should prevent 'trips' to DMI for Module information |
2 | CPS-NCMP-I-01 | Initial Inventory can use ModuleSetTag too | TBC new performance requirements? |
CPS-NCMP-I-01 | Update module set for CM-Handle(s) using a Blank ModuleSetTag | use 'old' algorithm from initial inventory |
Error Handling
# | Error Scenario | Expected behavior |
---|---|---|
1 | Missing CM Handles (in list, some are OK) |
Capabilities
Excerpt | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Out-of-scope
- Upgrade of models for cached data (only pass-trough ie. non-cached data upgrade will be supported
Assumptions
- Client will be informed of upgrade by 'state-change' notifications
Issues & Decisions
# | Issue | Notes | Decision | ||
---|---|---|---|---|---|
1 | Type of Interface REST or Kafka | REST
Kafka
| meeting Agreed to use REST interface. | ||
2 | moduleSetTag based on Hash no (yet) implemented! | This study seems to assume the module set tag is already implemented but it isn't! | [kieran mccarthy]: the request it to introduce the module set tag/identifier of some kind for this new upgrade usecase. Not assuming it is there already. Will be costlier but is important for performance to avoid pulling models if they are already known to NCMP. | ||
3 | Expected Responses | when and what content?
Should follow error handling for Inventory | 202 Accepted if there are no issues with the payload 404 Not Found Reject the request if an unknown cmhandle is sent in TBD partial correct cm hanldes | ||
4 | Should CM-Handle state change (e.g. to 'locked') 'during' upgrade? | Yes but is important to not be locked for long which makes it important to use the moduleSetTag | kieran mccarthy Should be set to LOCKED until the new moduleSet is associated with the cmhandle. I think there is a LOCKED_UPGRADING if I remember right. Lock reason should state "upgrade initiated at time xxx for new moduleSetTag xyz". When lock is being removed any lockReason message should be cleared. | ||
5 | moduleSetTag is Optional (owned and defined by DMI Plugin) | Support for upgrade without continues using delete/add cm handle approach. If the update includes an moduleSetTag it would be considered an upgrade | meeting Agreed to use REST interface with "upgradedCmHandles". | ||
6 | moduleSetTag should be able to be used during initial inventory too! | Initial Inventory should be sped up too (capability requirements impacts ?!) Note. Current inventory 'createdCmHandles' only supports a list of cm handle Ids can this be in backward compatible way be modified to optionally include a ModuleSetTag | |||
7 | Exact name moduleSetTag | meeting agreed on moduleSetTag | |||
8 | How to store: hardcoded (postgress schema), inventory yang model or as additional property (private or public)? | update Inventory Yang Model so it can be queried (without code changes!) like other aspect such as 'state' | meeting agreed to update Yang Model Is it ok for cmhandle to send out a cmhandle lcm update event for a change in this property to indicate to client applications that a new moduleSet is available? | ||
9 | additional operation for inventory Interface: 'upgradedCmHandles' | The interface currently supports
it possiblycould be done as part of 'updatedCmHandles' and look for /recognize the moduleSetTag update but this would be messy and confusing, also thentheoretically properties could be updated as the same time as the module set. | . Toine Siebelink , changed updatedCmHandles to removedCmHandles as per openAPI. | meeting agreed | |
10 | Clarify capabilities |
|
Solution Proposals
Toine Siebelink Can you alternative proposals be maintained (kafka) so we know they were considered and reviewed and ruled out. Be good to see what was reviewed/considered.
...
If the moduleSetTag json property is set to "" (empty string) or then it should also indicate that the moduleSet for a cmhandle has been updated but there is no associated moduleSetTag available for that cmhandle. This approach will always result is a full request to the dmi plugin for the module set for the cmhandle.
Suggested User Stories
- Define (in Open API )and agree inventory interface (changes) for 'upgradedCmHandles'
- Update Inventory Model to store 'ModuleSetTag' (Liquibase set incl rollback)
- Implement upgrade
- (Check) Locking/notifications state handling (some modifications might be needed)
- Implement/test error scenarios
- Test & Document performance
- Implement ModuleSetTag for Initial Inventory