Project

General

Profile

Statistics
| Revision:

# Date Author Comment
6711 11/29/2011 01:44 PM Chris Jones

Set a default HazelcastInstance after init() is called, and use this instance in getLock() to acquire a lock in the cluster.

6710 11/29/2011 01:41 PM ben leinfelder

no need to cast docInfo entries to String -- they are all strings

6709 11/29/2011 01:39 PM ben leinfelder

set revision history, the create/update dates and the owner/submitter (correctly)

6708 11/29/2011 01:05 PM ben leinfelder

use shared method for looking up "docInfo" map -- both in Metacat replication and in D1 system metadata generation

6707 11/29/2011 12:38 PM ben leinfelder

make default formatting a little bit easier to read

6706 11/29/2011 12:33 PM ben leinfelder

reformat code -- no changes

6705 11/29/2011 12:31 PM ben leinfelder

refactor SystemMetadata creation into separate class from the MetacatHandler -- this will be shared by upgrade code and normal metacat api.

6703 11/29/2011 10:10 AM Chris Jones

When using ILock.lock(), get a lock on the string value of the Identifier, not the Identifier object itself. Hazelcast locking won't work otherwise.

6702 11/29/2011 08:55 AM Chris Jones

Use the Hazelcast ILock mechanism to lock the system metadata identifier rather than using IMap.lock(pid).

6693 11/23/2011 12:10 PM ben leinfelder

verify checksum when retrieving replica from another member node.
https://redmine.dataone.org/issues/1794

6692 11/23/2011 11:59 AM ben leinfelder

make sure to get/put system metadata to the HZ map instead of using IdentifierManager directly
verified changes for: https://redmine.dataone.org/issues/1999

6689 11/23/2011 11:03 AM ben leinfelder

look-up sych schedule from metacat properties instead of hardcoding them
https://redmine.dataone.org/issues/1933

6688 11/23/2011 10:19 AM ben leinfelder

when comparing D1 Subject objects, use the equals() method not direct string comparison
https://redmine.dataone.org/issues/2050

6687 11/23/2011 10:07 AM ben leinfelder

access nodeList list correctly
https://redmine.dataone.org/issues/2049

6676 11/18/2011 09:10 AM Chris Jones

Use Subject.equals() when comparing DNs rather than CertificateManager.equalsDN(). Don't lock the pid in isNodeAuthorized() to debug for timeout issues. Minor debugging changes.

6665 11/16/2011 06:15 PM Chris Jones

Minor logging for isNodeAuthorized(), and compare subjects properly. Change this to Subject.compareTo() when it is vetted.

6664 11/16/2011 04:09 PM ben leinfelder

check for authenticated and verified user permissions

6663 11/16/2011 03:34 PM ben leinfelder

throw NotAuthorized when there is no session

6662 11/16/2011 02:27 PM Chris Jones

Catch RuntimeExceptions thrown by Hazelcast as opposed to general Exceptions to we don't catch exceptions we're trying to throw.

6659 11/16/2011 10:45 AM ben leinfelder

generalize exception handling -- add cause detail

6657 11/16/2011 10:34 AM Chris Jones

Changes to setReplicationStatus and isNodeAuthorized(), working out minor bugs in replication.

6656 11/16/2011 09:50 AM ben leinfelder

include exception cause when throwing new exception (combine RuntimeException in Exception handling -- they are almst identical)

6653 11/15/2011 10:48 AM ben leinfelder

throw InvalidToken when session is null

6652 11/15/2011 10:47 AM ben leinfelder

correct typo

6651 11/15/2011 09:37 AM Chris Jones

Send the correct node id (the target node) when calling setReplicationStatus()

6649 11/14/2011 03:49 PM ben leinfelder

check obsoletes and obsoletedBy PIDs when updating objects

6648 11/14/2011 03:34 PM ben leinfelder

delete system metadata when MN.delete() is called.

6645 11/14/2011 02:59 PM ben leinfelder

throw InvalidToken when there is no session (certificate) provided in update() and delete() methods.

6644 11/13/2011 05:47 PM Chris Jones

Calls to setReplicationStatus() can only be made by a CN or the MN that is the target replica node. Implement this service restriction in CNodeService using CertificateManager's equalsDN() method.

6636 11/11/2011 08:58 AM Chris Jones

Added stack trace debugging for CNodeService.isNodeAuthorized() for tracking down replication issues.

6632 11/10/2011 08:30 AM Chris Jones

Use a session object that is set to null when calling CNode.setReplicationStatus()

6631 11/10/2011 08:05 AM Chris Jones

Add debugging code to MNodeService.getReplica().

6630 11/09/2011 06:55 PM Chris Jones

Set a new Session object to null, to be overwritten by the CertificateManager session information from the X.509 certificate.

6624 11/09/2011 07:14 AM Chris Jones

Fix cast to List<Node> in isNodeAuthorized().

6622 11/08/2011 03:49 PM ben leinfelder

upgrade to 1.0.1-SNAPSHOT DataONE jars

6610 11/07/2011 10:52 AM Chris Jones

Update methods in MNodeService to reflect they modifications of the MN API with regard to exceptions being raised. Largely removed InvalidRequest from a number of methods, and instead threw an appropriate NotFound or ServiceFailure instead.

6609 11/07/2011 10:01 AM Chris Jones

D1NodeService get(), getSystemMetadata(), and isAuthorized() no longer throw InvalidRequest.

6600 11/03/2011 12:55 PM Chris Jones

Add in the systemMetadataChanged() method in MNodeService to respond to notifications. Only allow subjects from CNs listed in the node list to make the call. Update the local copy of the system metadata document for the given pid.

6599 11/03/2011 10:36 AM Chris Jones

Include the serialVersion in the call to CN.setReplicationStatus() after replicating data.

6596 11/02/2011 09:58 PM ben leinfelder

make MNodeServiceTest pass JUnit testing

6593 11/02/2011 08:04 PM Chris Jones

Update CNodeService to use the serialVersion parameter and compare it to the current serialVersion of the system metadata found in the hzSystemMetadata map. Throw an InvalidRequest exception if they are not equal. This affects updateReplicationMetadata(), setReplicationStatus(), setReplicationPolicy(), setAccessPolicy(), and setOwner().

6578 11/01/2011 11:54 AM Chris Jones

Add updateReplicationMetadata() to the CN service implementation. This was missing from the API, and likely never called. It fully replaces the given replica item in the list of replicas in system metadata.

6576 11/01/2011 08:59 AM Chris Jones

getReplica() should log replication events as DataONE Types.Event.replicate (vs 'getreplica')

6575 11/01/2011 08:54 AM Chris Jones

Minor indentation cleanup.

6574 11/01/2011 06:48 AM Chris Jones

Modify isAuthorized() to get the most up to date system metadata from the hzSystemMetadata map.

6573 11/01/2011 06:40 AM Chris Jones

Add a placeholder setAccessPolicy() method in MNodeService that throws NotImplemented since this method is being deprecated. Note: need to confirm that this shouldn't be calling D1Client.getCN().setAccessPolicy().

6572 11/01/2011 06:37 AM Chris Jones

Update getSystemMetadata() to lock(); get(); unlock() to ensure we have the latest version of system metadata from the hzSystemMetadata map. Remove the setAccessPolicy() method since it is being deprecated in the MNAuthorization API.
change insertSystemMetadata() to use a finer grained Date object on insertion. Locking of the pid happens in the subclass prior to the insert.

6571 11/01/2011 06:33 AM Chris Jones

Add setAccessPolicy() to CNodeService since the CN should only make changes to access policies for objects registered with the D1 system. Increment the serial version after locling and getting the most up to fdate system metadata.
Note: CCIT meeting decision says the serial version of the system metadata (during the change) should equal the current serial version, but setAccessPolicy() does not pass in the entire system metadata object, so there's no way to check. For now, increment the latest system metadata from the hzSystemMetadata map.

6570 10/31/2011 04:37 PM Chris Jones

In CNodeService, separate the CN.create() functionality from the MN.create() functionality while still using the superclass to call create(). Deal with Hazelcast locks and setting serial versions only in the CN implementation.

6569 10/31/2011 01:13 PM Chris Jones

Change updateSystemMetadata() to evaluate the incoming system metadata serial version against that found in the hzSystemMetadata map. If they are the same, do the update. If not, throw an InvalidRequest explaining that they need the most current version.

6568 10/29/2011 07:21 PM Chris Jones

Modify CNodeService's registerSystemMetadata() with support for SystemMetadata's serialVersion field. Also, use the hzSystemMetadata map for all system metadata reads using a lock on the pid in order to get the very latest version. This affected isNodeAuthorized(), getChecksum(), and assertRelation(). Since we're using Hazelcast, exceptions are masked as RuntimeException, so throw a ServiceFailure with the underlying message.

6567 10/28/2011 09:46 PM Chris Jones

Modify CNodeService's updateSystemMetadata(), setReplicationStatus(), setReplicationPolicy(), and setOwner() with support for SystemMetadata's serialVersion field. Other methods still pending an update. Use the hzSystemMetadata map for all system metadata reads using a lock on the pid in order to get the very latest version.

6564 10/28/2011 04:05 PM Chris Jones

SystemMetadataManager's functionality is handled by IdentifierManager. Removing it and it's test.

6563 10/28/2011 04:01 PM Chris Jones

MetadataTypeRegister is now replaced by ObjectFormatService. Removing it and it's test.

6561 10/27/2011 05:51 PM ben leinfelder

move the DataONE 1.0.0-SNAPSHOT

6552 10/27/2011 02:13 PM ben leinfelder

Configure and use CertificateManager in order to act as the MN when performing replicate() and getReplica() mthods.

6542 10/20/2011 02:03 PM ben leinfelder

add User-Agent logging to support D1 requirements

6540 10/16/2011 10:47 AM Chris Jones

Add debugging output to MNodeService.

6532 10/12/2011 11:17 AM ben leinfelder

update D1 jars to include recent SubjectList -> SubjectInfo refactoring and the SUBJECT_PUBLIC constant

6530 10/12/2011 10:00 AM ben leinfelder

throw InvalidToken when the Session parameter is null for create()
https://redmine.dataone.org/issues/1850

6528 10/09/2011 02:50 PM Chris Jones

Once a CN calls replicate() on an MN, the MN needs to call getReplica() on the source MN (not get()). Once the bytes are retrieved, the MN must then call back to the CN with setReplicationStatus() to indicate that the replication status is complete. Modify MNodeService to do so.

6525 09/26/2011 10:59 PM ben leinfelder

set date uploaded and date system metadata updated date to current time when calling MN.create() and MN.update()

6522 09/26/2011 12:07 PM ben leinfelder

do not allow system metadata to have obsoletes or obsoletedBy fields when calling the create() method -- these are only allowed for updates so that we do not subvert object versioning by [un]knowingly submitting system metadata that directs one id to another.

6521 09/26/2011 11:59 AM ben leinfelder

set the originating member node on update()

6520 09/26/2011 11:53 AM ben leinfelder

set the originating member node on create()

6518 09/26/2011 11:10 AM ben leinfelder

set sysmeta submitter based on the subject given in the certificate

6512 09/23/2011 02:59 PM Matt Jones

Modified cron schedule to fix the incorrect crontab entry.

6511 09/23/2011 01:44 PM ben leinfelder

do not require ID reservation before create() or update()

6506 09/22/2011 03:30 PM ben leinfelder

check for null session before logging sync failed
https://redmine.dataone.org/issues/1798

6502 09/22/2011 02:01 PM ben leinfelder

correctly implement MN.describe
https://redmine.dataone.org/issues/1799

6496 09/22/2011 10:12 AM ben leinfelder

return null instead of throwing an exception when pid is not found in store

6495 09/22/2011 10:12 AM ben leinfelder

log errors on create() and registerSM

6492 09/22/2011 12:03 AM Matt Jones

Added subject field to getCapabilities() call.

6490 09/21/2011 05:45 PM ben leinfelder

comment out resynch() method until errors are resolved

6489 09/21/2011 05:25 PM ben leinfelder

use default hazelcast config when not configured to use an external one

6484 09/21/2011 04:58 PM Chris Jones

Don't use the hzNodes map yet (as a hazelcast client). Use D1Client instead to get the node list in isNodeAuthorized().

6483 09/21/2011 04:51 PM Chris Jones

For now, remove the hzClient code connecting to the DataONE process cluster to get the hzNodes map. This will be moved into the storage cluster, but use D1Client to get the node list for now.

6481 09/21/2011 10:54 AM rnahf

going back to using IDentifier as the key for the ObjectPAthMap.

6476 09/20/2011 10:20 PM Matt Jones

Fix getCapabilities to properly throw ServiceFailure when properties can not be read, rather than failing with a log message. Fix properties in the Node object to reflect their correct values. Set the sync schedule properly to default to 5 minute intervals. Improve documentation.

6475 09/20/2011 08:52 PM Matt Jones

Reformatted to correct indentation to make class readable.

6474 09/20/2011 02:32 PM ben leinfelder

newer d1 jars -- contains CN.isNodeAuthorized() method

6471 09/20/2011 02:08 PM Matt Jones

Reverting previous @Overrides chanrge from r6470, as that is the desired
behavior under Java 1.6 -- previous versions of Java (e.g., 1.5) will not
comile with this usage of the @Overrides annotation, but the currently
supported version will. So reverting to the 1.6 convention.

6470 09/20/2011 01:36 PM Matt Jones

Removing incorrect @Override annotations that were preventing compilation. The methods marked did not actually override a method in the superclass, so they were not compiling. I think @Overrides was being mistaken for methods that implement an interface but aren't actually in the superclass.

6468 09/20/2011 10:48 AM ben leinfelder

catch runtime exceptions that arise from hazelcast storage errors in the system metadata map

6467 09/20/2011 09:12 AM Chris Jones

Lock the system metadata entry in hzSystemMetadata when calling setReplicationPolicy().

6466 09/20/2011 09:10 AM Chris Jones

Lock the system metadata entry in hzSystemMetadata when calling registerSystemMetadata().

6465 09/20/2011 07:18 AM Chris Jones

Remove references to CNReplicationTask.

6464 09/20/2011 07:17 AM Chris Jones

Remove the CNReplicationTask (for now). We will be using Metacat's ForceReplicationHandler to replicate science metadata across CNs, and may explore the use of a 100% evicted hzScienceMetadata map. Either way, the distributed task design won't be needed. When a dropped CN comes back online, we'll catch it up based on last modified dates for PIDs in the hzSystemMetadata map.

6463 09/20/2011 07:12 AM Chris Jones

Change isNodeAuthorized() to query the hzSystemMetadata map rather than the hzPendingreplicationTasks map. The latter isn't needed for authorization since the ReplicationStatus for each Replica in SystemMetadata lists the status of the replica and can be queried.

6462 09/20/2011 06:42 AM Chris Jones

Add getNodesMap() to return the hzNodes map from the process cluster. Remove getPendingReplicationTasks since that structure is being removed. Add minor documentation.

6459 09/19/2011 03:26 PM ben leinfelder

lookup latest system metadata update date for use in synchronizing CN-CN when an offline nodes comes back online

6458 09/19/2011 12:17 PM rnahf

changed the key type from Identifier to String for ObjectPathMap. (need a Comparable key).

6457 09/19/2011 11:48 AM ben leinfelder

rework this to be MN->MN replication. Should be fleshed out more.

6456 09/19/2011 11:43 AM ben leinfelder

throw RuntimeExceptions when store() methods throw declared exceptions -- we want callers to put() to be alerted if there are errors.

6455 09/19/2011 10:18 AM ben leinfelder

move CNReplicationTask to the hazelcast package

6453 09/16/2011 05:04 PM ben leinfelder

implicit success for setting accessPolicy - trust that the MapStore persists the updated system metadata

6451 09/16/2011 04:42 PM ben leinfelder

check if system metadata exists rather than just the id mapping (before creating the entry)

6449 09/16/2011 03:23 PM ben leinfelder

only "save" to the shared system metadata map - not directly to the table store.

6447 09/16/2011 03:07 PM ben leinfelder

rely on Hazelcast to store the SystemMetadata locally for the node. Entry event listeners store the shared system metadata on their local node when alerted. TODO: remove old replication code that included system metadata xml when replicating scimeta and data

6446 09/16/2011 02:24 PM ben leinfelder

move bulk of the Hazelcast code into HazelcastService from CNodeService so that it is centrall located - easier to manage and configure