Project

General

Profile

# Date Author Comment
10193 03/14/2017 03:57 PM Jing Tao

Add more debug statement on cn.create method.

10180 02/28/2017 02:58 PM Jing Tao

Give the users having change-permission to archive an object which is from a v1 node.

10041 11/09/2016 05:26 PM Jing Tao

Use the "MNRead" to replace "MNStorage" to determine the version of the MN.

9833 07/06/2016 04:52 PM Jing Tao

Replaced the JiBXException by MarshallingException.

9600 03/30/2016 09:19 AM Jing Tao

Close the input stream on the create/update method when the code aborts.

9373 10/20/2015 04:11 PM Jing Tao

In the updateSystemMetadata method, we avoid to log the event twice for archive=true.

9371 10/20/2015 02:34 PM Jing Tao

In the setReplicationStatus method, it only notified the replicas when the status is completed. Now we added the status - failed and invalid.

9367 10/14/2015 01:15 PM rnahf

refs #7419: refactored CNodeService implementations to not throw IdentifierNotUnique for hasReservation.

9362 10/02/2015 04:36 PM Jing Tao

In the create method, the modification date is reset only on the objects whose authoritative member node is v1.

9361 10/02/2015 04:16 PM Jing Tao

In the deleteReplicationMetadata method, the modification date of the system metadata will not be reset.

9360 10/02/2015 04:09 PM Jing Tao

Modify the text of an exception.

9359 10/02/2015 03:53 PM Jing Tao

Add contrains for the v1/v2.registerSystemMetadata method. See https://redmine.dataone.org/issues/7380

9357 10/02/2015 10:20 AM Jing Tao

For the v1/v2 setObsoletedBy and setRightsHolder method, they only apply the objects whose authoriative member node is v1.

9356 10/02/2015 08:55 AM Jing Tao

Add the constrains that v1/v2.archive only applies the object whose authoritative node is a v1 node.

9354 10/01/2015 05:33 PM Jing Tao

Add the case the mn.updateSystemMetadata and cn.updateSystemMetadata will call the archive method internally.

9353 10/01/2015 03:01 PM Jing Tao

Refactory the mn.archive and cn.archive method so the mn.update and cn.update can reuse them.

9350 10/01/2015 12:30 PM Jing Tao

In the archive method, add the lock.

9347 09/30/2015 05:01 PM Jing Tao

Only applies the setAccessPolicy method to objects whose authoritative mn is v1.

9345 09/30/2015 04:38 PM Jing Tao

Add a comment to specify that the setReplicationPolicy only applys to v1.

9343 09/30/2015 04:07 PM Jing Tao

The setReplicationPolicy method only apply to the pids whose authoritative member node has v2 MNStorage.

9339 09/28/2015 10:01 AM Jing Tao

Add a note for the updateSystemMetadata method.

9337 09/25/2015 02:55 PM Jing Tao

CN.updateSystemMetadata will ignore the serial version and replica list in the comming system metadata from the mn.

9335 09/24/2015 04:58 PM Jing Tao

Add the code to check the date of system metadata modification match in MN.updateSystemMetadata only. CN.updateSystemMetadata doesn't check.

9326 09/16/2015 12:57 PM Chris Jones

Change updateReplicationMetadata() and setReplicationStatus() to no longer set the dateSysmetaModified date per our discussion on 9/16/15.

9315 09/04/2015 03:05 PM Jing Tao

In the setReplicaStatus method, if the coming status is the same one of the existing one, the system metadata will not be updated.

9294 08/14/2015 04:04 PM Jing Tao

When the cn.notifyReplicaNodes method, if the target MN source code is a v2 mn, we will use v2 api; if it is a v1 node, we will use v1 api.

9272 07/30/2015 05:32 PM Jing Tao

The method of setReplicationstatus can be called by CNs and MNs.

9265 07/27/2015 05:15 PM Jing Tao

Only CNs can call those methods:
CNCore.registerSystemMetadata()
CNCore,updateSystemMetadata()
CNReplication.setReplicationStatus()
CNReplication.updateReplicationMetadata()
CNReplication.deleteReplicationMetadata()

9249 07/15/2015 11:07 AM Jing Tao

Use the NodeReference object to replace the replicaStatus to restrict the listObjects method.

9247 07/14/2015 04:56 PM Jing Tao

Change the signature of listObject method - remove replicaStatus and add nodeId.

9192 05/01/2015 04:56 PM Jing Tao

Add a new method -updateSystemMetadata. It only can be called by CNs.

9189 05/01/2015 02:59 PM Jing Tao

Committed the change which Andreit did.
1. Add the code for synchronize(not implemented)
2. Add the code for addForm.

9177 04/22/2015 05:01 PM Jing Tao

Created the updateSystemMetadata method.

9170 04/14/2015 02:43 PM Jing Tao

Remove the code to check sid on create and registerSystemMetadata.

9146 03/09/2015 05:19 PM Jing Tao

Add the code to support CNView interface in CNodeService. Both CNodeService and MNodeService share the same code base.

9125 02/17/2015 04:01 PM Jing Tao

The setObsoletedBy only handles PID.

9111 02/09/2015 05:38 PM Jing Tao

Call the method lock.lock() immediately after getting the lock. Otherwise, if an exception happened between the two calls (in another word, lock.lock() was called), lock.unlock() can cause an issue:
Current thread is not owner of lock!
See https://redmine.dataone.org/issues/6836.

9093 02/04/2015 04:44 PM Jing Tao

The setReplicationStatus method only supports sid and the setRightsHolder method supports both PID and SID.

9087 02/03/2015 02:10 PM Jing Tao

The CN.setReplicationPolicy method now only support PIDs. Refer to https://redmine.dataone.org/issues/6734.

9073 01/20/2015 02:25 PM Jing Tao

Add the rules to check the if a sid is valid in the updateSystemMetadata method.

9071 01/16/2015 02:22 PM Jing Tao

The MN.listobjects and CN.listobjects methods will call the one in the D1NodeService class.

9070 01/16/2015 12:29 PM Jing Tao

Add the code to check if the pid is an SID in the registerSystemMetadata method.

9069 01/15/2015 05:36 PM Jing Tao

Add code to check if the sid equals pid for the method checkSidInRegisterSystemMetadata.

9068 01/15/2015 05:27 PM Jing Tao

Moved the rules for the SID from D1NodeService.create to MNodeService.create.
Also moved the code to check the validation of an pid from D1NodeService.create to MNodeService.create, MNodeService.replicate and CNodeService.create.

9067 01/15/2015 04:56 PM Jing Tao

Add the code to check if a sid is legitimate in the method create and registerSystemMetadata.

9066 01/14/2015 05:33 PM Jing Tao

The the code to handle sids on the v2 api - setReplicationPolicy, setReplicationStatus, setAccessPolicy and setObsoletedBy.

9050 12/30/2014 04:34 PM Jing Tao

Add the code to handle the sid in the delete and archive method.

9024 12/16/2014 06:50 PM Jing Tao

Fixed a bug that the method getLocalId swallowed an exception incorrectly in the IdentifierManager.

8971 11/17/2014 04:30 PM Jing Tao

Add delete log for data objects on CNs.

8903 10/15/2014 04:34 PM Jing Tao

Added the code to inform users the pid was deleted in the NotFound exception.

8887 10/10/2014 02:10 PM Jing Tao

Remove the system metadata for data objects.

8869 09/18/2014 03:12 PM Jing Tao

Persitence the system metadata object in the memory before deleting it from hazelcast.

8811 07/24/2014 10:25 AM ben leinfelder

remove CN.systemMetadataChanged in favor of the CN.updateSystemMetadata method. Otherwise there's no good way to know where to fetch the auth copy from since the SM change might be to switch the authMN!

8810 07/23/2014 04:19 PM ben leinfelder

add support for v2 DataONE API.

8770 05/12/2014 11:31 AM ben leinfelder

do not set archived=false for all CN.create calls. The CN will use create() even harvesting content that is new to it and needs to handle already-archived content. https://projects.ecoinformatics.org/ecoinfo/issues/6475

8589 02/11/2014 11:05 AM Chris Jones

Change CnodeService.archive() to no longer broadcast MN.archive() calls to all of the replica MNs of a pid, but rather broadcast MN.systemMetadataChanged().

8553 02/03/2014 02:52 PM ben leinfelder

can only log events with a valid localId.

8454 12/20/2013 07:46 AM Chris Jones

On changes to system metadata in CNodeService and DocumentImpl, increment the serialVersion.

8450 12/19/2013 02:35 PM Chris Jones

Change CNodeService's archive() and delete() methods to only update Member Nodes in the replica list (not CNs!), since calling CN.archive() again would cause an infinite loop. Thanks for catching this Ben.

8444 12/19/2013 09:35 AM Chris Jones

Update CNodeService.delete() and .archive() to handle situations where the pid is of formatType DATA, and therefore are not registered in the identifier table, and caused NotFound exceptions. For DATA objects, we just update the system metadata now, and for all other objects (METADATA, RESOURCE), we continue to use super.{delete()|archive()}. Also, log the delete/archive into the event log....

8439 12/19/2013 08:13 AM Chris Jones

Remove the broadcastSystemMetadataChange() method since it was a duplicate of notifyReplicaNodes(). Consolidated now.

8360 10/31/2013 01:07 PM Jing Tao

Add the methond named isAuthoritativeMNodeAdmin method. It applies to both CN and MN methods.

8355 10/30/2013 03:37 PM Chris Jones

On calls to archive(), log the correct call (not delete()).

7600 04/20/2013 06:19 PM Chris Jones

Merging the METACAT_2_0_6_BRANCH changes for [M|C]NodeService into the trunk.

7534 04/05/2013 12:38 PM ben leinfelder

allow verification date to be updated for replicas (patch from Skye). https://redmine.dataone.org/issues/3699

7515 03/13/2013 03:13 PM Chris Jones

Set the session to null so that the call uses the CN certificate when calling MN.systemMetadataChanged();

7514 03/13/2013 07:26 AM Chris Jones

To keep all nodes up to date with regard to system metadata changes, add the broadcastSystemMetadataChange() method that finds replica MNs in the node list and calls systemMetadataChanged(). Modify setReplicationStatus() and updateReplicationMetadata() to fire this off when a replica status changes to completed. We may decide to inform MNs at other times too, but this is a conservative amount of calls going to the MNs for now.

7467 12/07/2012 10:39 AM ben leinfelder

make sure to call lock() on the SM when updating rightsholder (like every other method that gets a lock object from HZ).

7464 12/07/2012 10:25 AM ben leinfelder

CN.search() id not implemented by metacat -- making that explicit and also testing for it.

7439 11/29/2012 04:52 PM ben leinfelder

limit /log and /object calls to configurable maximum count for paging. defaults to existing Metacat value of 7000

7420 11/09/2012 10:57 AM Chris Jones

In CNodeService.updateReplicationMetadata(), we are setting the replicaVerifiedDate() when we update or wholesale add a new replica. However, in setReplicationStatus(), we only do so when there's a new entry. Change setReplicationStatus() to also update the replicaVerifiedDate on updates of existing entries to be more consistent with other changes. This affects node prioritization based on this date timestamp. Thanks to Skye for pointing this out.

7401 10/15/2012 02:38 PM Chris Jones

Update d1_common_java and d1_libclient_java to the newest jar files. Add methods to CNodeService to throw NotImplemented exceptions for query(), listQueryEngines(), and getQueryEngineDescription() since these API calls are handled outside of metacat.

7252 06/06/2012 03:14 PM Chris Jones

Oops, previous commit suffered from a happy trigger finger. During deleteReplicationMetadata(), don't delete the replica on the replica Member Node. Call CN.delete() for that functionality. This call just updates sytem metadata (according to the API description).

7251 06/06/2012 03:10 PM Chris Jones
7231 06/02/2012 05:46 AM Chris Jones

In setReplicationStatus() and UpdateReplicationMetadata(), don't allow a status state change from COMPLETED to anything other than INVALIDATED. This prevents the completed status from being overwritten due to race conditions.

7218 05/31/2012 10:56 AM Chris Jones

Throw an exception when NOT allowed, not when allowed =).

7179 05/21/2012 02:31 PM Chris Jones

Add a few logging statemnts for round trip replication metrics.

7171 05/17/2012 12:46 PM ben leinfelder

remove exception from method decl - was not matching the interface def and not compiling.

7148 04/30/2012 03:35 PM ben leinfelder

implement MN and CN.archive() method -- really just the existing delete() methods.
https://redmine.dataone.org/issues/2674
https://redmine.dataone.org/issues/2675

7147 04/30/2012 03:05 PM ben leinfelder

call MN.delete() for each replica when CN.delete() is called
https://redmine.dataone.org/issues/2676

7144 04/25/2012 03:33 PM ben leinfelder

include Session-less interface methods and updated jars that define them.

7142 04/19/2012 02:04 PM ben leinfelder

remove extraneous pid and permission parameters from isAdminAuthorized() method and make public so that it can be called in other locations - namely before our asynchronous replicate() implementation on the MN.

7141 04/19/2012 01:50 PM ben leinfelder

check for empty null (missing) node.subjectList. This should probably be a required element in the D1 schema, but it appears not. (ORNL entry was missing subjects in cn-dev environment)

7140 04/19/2012 11:57 AM ben leinfelder

just use the e.getMessage() as e.getCause() may be null (seeing NPE when testing via the MN IT tester)

7086 03/22/2012 03:14 PM Chris Jones

Also allow MNs to set the FAILED status in setReplicationStatus(). this was an oversight on my part, trying to keep MNs that truly did succeed from overriding the COMPLETED status with FAILED.

7079 03/19/2012 10:12 AM ben leinfelder

use isAdminAuthorized() to check access to CN.create(). Note this method takes a pid and permission parameter and neither is used. Also removed the NotFound exception because it would never come up.

7078 03/19/2012 10:01 AM ben leinfelder

check that caller is CN/admin for CN.delete()
https://redmine.dataone.org/issues/2506

7077 03/19/2012 09:52 AM ben leinfelder

include CN.delete()
https://redmine.dataone.org/issues/2506

7076 03/16/2012 04:07 PM Chris Jones

Notify each replica MN when critical portions of system metadata change so the MN can pull the latest copy into its store. AccessPolicy and RightsHolder changes are the most critical for the MN to keep updated on.

7074 03/15/2012 07:50 PM Chris Jones

Modify CNodeService.setReplicationStatus() slightly to restrict MN-based calls to only set the status to COMPLETED. The CNs should be setting failures or invalidations, or the status can remain at QUEUED or REQUESTED, and the MNAuditTask can revisit those replicas as needed.

7073 03/15/2012 07:14 PM Chris Jones

Add a notifyReplicaNodes() method that calls MNStorage.systemMetadataChanged() on MN replica nodes for a given object identifier. This will be called when there are changes to AccessPolicy and rights holder since these are critical access metadata for an MN, but they can only be changed on the CN.

7071 03/15/2012 12:08 PM Chris Jones

In setReplicationStatus(), first check for a replica target MN subject match with the session subject. If this fails, look to see if CN admin access is allowed. Otherwise throw NotAuthorized. Addresses https://redmine.dataone.org/issues/2494

7068 03/14/2012 12:02 PM Chris Jones

Remove individual calls to isAdminAuthorized() in favor of the centralized isAuthorized() call that handles it now.

7066 03/13/2012 04:00 PM ben leinfelder

check for null Session before continuing with setReplicationStatus()
https://redmine.dataone.org/issues/2476#note-3

7062 03/13/2012 02:19 PM ben leinfelder

throw not authorized when attempting to getReplica as an invalid/non-existent node

7029 02/24/2012 09:46 AM ben leinfelder

throw InvalidToken when an invalid Permission is passed in. THis requires that internal calls to the method also check for this exception.
https://redmine.dataone.org/issues/2388

7012 02/15/2012 09:35 AM Chris Jones

CNodeService.listChecksumAlgorithms() was returning null rather than the list. Fixed.

6934 01/23/2012 11:08 AM ben leinfelder

use RC-1 Dataone jars

6917 01/17/2012 03:17 PM Chris Jones

For MNs that haven't set the archived flag to false on create(), set it here. Also, ensure that the CN sync code sets the authoritative and origin member node fields.

6884 01/11/2012 04:42 PM ben leinfelder

include new methods needed for replication (in new d1 jars)
https://redmine.dataone.org/issues/2203