Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge vos2 feature branch #565

Merged
merged 255 commits into from
Apr 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
255 commits
Select commit Hold shift + click to select a range
d244f50
basic function of NodeDAO: put, get, update, delete
pdowler Apr 6, 2023
7156929
unit test code for postgresql array parsing
pdowler Apr 6, 2023
2cdd2de
incomplete node iterator
pdowler Apr 13, 2023
7905cc0
working node child iterator
pdowler Apr 14, 2023
283fb18
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Apr 19, 2023
d47e896
fix and test use of Node.parentID
pdowler Apr 19, 2023
59e86b1
vault: add init database, update README with additional config
pdowler Apr 21, 2023
34bfcd8
vault: implement more NodePersistenceImpl methods
pdowler Apr 21, 2023
8082aab
NodeDAO: remove assign parentID in put
pdowler Apr 21, 2023
87c68bb
cadc-inventory-db: nominally assign version as 0.15
pdowler Apr 21, 2023
41dc8dc
update TODO
pdowler Apr 21, 2023
0af5c9c
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Apr 27, 2023
89b0908
Merge pull request #502 from pdowler/vos2
pdowler Apr 27, 2023
2512aa3
vault: TODO updates
pdowler Apr 28, 2023
39f51ea
vault: update README
pdowler May 2, 2023
83381d9
add vault to repo README
pdowler May 2, 2023
c842e42
Merge pull request #503 from pdowler/vos2
pdowler May 2, 2023
c542400
update for Node API changes
pdowler May 31, 2023
4af6232
Merge pull request #511 from pdowler/vos2
pdowler May 31, 2023
c1e0240
vault: NodePersistenceImpl implements extracted interface
pdowler Jun 1, 2023
dc1e726
Checkpoint
Jun 16, 2023
805cea2
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Jun 29, 2023
6a8e354
vault: add cadc-registry link to README
pdowler Jun 29, 2023
8c892f7
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Jul 10, 2023
642c4b7
Merge branch 'master' into vos2
pdowler Jul 10, 2023
ebc861c
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Jul 10, 2023
5403a9a
cadc-inventory-db: node iterator bug fix
pdowler Jul 10, 2023
5092f91
typo
pdowler Jul 10, 2023
e1f47b5
Intermidiate commit
Jul 11, 2023
09e351f
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
Jul 11, 2023
a576479
cadc-inventory-db: improve txn close in catch to avoid leak
pdowler Jul 11, 2023
0478212
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
Jul 12, 2023
fa011e0
Fixed small issues
Jul 12, 2023
3fb9201
cadc-inventory-db: add connection.close() calls in NodeIterator to re…
pdowler Jul 12, 2023
ed3fa61
debug->info in test code
pdowler Jul 12, 2023
bf26dde
raven: limit cadc-inventory-db version to avoid cadc-vos-2.0 until re…
pdowler Jul 12, 2023
8099661
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
Jul 12, 2023
ce0898f
Re-factored the library
Jul 12, 2023
d310158
Merge pull request #522 from pdowler/vos2
pdowler Jul 12, 2023
5b4e272
Small fixes
Jul 13, 2023
1c885d7
Small fixes
Jul 13, 2023
a2c63e8
Renamed cadc-vos-server dependency
Jul 13, 2023
d364005
Fixed bug
Jul 13, 2023
8eef18b
Merge pull request #523 from andamian/CADC-12179
pdowler Aug 4, 2023
e6ca6ec
vault: added NodesTest integration test using cadc-test-vos-2.0
pdowler Aug 4, 2023
2b45eaa
vault: comment out unimplemented endpoints from capabilities
pdowler Aug 4, 2023
3efead8
vault: tweak root and trash node settings in NodePersistenceImpl
pdowler Aug 4, 2023
60651cb
vault: update dependencies
pdowler Aug 4, 2023
0531edc
vault: cleanup in NodePersistenceImpl
pdowler Aug 4, 2023
a79673b
move assign of owner and parent details to NodePersistenceImpl
pdowler Aug 8, 2023
4f455a8
vault: formatting
pdowler Aug 9, 2023
d4eab62
Merge pull request #525 from pdowler/vos2
pdowler Aug 10, 2023
679b3ee
cadc-inventory-db: adapt to ContainerNode api change
pdowler Aug 11, 2023
62645da
vault: quick hack fix for delete(Node) to allow repeated create/delet…
pdowler Aug 11, 2023
fcaa3d1
Merge pull request #526 from pdowler/vos2
pdowler Aug 15, 2023
8962bde
vault: fix imports
pdowler Aug 15, 2023
e59dde2
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Aug 15, 2023
f875645
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Aug 23, 2023
5544cc1
Merge pull request #530 from pdowler/vos2
pdowler Aug 23, 2023
0420a6b
vault: added indentity cache to child iterator
pdowler Aug 23, 2023
1c26961
vault: fix class cast issue with ident cache in iterator
pdowler Aug 23, 2023
e6ef466
Changed type of group sets in Node to GroupURI
Sep 6, 2023
c6dc837
Merge pull request #531 from andamian/CADC-12708
pdowler Sep 7, 2023
f68e859
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Sep 7, 2023
ddde9d9
cadc-inventory-db: fix NodeDAO.lock for subclass support
pdowler Sep 7, 2023
b3f51aa
vault: reject deletion of non-empty containers, perform delete action…
pdowler Sep 7, 2023
dc55e9a
Merge pull request #532 from pdowler/vos2
pdowler Sep 8, 2023
2911e7b
vault-quota: README and design doc
pdowler Sep 8, 2023
39df738
Merge pull request #533 from pdowler/vos2
pdowler Sep 8, 2023
e15cbd0
Update Design.md
pdowler Sep 11, 2023
07d759f
Update Design.md
pdowler Sep 11, 2023
5336389
vault-quota: update design doc with some validate ideas
pdowler Sep 12, 2023
1f2a51b
Merge pull request #534 from pdowler/vos2
pdowler Sep 12, 2023
dec5ed8
Support for recursive deletes
Oct 6, 2023
ec7120a
Support for recursive deletes
Oct 6, 2023
e578637
Support for permissions testing
Oct 10, 2023
eed7742
Checkstyle fixes
Oct 10, 2023
71a5002
Moved recursive delete functionality in library
Oct 14, 2023
3c0c00e
Rename the vault auth group and cert file in int tests
Oct 16, 2023
8baeee3
Re-work after code review
Oct 17, 2023
f33274b
Merge pull request #539 from andamian/CADC-12729
pdowler Oct 26, 2023
e15cdb4
Merge branch 'vos2' into CADC-12558
pdowler Oct 26, 2023
f028e45
Merge pull request #538 from andamian/CADC-12558
pdowler Oct 26, 2023
9463d1a
merge and tweak
pdowler Oct 26, 2023
353ba22
vault: tweaks for upstream changes
pdowler Oct 26, 2023
a02ded8
Merge pull request #540 from pdowler/vos2
pdowler Oct 26, 2023
6e982e7
vault: add props to immutable props list
pdowler Oct 26, 2023
9b5c2f8
Merge pull request #541 from pdowler/vos2
pdowler Oct 26, 2023
17fd2aa
Support for recursive props
Nov 8, 2023
0dab0cb
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Nov 24, 2023
6b1d4d5
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Nov 24, 2023
82de71b
vault: added code to restrict to local groups only, currently disabled
pdowler Nov 28, 2023
976d699
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Dec 8, 2023
f1d4a63
Small updates
Dec 11, 2023
0debf14
Updated dependencies
Dec 11, 2023
f858aca
Rework after code review
Dec 11, 2023
fc2c7ab
Merge pull request #543 from andamian/CADC-12562
pdowler Dec 11, 2023
4b3e284
move transfer negotiation code from raven to cadc-inventory-server
pdowler Dec 11, 2023
7cf6750
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Dec 11, 2023
234c073
moved storage site availability check to library
pdowler Dec 11, 2023
ff50827
cadc-inventory-db: add KeyPairDAO
pdowler Dec 11, 2023
a66a21d
vault: uws subpackage
pdowler Dec 12, 2023
1db9f37
ProtocolsGenerator ctor change
pdowler Dec 12, 2023
fed6c9b
change ProtocolsGenerator API
pdowler Dec 12, 2023
0f194e8
cadc-inventory-db: rename KeyPair to PreauthKeyPair
pdowler Dec 13, 2023
ff3281f
rename some sql files
pdowler Dec 13, 2023
595fda8
checkstyle fix
pdowler Dec 13, 2023
c9a37cc
ProtocolsGenerator ctor change and public members to denote optional …
pdowler Dec 13, 2023
5bb8441
vault: lib changes, keygen, transfer progress
pdowler Dec 13, 2023
540ccdb
oops: add new files
pdowler Dec 13, 2023
34ea368
Merge branch 'master' of https://github.com/opencadc/storage-inventor…
pdowler Dec 14, 2023
a8bc98f
Intial version
Dec 14, 2023
7139143
Small update
Dec 14, 2023
2775f23
tweak ProtocolsGenerator to work in a storage site db (storageLocatio…
pdowler Dec 14, 2023
8328264
wteak vault transfer code for unstored data note
pdowler Dec 14, 2023
53bb955
minoc: re-org config and add initial trusted service key handling, st…
pdowler Dec 14, 2023
19f09f8
Re-work after code review
Dec 14, 2023
0d811ea
Fixed typo
Dec 14, 2023
a848fd3
Merge pull request #546 from andamian/CADC-12946
pdowler Dec 15, 2023
8eb72c7
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Dec 15, 2023
b261935
move getKeyAction from vault to cadc-inventory-server
pdowler Dec 15, 2023
7e87b28
add reg logging to minoc
pdowler Dec 15, 2023
23a5a97
warn to debug in lib
pdowler Dec 16, 2023
54abbbb
integrate and test magic key pair code
pdowler Dec 16, 2023
8110acc
raven: add an admin pool that can init the inventory db and store pre…
pdowler Dec 18, 2023
6f7ba0c
vault: made preventNotFound configurable
pdowler Dec 18, 2023
b810036
vault-specific dbrc entry for test setup
pdowler Dec 18, 2023
2f40969
rework to correctly setup recoverableNamespace config
pdowler Dec 18, 2023
c61721d
Merge pull request #547 from pdowler/vos2
pdowler Dec 19, 2023
243ba7e
added NodeDAO(boolean origin) ctor
pdowler Dec 21, 2023
17587ca
vault: fix date related node properties
pdowler Jan 12, 2024
c890930
Merge pull request #548 from pdowler/vos2
pdowler Jan 15, 2024
6270d40
bug fix for immutable property handling
pdowler Jan 15, 2024
e0d980f
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Jan 15, 2024
d6e9d12
vault :supress unchecked cast warning
pdowler Jan 16, 2024
240fff8
Merge pull request #549 from pdowler/vos2
pdowler Jan 16, 2024
8ffe5e1
vault: add support for separate nodes and inventory pools
pdowler Jan 18, 2024
84120f0
log.warn -> debug
pdowler Jan 18, 2024
5229b10
bug fix: add explicit config map for PreauthKeyPairDAO
pdowler Jan 18, 2024
2f4d36d
minor cleanup in VaultInitAction
pdowler Jan 19, 2024
179ff9a
raven: made preauth key usage optional
pdowler Jan 22, 2024
61146cc
fix for disabled preauth key use
pdowler Jan 22, 2024
c645b73
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
pdowler Jan 22, 2024
e6c9593
Merge pull request #550 from pdowler/vos2
pdowler Jan 23, 2024
07380e1
minoc: support for filename override in the URL path using colon sepa…
pdowler Jan 23, 2024
ca5b220
vault: fix pubkey stored in JNDI; provide filename override to url gen
pdowler Jan 24, 2024
e46663b
cadc-inventory-server allow filename override for pullFromVoSpace
pdowler Jan 24, 2024
9e1f725
minoc: made filename override only work in head/get
pdowler Jan 25, 2024
4c59a88
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
pdowler Jan 25, 2024
c3e515d
make ProtocolsGenerator filter sites and log consistently
pdowler Jan 26, 2024
cdada9a
minoc: use trust preauth config when determining readable and writable
pdowler Jan 26, 2024
afe0eec
vault: adapt to PathResolver changes; fix dao config usage
pdowler Jan 26, 2024
fe6c2c7
update vault README
pdowler Jan 26, 2024
4b17635
Merge pull request #551 from pdowler/vos2
pdowler Jan 26, 2024
ab0972f
ban colon (:) in artifact uri path components
pdowler Feb 2, 2024
1c8b94a
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
pdowler Feb 2, 2024
d13dfde
tweaks to vault-quota/Design
pdowler Feb 2, 2024
2fae9d0
Merge pull request #552 from pdowler/vos2
pdowler Feb 2, 2024
0a5345d
cadc-inventory-0.10.0
pdowler Feb 2, 2024
71664dc
Merge pull request #553 from pdowler/vos2
pdowler Feb 2, 2024
fa98d3c
Added the files end point
Feb 5, 2024
3fc90a6
Ready for code review
Feb 9, 2024
701e01f
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
Feb 9, 2024
cf1f6f4
Skipped incomplete test
Feb 9, 2024
268b55c
Changes after code review
Feb 12, 2024
62c5b19
fix cadc-test-vos dependency
pdowler Feb 12, 2024
c5a468a
Merge pull request #554 from andamian/CADC-12561
pdowler Feb 12, 2024
6795629
merge
pdowler Feb 12, 2024
adbc699
Required changes to make production vostools work
Feb 13, 2024
5495a66
Reworked
Feb 13, 2024
45a5f76
Merge pull request #555 from andamian/regression
pdowler Feb 13, 2024
ab6c940
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Feb 13, 2024
fe4a210
adapt base Entity for library ctor changes
pdowler Feb 14, 2024
2f39d9e
cadc-inventory-db: add instanceID to HarvestState
pdowler Feb 16, 2024
ef87e13
luskan: use the DelegatingStorageManager
pdowler Feb 16, 2024
438284e
minoc: adapt to db refactoring
pdowler Feb 16, 2024
8227999
raven: fix content-dispisition header, adapt to db refactoring
pdowler Feb 16, 2024
460269e
vault: adapt to db refactoring
pdowler Feb 16, 2024
70ecf9a
made genSchema required because it is needed for correct init
pdowler Feb 16, 2024
e990724
fenwick, ratik: adapt to refactoring in cadc-inventory-db
pdowler Feb 16, 2024
fb484a6
cadc-inventory-server: remove unused InitDatabaseAction
pdowler Feb 16, 2024
1b692bc
critwall: adapt to cadc-inventory-db refactoring
pdowler Feb 16, 2024
f197591
tantar: update for cadc-inventory-db refactoring
pdowler Feb 16, 2024
bd7e186
ringhold: update for cadc-inventory-db refactoring
pdowler Feb 16, 2024
479b0b7
update vault-quota/Design
pdowler Feb 19, 2024
76d975d
add missing dao config for minoc int test
pdowler Feb 22, 2024
ddd87e0
raven: restore test db config
pdowler Feb 22, 2024
86c5079
vault: fix for test dao setup
pdowler Feb 23, 2024
ba76c2f
update vault-quota/Design details
pdowler Feb 23, 2024
93b0860
cadc-inventory-db: updates to support node size metadata and workflow
pdowler Feb 23, 2024
4bad11d
add vospace upgrade file
pdowler Feb 23, 2024
94d395e
add comment to inventory upgrade script
pdowler Feb 26, 2024
7ab48e3
remove unused changes in StorageSite
pdowler Feb 26, 2024
3081552
Merge pull request #556 from pdowler/vos2
pdowler Feb 26, 2024
0f65ab9
Merge branch 'vos2x' into vos2
pdowler Feb 27, 2024
b68b237
update dependencies
pdowler Feb 27, 2024
44a1c29
vault: transfer generator bug, API doc fix
pdowler Feb 27, 2024
3cd0dfd
updates to vault-quota design
pdowler Feb 28, 2024
5c2dcc0
vault bytesUsed rework
pdowler Mar 4, 2024
2e4b8d6
vault: add allocationParent support
pdowler Mar 5, 2024
2cec055
remove duplicate column from Node table sql
pdowler Mar 8, 2024
91868b3
Initial version
Mar 9, 2024
4bd306e
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
Mar 9, 2024
3fed596
Updated after pulling upstream updates
Mar 9, 2024
2387d3a
vault: ArtifactSync init
pdowler Mar 12, 2024
d1cade9
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
pdowler Mar 12, 2024
6c2ff85
always close() connections in iterator.close()
pdowler Mar 12, 2024
3c1602e
Merge branch 'vos2' of https://github.com/pdowler/storage-inventory i…
pdowler Mar 12, 2024
7548471
vault: fix availability check dao config for singlePool=false
pdowler Mar 12, 2024
353d8f4
vault-quota: update design docs
pdowler Mar 13, 2024
819d68f
rework
pdowler Mar 13, 2024
22718c8
rework: remove unused imports
pdowler Mar 13, 2024
347773c
Merge pull request #557 from pdowler/vos2
pdowler Mar 13, 2024
4273146
vault: pull doc improvements from PR-558
pdowler Mar 13, 2024
bc2a19d
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
pdowler Mar 13, 2024
e0ce694
Merge pull request #560 from pdowler/vos2
pdowler Mar 13, 2024
022ae46
Merge branch 'vos2' of https://github.com/opencadc/storage-inventory …
Mar 13, 2024
4dde678
Initial version
Mar 14, 2024
43f98bd
Rework after code review
Mar 14, 2024
742bc6b
Merge pull request #561 from andamian/CADC-13214
pdowler Mar 18, 2024
6a62b1c
moved ArtifactSyncWorker to vospace pkg
pdowler Mar 18, 2024
5f374cc
vospace.Node.sql: explicit text array to match code usage
pdowler Mar 18, 2024
1853e77
Merge pull request #562 from pdowler/vos2
pdowler Mar 18, 2024
6dd4bb1
vault: integrate ArtifactSyncWorker
pdowler Mar 18, 2024
5276e40
vault: update DataNode.bytesUsed from artifact in get
pdowler Mar 18, 2024
e284c6e
vault: enable availability modes to disable and enable background Art…
pdowler Mar 19, 2024
ea52a02
update VERSIONs for service images and add change log
pdowler Mar 19, 2024
ba3bd5c
update image versions
pdowler Mar 20, 2024
3ca9577
cadc-inventory and cadc-inventory-db versions 1.0.0
pdowler Mar 20, 2024
8a72987
update cadc-inventory lib dependencies for 1.0 milestone
pdowler Mar 20, 2024
d762437
rename ArtifactSync to DataNodeSizeSync for clarity
pdowler Mar 20, 2024
5bb6d74
fix open connection leak in HarvestStateDAO table maintenance code
pdowler Mar 25, 2024
209a95e
import cleanup
pdowler Mar 25, 2024
af92038
temporarily remove ringhold from CI
pdowler Mar 25, 2024
f737dee
vault code cleanup
pdowler Mar 25, 2024
c2c650b
DataNodeSizeSync logging in machine readable format
pdowler Mar 25, 2024
0c4c36e
vault: machine-readable logging in DataNodeSizeSync
pdowler Mar 25, 2024
7aa2a80
CADC-13234 update ringhold README for new config properties
jburke-cadc Mar 26, 2024
f6bb379
CADC-13234 update README after review
jburke-cadc Mar 26, 2024
419ef83
vault: cleanup and doc update
pdowler Mar 26, 2024
15b86dd
vault: improve server header info for files endpoint
pdowler Mar 28, 2024
b53037b
CADC-13234 update ringhold to query with configured namespace and uri…
jburke-cadc Mar 28, 2024
8c91699
rework after review
pdowler Apr 2, 2024
adbadf2
CADC-13234 checkstyle fix
jburke-cadc Apr 2, 2024
4780012
remaining SI image version to 1.0.0
pdowler Apr 2, 2024
bf7c302
Merge pull request #563 from pdowler/vos2
pdowler Apr 3, 2024
0748e9a
Merge branch 'vos2' into CADC-13234
pdowler Apr 3, 2024
593bb1e
CADC-13234 restore ringhold in github build
jburke-cadc Apr 3, 2024
a0f5f27
CADC-13234 fix github build formatting
jburke-cadc Apr 3, 2024
1cf7ea5
Merge pull request #564 from jburke-cadc/CADC-13234
pdowler Apr 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 3 additions & 12 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,19 +66,10 @@ jobs:

- name: java build -- raven
run: cd raven && ../gradlew --info clean build javadoc checkstyleMain

- name: java build -- ringhold
run: cd ringhold && ../gradlew --info clean build javadoc checkstyleMain

- name: java build -- ratik
run: cd ratik && ../gradlew --info clean build javadoc checkstyleMain

## TODO: docker build depends on cadc-tomcat base image from docker-base.git
# - name: docker build -- baldur
# run: cd baldur && docker build . --file Dockerfile --tag baldur:$(date +%s)
# - name: docker build -- minoc
# run: cd minoc && docker build . --file Dockerfile --tag minoc:$(date +%s)
# - name: docker build -- luskan
# run: cd luskan && docker build . --file Dockerfile --tag luskan:$(date +%s)
# - name: docker build -- raven
# run: cd raven && docker build . --file Dockerfile --tag raven:$(date +%s)
- name: java build -- ringhold
run: cd ringhold && ../gradlew --info clean build javadoc checkstyleMain

70 changes: 70 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Change Log

This is a cursory summary of changes to various storage-inventory components.
Check the README in specific modules for details.

## minoc:1.0.0
```
added optional `org.opencadc.minoc.trust.preauth` config
removed optional `org.opencadc.minoc.publicKeyFile` config
```
A `minoc` instance will download a public key from each trusted service and
use the public key(s) to validate URLs that include a _preauth_ token.

```
added optional `org.opencadc.minoc.readable` and `org.opencadc.minoc.writable` config
```
A `minoc` service will advertise (via inventory.StorageSite record in the database) the
_readable_ and _writable_ status; this information is synced to global inventory and
used by `raven` to determine if it should generate PUT or GET URLs that use the `minoc`
service(s) at that site. The configuration of _readGrantProvider_(s) and
_writeGrantProvider_(s) implicitly determines the status (_readable_ and _writable_
respectively); configuration of any _trust.preauth_ will also implicitly make make the
status _readable_ and _writable_.

The explicit _readable_ and _writable_ configuration options will override the above
implicit logic and set the status accordingly. This is currently optional but may be required
in a future version.

```
added optional config file: cadc-log.properties
added optional config file: cadc-vosi.properties
```

## raven:1.0.0
```
added org.opencadc.raven.inventory connection pool
```
A `raven` service uses this pool to perform database initialization. This pool is
configured in the `catalina.properties` file.

```
added optional `org.opencadc.raven.keys.preauth` config
removed optional `org.opencadc.raven.publicKeyFile` and `org.opencadc.minoc.privateKeyFile` config
```
When configured to do so, a `raven` service will generate it's own public/private key pair
and use the private key to _sign_ `minoc` URLs. All the `minoc` services known to the global
`raven` service must also be configured to _trust_ `raven`.

```
added optional config file: cadc-log.properties
added optional config file: cadc-vosi.properties
```

## luskan:1.0.0
```
changed config file: cadc-tap-tmp.properties
```
A `luskan` service now uses the DelegatingStorageManager` so this config file must
specify which storage manager implementation to use along with existing
implementation-specific configuration options.

```
added optional config file: cadc-log.properties
added optional config file: cadc-vosi.properties
```

## vault:0.5.0 (NEW)
This is a new service that implements the IVOA VOSpace 2.1 REST API to provide user-managed
hierarchical storage. `vault` is deployed with it's own database and an associated inventory
database, uses inventory services (`minoc`) for file storage and management.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ local artifact selection policy. This is used if the new fenwick policy excludes
This is an implementation of the **file-validate** process that compares the inventory database against
the back end storage at a storage site.

## vault
UNDER DEVELOPMENT: This is an implementation of an <a href="https://www.ivoa.net/documents/TAP/">IVOA VOSpace</a>
service that uses storage-inventory as the back end storage mechanism.

## cadc-*
These are libraries used in multiple services and applications.

Expand Down
3 changes: 3 additions & 0 deletions baldur/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ When more than one entry matches an artifact URI, the grants are combined as fol
* the members of any of the groups in all matching readOnlyGroup lists are allowed to read
* the members of any of the groups in all matching readWriteGroup lists are allowed to read and write

### cadc-log.properties (optional)
See <a href="https://github.com/opencadc/core/tree/master/cadc-log">cadc-log</a> for common
dynamic logging control.

## integration testing

Expand Down
8 changes: 5 additions & 3 deletions cadc-inventory-db/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,18 @@ sourceCompatibility = 1.8

group = 'org.opencadc'

version = '0.14.6'
version = '1.0.0'

description = 'OpenCADC Storage Inventory database library'
def git_url = 'https://github.com/opencadc/storage-inventory'

mainClassName = 'org.opencadc.inventory.db.version.Main'

dependencies {
compile 'org.opencadc:cadc-util:[1.9.5,2.0)'
compile 'org.opencadc:cadc-inventory:[0.9.4,)'
compile 'org.opencadc:cadc-util:[1.11.0,2.0)'
compile 'org.opencadc:cadc-gms:[1.0.0,)'
compile 'org.opencadc:cadc-inventory:[1.0.0,)'
compile 'org.opencadc:cadc-vos:[2.0.6,3.0)'

testCompile 'junit:junit:[4.0,)'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,10 +94,11 @@
import org.junit.Test;
import org.opencadc.inventory.Artifact;
import org.opencadc.inventory.InventoryUtil;
import org.opencadc.inventory.Namespace;
import org.opencadc.inventory.SiteLocation;
import org.opencadc.inventory.StorageLocation;
import org.opencadc.inventory.StoredArtifactComparator;
import org.opencadc.inventory.db.version.InitDatabase;
import org.opencadc.inventory.db.version.InitDatabaseSI;

/**
*
Expand Down Expand Up @@ -126,22 +127,23 @@ public ArtifactDAOTest() throws Exception {
config.put(SQLGenerator.class.getName(), SQLGenerator.class);
config.put("jndiDataSourceName", "jdbc/ArtifactDAOTest");
config.put("database", TestUtil.DATABASE);
config.put("schema", TestUtil.SCHEMA);

config.put("invSchema", TestUtil.SCHEMA);
config.put("genSchema", TestUtil.SCHEMA);

originDAO = new ArtifactDAO();
originDAO.setConfig(config);

nonOriginDAO = new ArtifactDAO(false);
nonOriginDAO.setConfig(config);

DBUtil.createJNDIDataSource("jdbc/ArtifactDAOTest-alt", cc);
Map<String,Object> altConfig = new TreeMap<String,Object>();
altConfig.put(SQLGenerator.class.getName(), SQLGenerator.class);
altConfig.put("jndiDataSourceName", "jdbc/ArtifactDAOTest-alt");
altConfig.put("database", TestUtil.DATABASE);
altConfig.put("schema", TestUtil.SCHEMA);
altConfig.put("invSchema", TestUtil.SCHEMA);
altConfig.put("genSchema", TestUtil.SCHEMA);
altDAO.setConfig(altConfig);

} catch (Exception ex) {
log.error("setup failed", ex);
throw ex;
Expand All @@ -151,7 +153,7 @@ public ArtifactDAOTest() throws Exception {
@Before
public void init_cleanup() throws Exception {
log.info("init database...");
InitDatabase init = new InitDatabase(originDAO.getDataSource(), TestUtil.DATABASE, TestUtil.SCHEMA);
InitDatabaseSI init = new InitDatabaseSI(originDAO.getDataSource(), TestUtil.DATABASE, TestUtil.SCHEMA);
init.doInit();
log.info("init database... OK");

Expand Down Expand Up @@ -954,6 +956,9 @@ public void testIteratorClose() {
public void testArtifactIterator() {
int num = 10;
try {
final Date startDate = new Date();
Thread.sleep(10L);

int numArtifacts = 0;
int numStuffExpected = 0;
// artifacts with storageLocation
Expand All @@ -976,6 +981,7 @@ public void testArtifactIterator() {
numStuffExpected++;
}
}

// some artifacts with no storageLocation
collection = "STUFF";
for (int i = num; i < 2 * num; i++) {
Expand All @@ -995,6 +1001,12 @@ public void testArtifactIterator() {
numStuffExpected++;
}
}

Thread.sleep(10L);
final Date midDate = new Date();
Thread.sleep(10L);
final int midNumStuff = numStuffExpected;

// some artifacts with siteLocations
UUID siteID = UUID.randomUUID();
int numSiteExpected = 0;
Expand All @@ -1017,6 +1029,8 @@ public void testArtifactIterator() {
numStuffExpected++;
}
}
Thread.sleep(10L);
final Date endDate = new Date();
log.info("added: " + numArtifacts);

log.info("count all...");
Expand All @@ -1031,13 +1045,14 @@ public void testArtifactIterator() {
Assert.assertEquals("count", numArtifacts, count);

log.info("count with criteria...");
final Namespace ns = new Namespace("cadc:STUFF/");
count = 0;
try (ResourceIterator<Artifact> iter = originDAO.iterator("uri like 'cadc:STUFF/%'", null, false)) {
try (ResourceIterator<Artifact> iter = originDAO.iterator(ns, null, false)) {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getURI());
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith("cadc:STUFF/"));
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith(ns.getNamespace()));
}
}
Assert.assertEquals("count", numStuffExpected, count);
Expand All @@ -1064,7 +1079,8 @@ public void testArtifactIterator() {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getURI());
log.info("found: " + actual.getBucket() + " " + actual.getURI());
Assert.assertTrue(actual.getBucket().startsWith(bpre));
}
}
}
Expand All @@ -1074,18 +1090,56 @@ public void testArtifactIterator() {
count = 0;
for (byte b = 0; b < 16; b++) {
String bpre = HexUtil.toHex(b).substring(1);
log.debug("bucket prefix: " + bpre);
try (ResourceIterator<Artifact> iter = originDAO.iterator("uri like 'cadc:STUFF/%'", bpre, false)) {
log.info("bucket prefix: " + bpre);
try (ResourceIterator<Artifact> iter = originDAO.iterator(ns, bpre, false)) {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getURI());
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith("cadc:STUFF/"));
log.info("found: " + actual.getBucket() + " " + actual.getURI());
Assert.assertTrue(actual.getBucket().startsWith(bpre));
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith(ns.getNamespace()));
}
}
}
Assert.assertEquals("count", numStuffExpected, count);

log.info("count vs Namespace incremental from start...");
DateFormat df = DateUtil.getDateFormat(DateUtil.IVOA_DATE_FORMAT, DateUtil.UTC);
count = 0;
try (ResourceIterator<Artifact> iter = originDAO.iterator(ns, null, startDate, true)) {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getBucket() + " " + actual.getURI() + " " + df.format(actual.getContentLastModified()));
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith(ns.getNamespace()));
}
}
Assert.assertEquals("count", numStuffExpected, count);

log.info("count vs Namespace incremental from mid...");
count = 0;
try (ResourceIterator<Artifact> iter = originDAO.iterator(ns, null, midDate, true)) {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getBucket() + " " + actual.getURI() + " " + df.format(actual.getContentLastModified()));
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith(ns.getNamespace()));
}
}
Assert.assertEquals("count", midNumStuff, count);

log.info("count vs Namespace incremental from end...");
count = 0;
try (ResourceIterator<Artifact> iter = originDAO.iterator(ns, null, endDate, true)) {
while (iter.hasNext()) {
Artifact actual = iter.next();
count++;
log.info("found: " + actual.getBucket() + " " + actual.getURI() + " " + df.format(actual.getContentLastModified()));
Assert.assertTrue("STUFF", actual.getURI().toASCIIString().startsWith(ns.getNamespace()));
}
}
Assert.assertEquals("count", 0, count);

} catch (Exception unexpected) {
log.error("unexpected exception", unexpected);
Assert.fail("unexpected exception: " + unexpected);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
import org.opencadc.inventory.DeletedStorageLocationEvent;
import org.opencadc.inventory.InventoryUtil;
import org.opencadc.inventory.StorageLocationEvent;
import org.opencadc.inventory.db.version.InitDatabase;
import org.opencadc.inventory.db.version.InitDatabaseSI;

/**
*
Expand All @@ -106,25 +106,31 @@ public class EntityEventDAOTest {
StorageLocationEventDAO slDAO = new StorageLocationEventDAO();

public EntityEventDAOTest() throws Exception {
DBConfig dbrc = new DBConfig();
ConnectionConfig cc = dbrc.getConnectionConfig(TestUtil.SERVER, TestUtil.DATABASE);
DBUtil.createJNDIDataSource("jdbc/EntityEventDAOTest", cc);

Map<String,Object> config = new TreeMap<String,Object>();
config.put(SQLGenerator.class.getName(), SQLGenerator.class);
config.put("jndiDataSourceName", "jdbc/EntityEventDAOTest");
config.put("database", TestUtil.DATABASE);
config.put("schema", TestUtil.SCHEMA);
daeDAO.setConfig(config);
dslDAO.setConfig(config);
slDAO.setConfig(config);
try {
DBConfig dbrc = new DBConfig();
ConnectionConfig cc = dbrc.getConnectionConfig(TestUtil.SERVER, TestUtil.DATABASE);
DBUtil.createJNDIDataSource("jdbc/EntityEventDAOTest", cc);

Map<String,Object> config = new TreeMap<String,Object>();
config.put(SQLGenerator.class.getName(), SQLGenerator.class);
config.put("jndiDataSourceName", "jdbc/EntityEventDAOTest");
config.put("database", TestUtil.DATABASE);
config.put("invSchema", TestUtil.SCHEMA);
config.put("genSchema", TestUtil.SCHEMA);
daeDAO.setConfig(config);
dslDAO.setConfig(config);
slDAO.setConfig(config);
} catch (Exception ex) {
log.error("setup failed", ex);
throw ex;
}
}

@Before
public void setup()
throws Exception {
log.info("init database...");
InitDatabase init = new InitDatabase(daeDAO.getDataSource(), TestUtil.DATABASE, TestUtil.SCHEMA);
InitDatabaseSI init = new InitDatabaseSI(daeDAO.getDataSource(), TestUtil.DATABASE, TestUtil.SCHEMA);
init.doInit();
log.info("init database... OK");

Expand Down
Loading
Loading