Implement a Site-Written RUR Plugin

How to get that site-written plugin to actually do something

For a site written plugin to run, it must be added to the cray_rur service settings and enabled.
  1. Ensure that the site written plugin is located on a file system that is readable by compute nodes, owned by root, and not writeable by non-root users.
  2. Invoke an interactive configurator session.
    smw# cfgset update -m interactive -s -l interactive cray_rur p0
    Service Configuration Menu (Config Set: p0, type: cle)
    
      cray_rur        [ status: enabled ]  [ validation: valid ]
    
    -----------------------------------------------------------------
      Selected     #      Settings        Value/Status (level=basic)
    -----------------------------------------------------------------
    ...
                 42)      data_plugins    [ 5 sub-settings unconfigured, select
                                          and enter C to add entries ]
                 43)      output_plugins  [ 4 sub-settings unconfigured, select
                                          and enter C to add entries ]
  3. Add a site-written data plugin.
    1. Select the number corresponding to the data_plugins setting.
      RUR service Menu [default: save & exit - Q] $ 42
      The setting is highlighted:
         *     42)       data_plugins              True
    2. Add a data plugin name.
      RUR service Menu [default: configure - C] $ C
      ...
      cray_rur.settings.data_plugins
      [<cr>=set 0 entries, +=add an entry, ?=help, @=less] $ +
      cray_rur.settings.data_plugins.data.plugin_name
      [<cr>=set '', <new value>, ?=help, @=less] $ sitedataplug
    3. Add the complete path to the data plugin's staging script.
      cray_rur.settings.data_plugins.data.sitedataplug.stage
      [<cr>=set 'none', <new value>, ?=help, @=less] $ /opt/cray/rur/default/bin/sitedataplug_stage.py
    4. Add the complete path to the data plugin's post script.
      cray_rur.settings.data_plugins.data.sitedataplug.post
      [<cr>=set 'none', <new value>, ?=help, @=less] $ /opt/cray/rur/default/bin/sitedataplug_post.py
    5. (Optional) Add a data plugin argument arg.
      cray_rur.settings.data_plugins.data.sitedataplug.arg
      [<cr>=set 'none', <new value>, ?=help, @=less] $ <cr>
    6. Enable the data plugin.
      cray_rur.settings.data_plugins.data.sitedataplug.enable
      [<cr>=set 'true', <new value>, ?=help, @=less] $ <cr>
      The configured values are displayed:
              1) 'sitedataplug'
                  a) stage: /opt/cray/rur/default/bin/sitedataplug_stage.py
                  b) post: /opt/cray/rur/default/bin/sitedataplug_post.py
                  c) arg: none
                  d) enable: True
    7. Set the completed data plugin entry.
      cray_rur.settings.data_plugins
      [<cr>=set 1 entries, +=add an entry, ?=help, @=less] $ <cr>
      The data_plugins setting is updated.
                     42)     data_plugins
                                plugin_name: sitedataplug     [ OK ]
  4. Add a site-written output plugin.
    1. Select the number corresponding to the output_plugins setting.
      RUR service Menu [default: save & exit - Q] $ 43
      The setting is highlighted:
         *     43)       output_plugins              True
    2. Add an output plugin name.
      RUR service Menu [default: configure - C] $ C
      ...
      cray_rur.settings.output_plugins
      [<cr>=set 0 entries, +=add an entry, ?=help, @=less] $ +
      cray_rur.settings.output_plugins.data.plugin_name
      [<cr>=set '', <new value>, ?=help, @=less] $ siteoutplug
    3. Add the path to the output plugin script or binary.
      cray_rur.settings.output_plugins.data.siteoutplug.output
      [<cr>=set 'none', <new value>, ?=help, @=less] $ /opt/cray/rur/site/bin/siteoutplug_output.py
    4. (Optional) Add an output plugin argument arg.
      cray_rur.settings.output_plugins.data.siteoutplug.arg
      [<cr>=set 'none', <new value>, ?=help, @=less] $ <cr>
    5. Enable the output plugin.
      cray_rur.settings.output_plugins.data.siteoutplug.enable
      [<cr>=set 'true', <new value>, ?=help, @=less] $ <cr>
      The configured values are displayed:
              1) 'siteoutplug'
                  a) output: /opt/cray/rur/site/bin/siteoutplug_output.py
                  b) arg: none
                  c) enable: True
    6. Set the completed output plugin entry.
      cray_rur.settings.output_plugins
      [<cr>=set 1 entries, +=add an entry, ?=help, @=less] $ <cr>
      The output_plugins setting is updated.
                     42)     output_plugins
                                plugin_name: siteoutplug     [ OK ]
  5. Save and exit the configurator.
    RUR service Menu [default: save & exit - Q] $ Q

To apply these configuration changes, refresh the appropriate nodes with the updated config set.