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

Updated int test README file #154

Open
wants to merge 8 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
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
81 changes: 81 additions & 0 deletions argus/src/intTest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,84 @@ for a CADC staff member to run. Required certificates:
The _auth_ identity has to be the (CADC) staff member's personal certificate because the test tries to output
to `vos://cadc.nrc.ca~vault/{user.name}/test/some-file-name`. The _noauth_ identity should be cadcregtest1.

An example of a minimum configuration required for the `argus` service to run on a local machine consists of the
following containers:
- `haproxy` (image: `cadc-haproxy-dev`) - for https termination
- `postgress` (`cadc-postgresql-dev`) - database container
- `reg` (`reg`) - local registry entries
- `icewind` (`icewind`) - to create the `caom2` schema and tables
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

technically, one can use icewind to create the caom2 tables and add some content OR deploy torkeep to just create the tables

I do not recall if the tests will all pass when the tables are empty, but they should. The tests would not hit all possible code paths, but that's going to be true with real content and would not be completely thorough unless we specify some specific test content (a handful of observations with all possible fields filled in).

- `argus` (`argus`) - the service itself

The configuration for the required services is documented in their corresponding GitHub repos. For `arugs` the
minimum configuration that successfully run most of the integration tests consists of the following files in
`/config`:
- `argus.properties`:
```
org.opencadc.argus.VosiCapabilitiesTest > testTokenAuth`
```
- `cadc-registry.properties`:
```
# local authority map to find the service that provides
# the local implementation of an API (standardID)
#
# configure RegistryClient bootstrap
ca.nrc.cadc.reg.client.RegistryClient.baseURL = <local reg URL>
# configure LocalAuthority lookups
# <standardID> = <resourceID of service that provides the API>
ivo://ivoa.net/std/GMS#search-1.0 = ivo://cadc.nrc.ca/gms
ivo://ivoa.net/std/GMS#groups-0.1 = ivo://cadc.nrc.ca/gms

ivo://ivoa.net/std/GMS#search-0.1 = ivo://cadc.nrc.ca/gms
ivo://ivoa.net/std/UMS#users-0.1 = ivo://cadc.nrc.ca/gms
ivo://ivoa.net/std/UMS#login-0.1 = ivo://cadc.nrc.ca/gms

ivo://ivoa.net/sso#tls-with-password = ivo://cadc.nrc.ca/gms
ivo://ivoa.net/sso#OpenID = ivo://cadc.nrc.ca/gms

ivo://ivoa.net/std/CDP#delegate-1.0 = ivo://cadc.nrc.ca/cred
ivo://ivoa.net/std/CDP#proxy-1.0 = ivo://cadc.nrc.ca/cred
```

- `cadc-tap-tmp.properties` (temporary storage in the container):
```
org.opencadc.tap.tmp.StorageManager = org.opencadc.tap.tmp.TempStorageManager
org.opencadc.tap.tmp.TempStorageManager.baseURL = https://<local argus URL>/argus/results
org.opencadc.tap.tmp.TempStorageManager.baseStorageDir = /var/tmp/argus
```

- `catalina.properties` (with default pgdev container accounts):
```
# tomcat-base
tomcat.connector.secure=true
tomcat.connector.scheme=https
tomcat.connector.proxyName=<name of the local host>
tomcat.connector.proxyPort=443
# enable support for haproxy SSL termination + pass client cert
ca.nrc.cadc.auth.PrincipalExtractor.enableClientCertHeader=true
# force all registry lookups local
ca.nrc.cadc.reg.client.RegistryClient.host=<name of local host>
# database connection pools
# tapadm - assuming pgdev:5432 is where the database is deployed
org.opencadc.argus.tapadm.maxActive=2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

testing should always use pool size of 1 for all pools

I never put the PG port number in JDBC URLs since we always run on the default port. Better to omit.

org.opencadc.argus.tapadm.username=tapadm
org.opencadc.argus.tapadm.password=pw-tapadm
org.opencadc.argus.tapadm.url=jdbc:postgresql://pgdev:5432/cadctest
# async
org.opencadc.argus.uws.maxActive=1
org.opencadc.argus.uws.username=tapadm
org.opencadc.argus.uws.password=pw-tapadm
org.opencadc.argus.uws.url=jdbc:postgresql://pgdev:5432/cadctest

org.opencadc.argus.query.maxActive=1
# optional: config for separate query pool
org.opencadc.argus.query.username=tapuser
org.opencadc.argus.query.password=pw-tapuser
org.opencadc.argus.query.url=jdbc:postgresql://pgdev:5432/cadctest

# enable support for haproxy SSL termination + pass client cert
ca.nrc.cadc.auth.PrincipalExtractor.enableClientCertHeader=true

ca.nrc.cadc.auth.IdentityManager=ca.nrc.cadc.ac.ACIdentityManager
# or ca.nrc.cadc.auth.IdentityManager=org.opencadc.auth.StandardIdentityManager
```

Loading