Project

General

Profile

Statistics
| Revision:

metacat / src / edu / ucsb / nceas / metacat @ 6570

# Date Author Comment
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.

6562 10/28/2011 01:16 PM ben leinfelder

include clearer error message when UPDATE action is requested on a replicated document and we fail to successfully get a lock from the source Metacat server
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4907

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

move the DataONE 1.0.0-SNAPSHOT

6560 10/27/2011 04:33 PM ben leinfelder

correctly check for missing config values during geoserver configuration

6557 10/27/2011 03:59 PM ben leinfelder

correctly check for missing config values during geoserver configuration

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.

6551 10/27/2011 01:00 PM ben leinfelder

use logging, not system.out

6550 10/27/2011 12:40 PM ben leinfelder

change upgrade scripts/routines to use 2.0.0 version number instead of 1.10.0

6549 10/27/2011 11:35 AM ben leinfelder

make sure we close the prepared statement always

6548 10/27/2011 11:17 AM Chris Jones

The incoming source node param is just a string, not XML, so don't attempt to deserialize it. Rather, just make a new NodeReference object and set it's value to the value of the incoming param.

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

add User-Agent logging to support D1 requirements

6541 10/20/2011 12:40 PM ben leinfelder

remove old RestServlet handler -- not used now

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

Add debugging output to MNodeService.

6539 10/14/2011 05:49 PM ben leinfelder

use default fmtid if we can't find the user-supplied data mime type in our list

6538 10/14/2011 05:13 PM ben leinfelder

including newer d1 libclient that uses Foresite (and Jena) to construct/parse ORE resource maps for DataONE

6536 10/14/2011 02:57 PM ben leinfelder

delete the xml access rules by either docid or guid to make sure we have the most up to date information

6535 10/14/2011 10:45 AM Chris Jones

Fix a data-typing issue when pulling replicationAllowed from postgres. Use getBoolean(), not getString().

6534 10/13/2011 05:13 PM ben leinfelder

cleaned up to use for populating a DataONE MN using the D1 api. Retrieves packages from a Metacat and generates system metadata for them before calling MN.create() for both data and metadata.
NOTE: you need a client certificate that the target server accepts (either DataONE-generated for testing or a CILogon one for more official use). I was only able to get the former certificate type to work with our existing MN servers

6533 10/12/2011 07:19 PM Chris Jones

IdentifierManager.getSystemMetadata() was missing the number_replicas and replication_allowed fields when building a ReplicationPolicy section of a SystemMetadata document being returned. Add in these two attributes.

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

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

6531 10/12/2011 11:08 AM ben leinfelder

include SystemMetadata when replicating data and metadata documents -- this allows us to establish the guid-to-docid mapping that is crucial for being able to read the replicated document by guid (d1 api)

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.

6527 09/29/2011 11:43 PM Matt Jones

Bug fix for access control rules coming in from the dataone system metadata. Previously, the code used getLocalId() to get the docid to insert into the XML access table, but that docid included the revision number (e.g., foo.1.1), which it shouldn't. Now use the AccessionNumber class to strip off the rev to get a real docid for insertion into the table.

6526 09/28/2011 07:28 PM ben leinfelder

allow the XML namespace to be given in both double and single quotes. The regex pattern was only looking for xmlns values that were in double quotes. This was brought to light by LTER:
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5497

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()

6519 09/26/2011 11:52 AM ben leinfelder

-use whatever object format id is stored in the DB
-only set originating node and authoritative node if we have non-null values for them

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

set sysmeta submitter based on the subject given in the certificate

6516 09/26/2011 09:42 AM ben leinfelder

skip Objects that have null format ids are invalid checksums

6515 09/23/2011 10:18 PM ben leinfelder

MN.setAccess() is a PUT

6514 09/23/2011 09:54 PM ben leinfelder

correctly handle incoming "accessPolicy" parameters for the setAccess() method

6513 09/23/2011 08:46 PM ben leinfelder

swap the parameters for update: existing pid should be first, and then newPid

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()

6510 09/23/2011 01:39 PM ben leinfelder

use "action" parameter instead of "permission"

6509 09/23/2011 01:38 PM ben leinfelder

use "action" parameter instead of "permission"

6508 09/22/2011 03:57 PM ben leinfelder

catch datapackage parsing errors as before

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

include checksum algorithm when setting describe
https://redmine.dataone.org/issues/1799

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

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

6503 09/22/2011 02:02 PM ben leinfelder

use Settings augmentation to customize the D1Client.CN_URL when used in a Metacat deployment.

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

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

6501 09/22/2011 01:40 PM ben leinfelder

return Node not NodeList for getCapabilities
https://redmine.dataone.org/issues/1800

6500 09/22/2011 01:32 PM Matt Jones

Use setProperty() instead of addProperty() to properly override the Settings property.

6499 09/22/2011 01:19 PM Matt Jones

Modify to set the CN URL before getting a CN instance.

6497 09/22/2011 10:55 AM Matt Jones

Pull the certificate path for dataone certificates from the metacat properties file.

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

6494 09/22/2011 10:11 AM ben leinfelder

more stringent NP checking when saving replication policy

6493 09/22/2011 12:05 AM Matt Jones

Register as a MN on the DataONE network as part of the properties setup. This is currently done always, but it needs to be conditional rather than automatically triggered.

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

6472 09/20/2011 02:11 PM ben leinfelder

collect "message" param from multipart request for MN.synchronizationFailed 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.

6469 09/20/2011 11:55 AM ben leinfelder

use d1_common_java's date serialization utility for parsing parameters

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

6454 09/16/2011 05:05 PM ben leinfelder

do not throw exception when checking for system metadata - boolean return is good.
use ReplicationStatus.valueOf() instead of convert()

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)

6450 09/16/2011 04:01 PM ben leinfelder

treat access rules atomically - do not group them together otherwise the intent is subverted

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

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

6448 09/16/2011 03:17 PM ben leinfelder

do not send <systemMetadata> with the <docInfo> replication information - this is handled by the Hazelcast shared map

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

6445 09/16/2011 01:13 PM ben leinfelder

verify that the sysmeta checksum value matches the computed checksum value when calling create()
https://redmine.dataone.org/issues/1795

6444 09/16/2011 01:08 PM ben leinfelder

include sysmeta for uploaded BIN data that comes through the legacy Metacat servlet API

6443 09/16/2011 10:51 AM ben leinfelder

check for null pointers when adding system metadata/creating records during cn.create()

6442 09/16/2011 10:42 AM rnahf

removing unneeded class (never used)

6440 09/15/2011 01:46 PM rnahf

cleaned up mock tests on hzObjectPathMap. split out code for mocking a datastore into MockObjectPathMap.

6437 09/15/2011 12:57 PM ben leinfelder

initialize Hazelcast from the custom configuration when initializing the Metacat service.

6435 09/15/2011 10:40 AM ben leinfelder

handle entryAdded and entryUpdated the same - update the entry if it exists, otherwise create it

6434 09/15/2011 10:38 AM ben leinfelder

handle entryAdded (to hzSystemMetadata) to store sysmeta to local store when it is not already present

6433 09/15/2011 10:37 AM ben leinfelder

make isScienceMetadata() method public/static to be called throughout Metacat

6432 09/15/2011 10:01 AM ben leinfelder

only create ObjectFormatId when we actually have the parameter (downstream we rely on it being null or not when constructing the query)