/irods_rule_engine_plugin_update_collection_mtime

Automatically updates the mtime of collections when changes are detected within them.

Primary LanguageC++

iRODS Rule Engine Plugin - Update Collection MTime

This plugin was developed as a dependency for NFSRODS.

This plugin brings iRODS closer to POSIX semantics by enabling iRODS to automatically update the mtimes for collections when changes are detected within them.

Requirements

  • iRODS v4.2.6+
  • irods-externals-boost package
  • irods-dev package
  • irods-runtime package

Compiling

$ git clone https://github.com/irods/irods_rule_engine_plugin_update_collection_mtime
$ mkdir _build
$ cd _build
$ cmake -GNinja ../irods_rule_engine_plugin_update_collection_mtime
$ ninja package

After compiling, you should now have a deb or rpm package with a name similar to the following:

irods-rule-engine-plugin-update-collection-mtime-<plugin_version>-<os>-<arch>.<deb|rpm>

Installing

Ubuntu:

$ sudo dpkg -i irods-rule-engine-plugin-update-collection-mtime-*.deb

CentOS:

$ su -c yum localinstall irods-rule-engine-plugin-update-collection-mtime-*.rpm

If the installation was successful, you should now have a new shared library. The full path to the library should be similar to the following:

<irods_lib_home>/plugins/rule_engines/libirods_rule_engine_plugin-update_collection_mtime.so

Configuration

To enable, prepend the following plugin config to the list of rule engines in /etc/irods/server_config.json. The plugin config must be placed at the beginning of the "rule_engines" section. Placing the plugin after other plugins could result in mtimes not being updated.

Even though this plugin will process PEPs first due to it's positioning, subsequent Rule Engine Plugins (REP) will still be allowed to process the same PEPs without any issues.

"rule_engines": [
    {
        "instance_name": "irods_rule_engine_plugin-update_collection_mtime-instance",
        "plugin_name": "irods_rule_engine_plugin-update_collection_mtime",
        "plugin_specific_configuration": {}
    },
    
    // ... Previously installed rule engine plugin configs ...
]