This is an initial implementation of the mgmt language. It is a declarative (immutable) functional, reactive, domain specific programming language. It is intended to be a language that is: * safe * powerful * easy to reason about With these properties, we hope this language, and the mgmt engine will allow you to model the real-time systems that you'd like to automate. This also includes a number of other associated changes. Sorry for the large size of this patch.
58 lines
1.0 KiB
YAML
58 lines
1.0 KiB
YAML
---
|
|
graph: mygraph
|
|
comment: You can test Watch and CheckApply failures with chmod ugo-r and chmod ugo-w.
|
|
resources:
|
|
exec:
|
|
- name: exec1
|
|
cmd: 'touch /tmp/mgmt/no-read && chmod ugo-r /tmp/mgmt/no-read'
|
|
shell: '/bin/bash'
|
|
timeout: 0
|
|
watchcmd: ''
|
|
watchshell: ''
|
|
ifcmd: ''
|
|
ifshell: ''
|
|
pollint: 0
|
|
state: present
|
|
- name: exec2
|
|
cmd: 'touch /tmp/mgmt/no-write && chmod ugo-w /tmp/mgmt/no-write'
|
|
shell: '/bin/bash'
|
|
timeout: 0
|
|
watchcmd: ''
|
|
watchshell: ''
|
|
ifcmd: ''
|
|
ifshell: ''
|
|
pollint: 0
|
|
state: present
|
|
file:
|
|
- name: noread
|
|
path: "/tmp/mgmt/no-read"
|
|
meta:
|
|
retry: 3
|
|
delay: 5000
|
|
content: |
|
|
i am f1
|
|
state: exists
|
|
- name: nowrite
|
|
path: "/tmp/mgmt/no-write"
|
|
meta:
|
|
retry: 3
|
|
delay: 5000
|
|
content: |
|
|
i am f1
|
|
state: exists
|
|
edges:
|
|
- name: e1
|
|
from:
|
|
kind: exec
|
|
name: exec1
|
|
to:
|
|
kind: file
|
|
name: noread
|
|
- name: e2
|
|
from:
|
|
kind: exec
|
|
name: exec2
|
|
to:
|
|
kind: file
|
|
name: nowrite
|