diff options
author | Christian Pointner <equinox@spreadspace.org> | 2012-10-11 23:09:31 +0200 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2012-10-11 23:09:31 +0200 |
commit | 37254920c9bb1882fb70674669212c2b61014624 (patch) | |
tree | 1ae78b91061ce8510da6d5c8dfa1fae74d7fcf5c /src | |
parent | improved error messages (diff) |
sanity check for worker assignment
Diffstat (limited to 'src')
-rwxr-xr-x | src/flufigut.py | 30 | ||||
-rw-r--r-- | src/test.json | 3 |
2 files changed, 27 insertions, 6 deletions
diff --git a/src/flufigut.py b/src/flufigut.py index c80c1b0..f715e03 100755 --- a/src/flufigut.py +++ b/src/flufigut.py @@ -59,7 +59,6 @@ atmosphere = {} flow = {} ### sanity checks ############################################### - machines = {} worker = {} @@ -75,6 +74,7 @@ flow['input'] = {} if 'input' not in worker: raise SystemExit("ERROR: worker 'input' is not assigned to any machine!!") +worker['input'] = True flow['input']['raw-input'] = { 'type': input['source'], 'desc': "capture raw AV from %s" % input['source'], @@ -148,10 +148,14 @@ for format in transcode.keys(): feeder = 'resize-%s' % resolution video_encoder = 'encode-%s-%s' % (encoder, resolution) if video_encoder not in flow['encoder_video'].keys(): + worker_name = 'encoder-%s-%s' % (encoder, resolution) + if worker_name not in worker: + raise SystemExit("ERROR: worker '%s' is not assigned to any machine!!" % worker_name) + worker[worker_name] = True flow['encoder_video'][video_encoder] = { 'type': '%s-encode' % encoder, 'desc': "%s encoder for %sx%s" % (encoder, globals['resolutions'][resolution]['width'], globals['resolutions'][resolution]['height']), - 'worker': 'encoder-%s-%s' % (encoder, resolution), + 'worker': worker_name, 'feeder': feeder, 'properties': { 'bitrate': bitrate, @@ -170,10 +174,14 @@ for format in transcode.keys(): feeder = 'raw-input:audio' audio_encoder = 'encode-%s-%i-%i' % (encoder, bitrate, samplerate) if audio_encoder not in flow['encoder_audio']: + worker_name = 'encoder-%s-%s' % (encoder, bitrate) + if worker_name not in worker: + raise SystemExit("ERROR: worker '%s' is not assigned to any machine!!" % worker_name) + worker[worker_name] = True flow['encoder_audio'][audio_encoder] = { 'type': '%s-encode' % encoder, 'desc': "%s encoder for %i kbit/s @ %i Hz" % (encoder, bitrate, samplerate), - 'worker': 'encoder-%s-%s' % (encoder, bitrate), + 'worker': worker_name, 'feeder': feeder, 'properties': { 'bitrate': bitrate, @@ -181,10 +189,14 @@ for format in transcode.keys(): } muxer = globals['formats'][format]['muxer'] + worker_name = 'muxer-%s-%s' % (format, profile) + if worker_name not in worker: + raise SystemExit("ERROR: worker '%s' is not assigned to any machine!!" % worker_name) + worker[worker_name] = True flow['muxer']['muxer-%s-%s' % (format, profile)] = { 'type': '%s-mux' % muxer, 'desc': "%s muxer profile %s" % (format, profile), - 'worker': 'muxer-%s' % muxer, + 'worker': worker_name, 'feeder_audio': audio_encoder, 'feeder_video': video_encoder, 'properties': {}, @@ -204,7 +216,7 @@ for cluster in stream.keys(): if machine in machines: if 'porter' in machines[machine]: if port in machines[machine]['porter']: - raise SystemExit("ERROR: porter cannot be created machine %s already uses port %i" % (machine, port)) + raise SystemExit("ERROR: porter cannot be created because machine '%s' already uses port %i" % (machine, port)) else: machines[machine]['porter'] = {} else: @@ -216,6 +228,9 @@ for cluster in stream.keys(): 'password': rand_string(size=12), } + if stream_worker not in worker: + raise SystemExit("ERROR: worker '%s' is not assigned to any machine!!" % stream_worker) + worker[stream_worker] = True atmosphere['porter-%s-%i'%(machine, port)] = { 'type': "porter", 'desc': "Porter for %s on port %i"%(machine, port), @@ -272,6 +287,11 @@ for cluster in stream.keys(): flow['streamer'][name]['properties']['burst-on-connect'] = 'true' flow['streamer'][name]['properties']['burst-time'] = stream[cluster][prop] +### sanity checks, cont'd ####################################### + +for w in worker: + if not worker[w]: + print("WARNING: worker '%s' is not used" % w) ### initialize and render templates ############################# # diff --git a/src/test.json b/src/test.json index 57d413d..9f241fa 100644 --- a/src/test.json +++ b/src/test.json @@ -28,7 +28,8 @@ }, "machines": { "titan": [ "input", "encoder-vorbis-160", "encoder-vorbis-96", "encoder-aac-160", "encoder-aac-96", - "muxer-flv", "muxer-webm", "muxer-ogg", "streamer-local1" ], + "muxer-flash-high", "muxer-flash-medium", "muxer-flash-low", "muxer-webm-high", + "muxer-webm-medium", "muxer-webm-low", "muxer-ogg-audio-high", "streamer-local1" ], "calypso": [ "encoder-h264-720p25", "encoder-h264-480p25", "encoder-h264-360p25" ], "telesto": [ "encoder-vp8-720p25", "encoder-vp8-480p25", "encoder-vp8-360p25" ], "elevate1": [ "streamer-pub1" ], |