Bug #7386
the ReserveIdentifierService allows SIDs already in use to be reserved.
100%
Description
Looking at the ReserveIdentifierService code, the only check on an identifier that it's not already in use is doing a lookup in the Hz system metadata map, which only has PIDs as keys. A possible solution is to use CN.resolve (or CN.getSystemMetadata) instead, but need to check that it's appropriate to introduce a dependency on the CN rest service.
The impact is that hasReservation doesn't give a reliable result.
Related issues
History
#1 Updated by Rob Nahf about 9 years ago
- Description updated (diff)
#2 Updated by Ben Leinfelder about 9 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 30
I've updated the service to call cn.getsystemmetadata to check if the identifier is a sid. needs testing.
#3 Updated by Ben Leinfelder about 9 years ago
- Related to Story #7419: hasReservation should not check if an Identifier is already registered added
#4 Updated by Ben Leinfelder about 9 years ago
- Status changed from In Progress to Closed
- % Done changed from 30 to 100
now using cn.listObjects() since this method does not constrain results using access control rules so there is no need to worry about the reserve service being correctly configured to make client calls using the CN certificate.