78 lines
2 KiB
Python
78 lines
2 KiB
Python
assert node.has_bundle('systemd')
|
|
|
|
streams = {
|
|
's1': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s1',
|
|
'port': 15001,
|
|
},
|
|
's2': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s2',
|
|
'port': 15002,
|
|
},
|
|
's3': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s3',
|
|
'port': 15003,
|
|
},
|
|
's4': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s4',
|
|
'port': 15004,
|
|
},
|
|
's5': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s5',
|
|
'port': 15005,
|
|
},
|
|
's6': {
|
|
'url': 'http://live.ber.c3voc.de:7999/s6',
|
|
'port': 15006,
|
|
},
|
|
'sloop': {
|
|
'url': 'http://live.ber.c3voc.de:7999/sloop_h264',
|
|
'port': 15000,
|
|
},
|
|
}
|
|
|
|
files = {}
|
|
svc_systemd = {}
|
|
|
|
pkg_apt = {
|
|
'ffmpeg': {},
|
|
}
|
|
|
|
for stream_id, config in streams.items():
|
|
config['id'] = stream_id
|
|
|
|
files['/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id)] = {
|
|
'source': 'loudness.sh',
|
|
'content_type': 'mako',
|
|
'context': config,
|
|
'mode': '0755',
|
|
'triggers': {
|
|
'svc_systemd:loudness_{}:restart'.format(stream_id),
|
|
},
|
|
'needs': {
|
|
'pkg_apt:ffmpeg',
|
|
},
|
|
}
|
|
files['/etc/systemd/system/loudness_{}.service'.format(stream_id)] = {
|
|
'source': 'loudness.service',
|
|
'content_type': 'mako',
|
|
'context': config,
|
|
'needs': {
|
|
'file:/opt/voc-loudness-monitor/loudness_{}.sh'.format(stream_id),
|
|
},
|
|
'triggers': {
|
|
'action:systemd-reload',
|
|
'svc_systemd:loudness_{}:restart'.format(stream_id),
|
|
},
|
|
}
|
|
|
|
svc_systemd['loudness_{}'.format(stream_id)] = {
|
|
'needs': {
|
|
'file:/etc/systemd/system/loudness_{}.service'.format(stream_id),
|
|
'action:systemd-reload',
|
|
},
|
|
# These units are designed to fail if the assigned stream fails. No need
|
|
# to restart them on every bw run.
|
|
# Downside of this: services must be started once they are applied.
|
|
'running': None,
|
|
}
|