https://github.com/utrechtuniversity/irods-uu-microservices
Miscellaneous iRODS microservices developed or modified by Utrecht University.
https://github.com/utrechtuniversity/irods-uu-microservices
irods yoda
Last synced: 3 months ago
JSON representation
Miscellaneous iRODS microservices developed or modified by Utrecht University.
- Host: GitHub
- URL: https://github.com/utrechtuniversity/irods-uu-microservices
- Owner: UtrechtUniversity
- License: lgpl-3.0
- Created: 2017-06-29T07:33:06.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2025-03-06T10:37:55.000Z (7 months ago)
- Last Synced: 2025-04-08T05:51:15.428Z (6 months ago)
- Topics: irods, yoda
- Language: C++
- Homepage: https://utrechtuniversity.github.io/yoda-docs/
- Size: 268 KB
- Stars: 2
- Watchers: 7
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.txt
- License: LICENSE
Awesome Lists containing this project
README
# iRODS UU Microservices
Miscellaneous iRODS microservices developed or modified by Utrecht University.## Included microservices
Developed at Utrecht University:
* msi\_dir\_list: Lists the contents of a physical directory
* msi_file_checksum: Calculate a checksum of a physical file without persisting it in the iCAT database
* msiRegisterEpicPID: Register an EPIC PID
* msi_stat_vault: Get properties of a physical file or directory in the vault of a unixfilesystem resourceDeveloped at Donders Institute:
* msi\_json\_objops: get, add and set values in a json object
* msi\_json\_arrayops: get, add and set values in a json array. modified to handle arrays of arraysThe msi\_json\_arrayops and msi\_json\_objops microservices are derived from
work at the Donders Institute. The license in DONDERS-LICENSE appliesDeveloped at Maastricht University:
* msi\_add\_avu: Microservice to add AVU
* msi\_rmw\_avu: Microservice to remove AVUDeveloped at Wageningen University & Research:
* msiArchiveCreate: create an archive
* msiArchiveExtract: extract from an archive
* msiArchiveIndex: index an archive## Installation
iRODS UU microservices can be installed using the packages provided on the
[releases page](https://github.com/UtrechtUniversity/irods-uu-microservices/releases).You can also build the microservices yourself, see [Building from source](#building-from-source).
## Building from source
This repository includes a Vagrant configuration for building irods-uu-microservices from source on either AlmaLinux 9 (for the RPM package) or Ubuntu 22.04 LTS (for the DEB package). It can be found in vagrant/build. In order to build a package using Vagrant, edit the .env file in the Vagrant build directory. Adjust the BOXNAME and IRODS_VERSION vars as needed. Then run vagrant up to provision the VM. The VM has all dependencies pre-installed, as well as a clone of the irods-uu-microservices repository. Log in on the VM using vagrant ssh and create the package (see below).To build from source without using the Vagrant configuration, the following build-time dependencies must be installed (package names may differ on your platform):
- `make`
- `gcc-c++`
- `irods-devel`
- `irods-externals-cmake3.21.4-0`
- `irods-externals-clang13.0.0-0`
- `boost-devel`
- `boost-locale`
- `openssl-devel`
- `libcurl-devel`
- `libuuid-devel`
- `jansson-devel`
- `libarchive-devel`
- `rpmdevtools` (if you are creating an RPM)```
sudo yum install make gcc-c++ irods-devel irods-externals-clang13.0.0-0 irods-externals-cmake3.21.4-0 boost-devel boost-locale openssl-devel libcurl-devel jansson-devel libuuid-devel libarchive-devel rpmdevtools
```Follow these instructions to build from source:
- First, browse to the directory where you have unpacked the source
distribution.- Check whether your umask is set to a sane value. If the output of
`umask` is not `0022`, run `umask 0022` to fix it. This is important
for avoiding conflicts in created packages later on.- Compile the project
```bash
export PATH=/opt/irods-externals/cmake3.21.4-0/bin:$PATH
cmake .
make
```Now you can either build an RPM or install the project without a package manager.
**To create a package:**
```bash
make package
```That's it, you should now have an RPM in your build directory which you can install using yum.
**To install without creating a package**
```bash
make install
```This will install the `.so` files into the microservice plugin directory.