...
Issue | Notes | Decision | ||
---|---|---|---|---|
1 | Is FDN optional? | Is it possible to register a cmHandle without an FDN? | Toine Siebelink Yes it is optional as not everyone will use it | |
2 | In Hazelcast what is the key? | Is it the FDN or the cmHandleId? | Toine Siebelink create 2 maps:
| |
3 | Check alternateId in 'updatedCmHandles' | Assuming updatedCHandle should NOT be used to correct/change the AlternateId for a CmHandleId | Alternate IDs are immutable once they are set. | |
4 | Should we persist the alternateId? | Should we modify the registry model? | Toine Siebelink Yes, the Inventory Model should update with the AlternatId as detailed below | |
5 | Alternative ID is NOT unique! | multiple NMs might be using same subnetwork names i the FDNs and as NCMP manage multiples NM's NCMP can encounter duplicates. | kieran mccarthy FDNs will be Unique | |
6 | Add a cm Handle with a alternate ID that is already in use (for another CM Handle) | Error report solution will be easier if we do NOT add it and treat it like a 'normal' duplicate cm handle | kieran mccarthy do not add! Rephrase error to | 7 |
Alternate identifiers during registration
...
RestInputCmHandle | |
---|---|
Field name | Type |
cmHandle | String |
cmHandleProperties | Object |
publicCmHandleProperties | Object |
moduleSetTag | String |
trustLevel | String |
alternateId | String |
Save the cmHandleId and the alternateId to caches
During registration the new identifier must be saved to a cache. Because it could be reused later for queries.
The new cache must implement two maps (Map<String, String>).
The first map should be structured in a way where the original CM Handle ID is the key and the alternate ID is the value.
The second map should be the other way around.
...
Inventory Use cases
create (initial inventory)
...
In case of a DELETE operation only the cmHandleId provided in an array of strings.However during removal we should check if any of the two caches containing the cmHandleId and that is the case we should remove those entries.
upgrade
Assuming that it's ignored.
...
Error Reporting
Error Scenarios
Use-case | CM Handle Id | Alternate Id | Report | Add Cm Handle | Store Alternate ID | Notes | |
---|---|---|---|---|---|---|---|
1 | New registration | Duplicated | N/A | 109, cm-handle already |
exists | No | No |
2 | New Registration | Unique | used for other cm handle |
111, alternate id already |
associated |
No | No |
New NCMP error | ||||
3 | Update Registration | New | N/A | 100, |
cm handle id(s) not found | N/A | No | ||
4 | Update Registration | Exist | already set | 111, |
alternate id already associated | N/A |
No | New |
NCMP error | ||||
5 | Update Registration | Exist | Use by other cm handle | 111, |
alternate id already associated | N/A | No |
New NCMP error |
Current Implementation of Duplicate Cm Handle Registration (during batch)
TODO: Expand on how below works
- Origin of exception (org.onap.cps.spi.impl.CpsDataPersistenceServiceImpl#retrySavingEachChildIndividually)
- How is retry performed from on remain cm handles in same batch
- how is the error information amalgamated (for multiple failures in oen batch in and in multiple batches)
...