64 lines
1.7 KiB
Promela
64 lines
1.7 KiB
Promela
|
<require-service <daemon interface-monitor>>
|
||
|
|
||
|
<require-service <milestone network>>
|
||
|
<depends-on <milestone network> <service-state <daemon interface-monitor> ready>>
|
||
|
|
||
|
<configure-interface "lo" <static "127.0.0.1">>
|
||
|
|
||
|
? <configure-interface ?ifname <static ?ipaddr>> [
|
||
|
$log ! <log "-" { service: $ifname line: "seen-static" ipaddr: $ipaddr }>
|
||
|
! <run-oneshot ["ifconfig" $ifname $ipaddr "up"]>
|
||
|
?- ! <run-oneshot ["ifconfig" $ifname "down"] never>
|
||
|
]
|
||
|
|
||
|
? <configure-interface ?ifname <dhcp>> [
|
||
|
$log ! <log "-" { service: $ifname line: "seen-dhcp" }>
|
||
|
! <run-oneshot ["ifconfig" $ifname "up"]>
|
||
|
?- ! <run-oneshot ["ifconfig" $ifname "down"] never>
|
||
|
<require-service <daemon <udhcpc $ifname>>>
|
||
|
]
|
||
|
|
||
|
? <run-service <daemon <udhcpc ?ifname>>> [
|
||
|
<daemon <udhcpc $ifname> ["udhcpc" "-i" $ifname "-fR"]>
|
||
|
]
|
||
|
|
||
|
?? <run-oneshot ?argv> ! <run-oneshot $argv on-error>
|
||
|
|
||
|
?? <run-oneshot ?argv ?restartPolicy> [
|
||
|
let ?id = timestamp
|
||
|
let ?facet = facet
|
||
|
let ?d = <temporary-exec $id $argv>
|
||
|
<run-service <daemon $d>>
|
||
|
<daemon $d {
|
||
|
argv: $argv,
|
||
|
readyOnStart: #f,
|
||
|
restart: $restartPolicy,
|
||
|
}>
|
||
|
? <service-state <daemon $d> complete> [$facet ! stop]
|
||
|
? <service-state <daemon $d> failed> [$facet ! stop]
|
||
|
]
|
||
|
|
||
|
;---------------------------------------------------------------------------
|
||
|
|
||
|
<daemon interface-monitor {
|
||
|
argv: "/usr/lib/synit/interface-monitor"
|
||
|
protocol: application/syndicate
|
||
|
}>
|
||
|
|
||
|
? <machine-dataspace ?machine> [
|
||
|
? <service-object <daemon interface-monitor> ?cap> [
|
||
|
$cap {
|
||
|
machine: $machine
|
||
|
}
|
||
|
]
|
||
|
|
||
|
$machine ? ?r [
|
||
|
$log ! <log "-" { line: "machine" |+++|: $r }>
|
||
|
?- $log ! <log "-" { line: "machine" |---|: $r }>
|
||
|
]
|
||
|
|
||
|
$machine ? <interface ?ifname _ normal _ _ carrier _> [
|
||
|
$config <configure-interface $ifname <dhcp>>
|
||
|
]
|
||
|
]
|