Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Outputs

The om query commands display the data using a human-readable renderer by default. The -o command flag can be used to select another renderer.

$ om svc resource list
OBJECT      NODE    RID     TYPE       STATUS  IS_MONITORED  IS_DISABLED  IS_STANDBY  RESTART  RESTART_REMAINING  
stonith8    dev2n2  fs#1    fs.flag    down    false         false        false       0        0                  
testsched   dev2n2  fs#1    fs.flag    down    true          false        false       0        0                  
testsched   dev2n2  task#1  task.host  n/a     false         false        false       0        0                  
...

Custom tables

Custom column selection, with header

$ om svc resource ls -o tab=OBJ:.meta.object,NODE:.meta.node,RID:.meta.rid,STATUS:.data.status.status
OBJ         NODE    RID     STATUS       
cva1        dev2n2  fs#1    down        
cva1        dev2n2  sync#1  n/a         
testflex    dev2n2  fs#1    down        
stonith236  dev2n2  fs#1    down        
...

Add a column to the default table

A + prefix extends the command’s own columns instead of replacing them, which saves respelling a table just to see one more field.

$ om svc resource ls -o +PROV:data.status.provisioned.state
OBJECT  NODE    RID     ...  RESTART_REMAINING  PROV
cva1    dev2n1  sync#1  ...                     true
cva1    dev2n1  fs#1    ...                     true
...

Single column selection, without header

$ om svc resource ls -o tab=.meta.rid
fs#1
sync#1
fs#1
fs#1
...

Machine-readable

$ om svc resource ls -o json
{
    "items": [
        {
            "data": {
                "config": {
                    "is_disabled": false,
                    "is_monitored": false,
                    "is_standby": false,
                    "restart": 0,
                    "restart_delay": 500000000
...
$ om svc resource ls -o yaml
items:
- data:
    config:
      is_disabled: false
      is_monitored: false
      is_standby: false
      restart: 0
      restart_delay: 500000000
    monitor:
      restart:

Add -o jsonline for the same json unindented on a single line, which suits line-oriented tooling.

Flat key-value

The flat renderer prints the same data as json, one leaf per line, as the jsonpath of the value and the value. It is the format to reach for when grepping for a field, or when you want the path to pass to -o tab=.

$ om svc resource ls -o flat
items[0].data.config.is_disabled = false
items[0].data.config.is_monitored = false
items[0].data.config.is_standby = false
items[0].data.config.restart_delay = 500000000
items[0].data.status.label = "flag /dev/shm/opensvc/test/svc/svc1/fs#0.flag"
items[0].data.status.provisioned.mtime = "2026-06-04T22:20:43.238087911+02:00"
items[0].data.status.provisioned.state = "true"
items[0].data.status.status = "down"
items[0].data.status.type = "fs.flag"
items[0].kind = "ResourceItem"
items[0].meta.node = "dev2n1"
...

Template

This output uses the golang template syntax, with the following extra functions:

FunctionResult
drvName "ip.host""host"
drvGroup "ip.host""ip"
resName "container#db""db"
resGroup "container#db""container"
objKind "svc1""svc"
objName "svc1""svc1"
objNamespace "svc1""root"
hasPrefix "foo" "f"true
hasSuffix "foo" "o"true
contains [a b] atrue
reMatch "f.*" "foo"true
fnMatch "f*" "foo"true

Example:

$ om svc resource ls -o template='{{range .}}{{if eq (resName .meta.rid) "hdoc"}}{{printf "%s@%s\n" .meta.object .meta.node}}{{end}}{{end}}'
test/svc/hdoc@dev2n2
test/svc/hdoc@dev2n3
test/svc/hdoc@dev2n1