diff options
-rwxr-xr-x | src/flufigut.py | 28 | ||||
-rwxr-xr-x | src/update.sh | 2 | ||||
-rw-r--r-- | templates/flumotion/default/planet.xml | 5 | ||||
-rw-r--r-- | templates/flumotion/default/recorder.xml | 14 |
4 files changed, 48 insertions, 1 deletions
diff --git a/src/flufigut.py b/src/flufigut.py index 2372fc8..2caeae5 100755 --- a/src/flufigut.py +++ b/src/flufigut.py @@ -62,6 +62,7 @@ globals = config['globals'] input = config['input'] mux = config['mux'] stream = config['stream'] +record = config['record'] if output_format == 'flumotion': @@ -356,6 +357,33 @@ if output_format == 'flumotion': flow['streamer'][name]['properties']['burst-on-connect'] = 'true' flow['streamer'][name]['properties']['burst-time'] = stream[cluster][prop] + ### generate record components ################################ + flow['recorder'] = {} + + for recorder in record.keys(): + record_worker = 'recorder-%s'%(recorder) + if record_worker not in worker: + worker[record_worker] = -1 + else: + worker[record_worker] = 1 + + for mux_name in record[recorder]['muxes']: + format = record[recorder]['muxes'][mux_name]["format"] + profile = record[recorder]['muxes'][mux_name]["profile"] + feeder = 'muxer-%s-%s-%s' % (mux_name, format, profile) + + name = 'recorder-%s-%s-%s' % (mux_name, format, profile) + flow['recorder'][name] = { + 'type': "recorder", + 'desc': "recorder for %s %s-%s" % (mux_name, format, profile), + 'worker': record_worker, + 'feeder': feeder, + 'properties': { } + } + for prop in record[recorder]: + if prop != 'muxes': + flow['recorder'][name]['properties'][prop] = record[recorder][prop] + ### sanity checks, cont'd ####################################### error = 0 diff --git a/src/update.sh b/src/update.sh index bb77181..16781a5 100755 --- a/src/update.sh +++ b/src/update.sh @@ -35,7 +35,7 @@ fi ./manage.sh $1 stop ./manage.sh $1 clean -./flufigut.py flumotion $1 +./flufigut.py flumotion $2 ./manage.sh $1 deploy ./manage.sh $1 start diff --git a/templates/flumotion/default/planet.xml b/templates/flumotion/default/planet.xml index c1633ee..7a45913 100644 --- a/templates/flumotion/default/planet.xml +++ b/templates/flumotion/default/planet.xml @@ -48,6 +48,11 @@ {% for name, component in flow['streamer'].items() %} {% include '%s.xml' % component.type %} {% endfor %} + +<!-- recording --> +{% for name, component in flow['recorder'].items() %} +{% include '%s.xml' % component.type %} +{% endfor %} </flow> </planet> diff --git a/templates/flumotion/default/recorder.xml b/templates/flumotion/default/recorder.xml new file mode 100644 index 0000000..b2fce9e --- /dev/null +++ b/templates/flumotion/default/recorder.xml @@ -0,0 +1,14 @@ + <component name="{{ name }}" + type="disk-consumer" + label="{{ component.desc }}" + worker="{{ component.worker }}" + project="flumotion" + version="{{ globals.version }}"> + <eater name="default"> + <feed alias="default">{{ component.feeder }}</feed> + </eater> +%% for name, value in component.properties.items() + <property name="{{ name }}">{{ value }}</property> +%% endfor + <clock-master>false</clock-master> + </component> |