WS-1405 CASA matrix service
Made the service that's responsible for comparing installed versions on disk vs allowed versions in the database vs what version has been requested.
Manual testing notes:
- Spin up the containers
- Log into the capability container as
root
to set up mock CASA delivery directories:
docker exec -u root -it workspaces-capability-1 bash
mkdir -p /home/casa/packages/RHEL6/release /home/casa/packages/RHEL7/release;
cd /home/casa/packages/RHEL6/release;
mkdir -p casa-6.1.1-13-pipeline-2020.1.0.36/pipeline casa-pipeline-release-5.6.1-8.el6/pipeline casa-release-5.5.0-149/pipeline;
cd /home/casa/packages/RHEL7/release;
mkdir -p casa-6.1.1-13-pipeline-2020.1.0.36/pipeline casa-6.4.1-12-pipeline-2022.2.0.64/pipeline casa-6.4.1-12-pipeline-2022.2.0.68/pipeline casa-release-5.3.0-143/pipeline;
- Log into the capability container as
vlapipe
to test making the links in/home/ssa/casa
(thus testing that feature):
docker exec -it workspaces-capability-1 bash
mkdir -p /home/ssa/casa/RHEL6 /home/ssa/casa/RHEL7
poetry shell
python3
import requests
prefix = 'http://capability:3457/casa_matrix/'
r = requests.get(prefix + 'version')
print(r.json())
- Additional tests:
r = requests.get(prefix + 'version')
print(r.json())
r = requests.get(prefix + 'version', json={'capability': 'std_calibration'})
print(r.json())
r = requests.get(prefix + 'version', json={'capability': 'restore_cms', 'telescope': 'alma'})
print(r.json())
r = requests.get(prefix + 'version', json={'version': '6.4.1-12|2022.2.0.68'})
print(r.json())
r = requests.get(prefix + 'version', json={'version': '5.5.0'})
print(r.json())
r = requests.get(prefix + 'versions')
print(r.json())
r = requests.get(prefix + 'versions', json={'version': '6.4.1-12|2022.2.0.68'})
print(r.json())
r = requests.get(prefix + 'recipe', json={'capability': 'restore_cms'})
print(r.json())
r = requests.post(prefix + 'db/version', json={'version': '0.0.0'})
print(r.json())
r = requests.post(prefix + 'db/version', json={'version': '1.1.1', 'is_cluster_compatible': False})
print(r.json())
r = requests.put(prefix + 'db/version', json={'version': '1.1.1', 'is_cluster_compatible': True})
print(r.json())
r = requests.post(prefix + 'db/version', json={'version': '2.2.2', 'is_cluster_compatible': False, 'capabilities': ['curator', 'download']})
print(r.json())
r = requests.put(prefix + 'db/version', json={'version': '2.2.2', 'is_cluster_compatible': True, 'capabilities': ['restore_cms', 'std_cms_imaging']})
print(r.json())
r = requests.delete(prefix + 'db/version', json={'version': '0.0.0'})
print(r.json())
r = requests.delete(prefix + 'db/version', json={'version': '1.1.1'})
print(r.json())
r = requests.delete(prefix + 'db/version', json={'version': '2.2.2'})
print(r.json())
Edited by Daniel Nemergut