Project

General

Profile

Task #3744

Story #3729: Member Nodes should be the authoritative source of System Metadata

Add MN API calls to update system metadata

Added by Chris Jones almost 11 years ago. Updated almost 9 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Architecture Design
Target version:
Start date:
2013-05-07
Due date:
% Done:

100%

Estimated time:
160.00 h
Milestone:
CCI-2.0
Product Version:
2.0.0
Story Points:
Sprint:

Description

With the MN becoming the authority for system metadata, the following calls will need to be changed:

MNCore.archive() - add
MNCore.setObsoletedBy() - add
MNAuthorization.setRightsHolder() - add
MNAuthorization.setAccessPolicy() - add

CNCore.archive() - deprecate
CNCore.setObsoletedBy() - deprecate
CNAuthorization.setRightsHolder() - deprecate
CNAuthorization.setAccessPolicy() - deprecate

These changes will affect the following components:
d1_common_java
d1_common_python
d1_libclient_java
d1_libclinet_python
d1_synchronization
d1_replication
Metacat CNodeService
Metacat MNodeService
GMN
and other MN stacks that will need to implement the new API calls

History

#1 Updated by Ben Leinfelder over 9 years ago

  • Status changed from New to In Progress

A couple questions:
Why not include a catch-all MNStorage.updateSystemMetadata() method instead of targeting specific fields in the SystemMetadata? For example, how would I change the formatId of an object unless there were an MN.updateSystemMetadata() method or a specific MNStorage.setFormatId() method. I prefer the former.
I don't think we can support MNCore operations that mutate data since there is no authentication in Tier 1. (So archive() will have to stay in MNStorage)
What about CN.updateReplicationPolicy() - should that be deprecated as well since we will be using CN.updateSystemMetadata() to change all the other mutable fields?

#2 Updated by Chris Jones over 9 years ago

We've made the decision to use MNStorage.updateSystemMetadata(), as Ben suggested above.

#3 Updated by Robert Waltz over 9 years ago

  • Target version set to CCI-2.0.0

#4 Updated by Rob Nahf over 9 years ago

  • Product Version set to 2.0.0
  • Milestone changed from None to CCI-2.0

#5 Updated by Rob Nahf about 9 years ago

  • % Done changed from 0 to 30
  • Category changed from d1_common_java to Architecture Design

#6 Updated by Chris Jones almost 9 years ago

  • % Done changed from 30 to 100
  • Status changed from In Progress to Closed
  • translation missing: en.field_remaining_hours changed from 160.0 to 0.0

We made the decision to use MNStorage.updateSystemMetadata() instead of all of the individual API methods above. This is now in the architecture documentation. See http://jenkins-1.dataone.org/jenkins/job/API%20Documentation%20-%20trunk/ws/api-documentation/build/html/apis/MN_APIs.html#MNStorage.updateSystemMetadata .

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 14.8 MB)