References
- CPS-1963Getting issue details... STATUS
https://ldap.com/ldap-dns-and-rdns/
Assumptions
Issue | Notes | Sign-off | |
---|---|---|---|
1 | alternateId not used when processing 'deletedCmHandles' or 'upgradedCmHandles' | Any alternateId stored in the cache earlier will be used | |
2 | In case of updating, when users try to change an alternateId we should ignore it. | Ignore it a silent way (e.g: logging message), no exception should be thrown! | Kolawole Adebisi-AdeolokunYes, ignore as long as it is documented this is not supported (yaml) |
3 | a unique CM Handle ID (populated with hashes) will remain in place | to support duplicated alternated IDs, see also decision #5 |
Issues & Decisions
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 |
Alternate identifiers during registration
The first use case which should be handled is the storing of the new identifier ( called FDN or Fully Distinguished Name).
A fully distinguished name uniquely identifies an entry and describes its position.
To achieve this NCMP's CmHandle registration endpoint must be changed to accept a new String parameter which proposed name is alternateId.
Extending RestInputCmHandle object
During registration an object called RestInputCmHandle contains all the information to register new entities in the database.
The object should be extended at the top level with the new optional property:
RestInputCmHandle | |
---|---|
Field name | Type |
cmHandle | String |
cmHandleProperties | Object |
publicCmHandleProperties | Object |
moduleSetTag | String |
trustLevel | String |
alternateId | String |
Inventory Use cases
create (initial inventory)
This use case is described above.
update
Assuming that alternateIds will not change during update.
delete
In case of a DELETE operation only the cmHandleId provided in an array of strings.
upgrade
Assuming that it's ignored.
Proposed DMI Registry model
The DMI registry model should be updated as well to store the new value in the persistence layer. The proposed model was added below:
Updates
- Revision lines 11-13
- AlternateId lines 91-93
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)
Proposed JIRAs
Component | Description | JIRA | |
---|---|---|---|
1 | NCMP | Modify cmHandle registration for alternateId | |
2 | NCMP | Allow updating of cmHandles with an alternateId | |
3 | NCMP | Update Model to allow Persisting of alternateId | |
4 | NCMP | Introduce Hazelcast for alternateId-cmHandle relation | |
5 | NCMP | None uniqueness of alternateid |
Notes
A proposal was made to make alternateIds non-unique, since different EMS might register NEs with the same alternateId. But this would affect queries and back-and-forth mapping between cmHandleId-alternateId.