Table of contents
Writing plugins
Magui plugins should conform to the following standards:
- Written in python and stored in the
maguiclient/plugins
folder following whatever desired hierarchy (for example, try to match Risu plugins structure for simplicity in filtering) -
Implement some base functions keeping arguments and data returned as in others:
-
init()
- Returns list of triggers (array with strings) (contains Risu plugin ID data to act on)
run(data)
- Returns information that is later shown by magui
-
help()
- Returns string with description of plugin
-
Plugins for Magui should refer to processing of Risu data for doing it's work
-
In order to do so, each Risu plugins has a unique UID calculated via md5sum via relative path and plugin name.
-
Results are then filtered to get the data for that plugin ID, for example:
```py
Plugin ID to act on:
"131c0e0d785fae9811f2754262f0da9e"
Note that this ID is returned via 'triggers' in the init function, so only the data that this plugin can process is provided.
returncode = risu.RC_OKAY
message = "" for ourdata in data: # 'err' in this case should be always equal to the md5sum of the file so that we can report the problem err = [] for sosreport in ourdata["sosreport"]: err.append(ourdata["sosreport"][sosreport]["err"])
if len(sorted(set(err))) != 1: message = _( "Pipeline.yaml contents differ across sosreports, please do check that the contents are the same and shared across the environment to ensure proper behavior." ) returncode = risu.RC_FAILED
out = "" err = message return returncode, out, err ```