libretime/python_apps/media-monitor/mm2/baby.py

49 lines
1.7 KiB
Python
Raw Permalink Normal View History

2012-11-15 21:08:49 +01:00
# -*- coding: utf-8 -*-
2012-11-16 06:09:33 +01:00
import re
from media.saas.launcher import setup_logger, setup_global, MM2
from media.saas.airtimeinstance import AirtimeInstance
2013-01-22 19:02:45 +01:00
from os.path import isdir, join, abspath, exists, dirname
2012-11-16 06:09:33 +01:00
from os import listdir
2012-11-15 21:08:49 +01:00
def list_dirs(d): return (x for x in listdir(d) if isdir(join(d,x)))
2012-11-15 21:08:49 +01:00
2012-11-19 22:05:52 +01:00
def filter_instance(d): return bool(re.match('.+\d+$',d))
2012-11-16 06:09:33 +01:00
def get_name(p): return re.match('.+/(\d+)$',p).group(1)
2012-11-19 22:04:43 +01:00
def filter_instances(l): return (x for x in l if filter_instance(x))
2012-11-16 06:09:33 +01:00
def autoscan_instances(main_cfg):
root = main_cfg['instance_root']
instances = []
for instance_machine in list_dirs(root):
instance_machine = join(root, instance_machine)
for instance_root in filter_instances(list_dirs(instance_machine)):
full_path = abspath(join(instance_machine,instance_root))
2012-11-16 06:09:33 +01:00
ai = AirtimeInstance.root_make(get_name(full_path), full_path)
instances.append(ai)
return instances
def verify_exists(p):
if not exists(p): raise Exception("%s must exist" % p)
2012-11-16 06:09:33 +01:00
def main(main_cfg):
log_config, log_path = main_cfg['log_config'], main_cfg['log_path']
verify_exists(log_config)
2012-11-15 21:08:49 +01:00
log = setup_logger(log_config, log_path)
setup_global(log)
2013-01-22 19:02:45 +01:00
for instance in autoscan_instances(main_cfg):
print("Launching instance: %s" % str(instance))
2013-01-22 19:02:45 +01:00
#MM2(instance).start()
print("Launched all instances")
2012-11-15 21:08:49 +01:00
2013-01-22 19:02:45 +01:00
if __name__ == '__main__':
pwd = dirname(__file__)
2012-11-16 17:14:31 +01:00
default = {
2013-01-22 19:02:45 +01:00
'log_path' : join(pwd, 'test.log'), # config for log
'log_config' : join(pwd, 'configs/logging.cfg'), # where to log
# root dir of all instances
2013-01-22 19:02:45 +01:00
'instance_root' : '/mnt/airtimepro/instances'
2012-11-16 06:09:33 +01:00
}
2012-11-16 17:14:31 +01:00
main(default)