From 196da2bb5f8ea18675e6f3342267287b70fe66bc Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 1 Dec 2015 17:22:55 +0100 Subject: [PATCH] (configd) template generation, return ERR when template not found. see https://github.com/opnsense/core/issues/329 --- src/opnsense/service/modules/ph_inline_actions.py | 12 +++++++----- src/opnsense/service/modules/template.py | 6 ++++-- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/opnsense/service/modules/ph_inline_actions.py b/src/opnsense/service/modules/ph_inline_actions.py index a568dbc49..c8b68753a 100644 --- a/src/opnsense/service/modules/ph_inline_actions.py +++ b/src/opnsense/service/modules/ph_inline_actions.py @@ -51,14 +51,16 @@ def execute(action, parameters): tmpl.setConfig(conf.get()) filenames = tmpl.generate(parameters) - # send generated filenames to syslog - for filename in filenames: - syslog.syslog(syslog.LOG_DEBUG, ' %s generated %s' % (parameters, filename)) - del conf del tmpl - return 'OK' + # send generated filenames to syslog + if filenames is not None: + for filename in filenames: + syslog.syslog(syslog.LOG_DEBUG, ' %s generated %s' % (parameters, filename)) + return 'OK' + else: + return 'ERR' elif action.command == 'template.list': # traverse all installed templates and return list # the number of registered targets is returned between [] diff --git a/src/opnsense/service/modules/template.py b/src/opnsense/service/modules/template.py index 812e2ecc5..95939a9d7 100644 --- a/src/opnsense/service/modules/template.py +++ b/src/opnsense/service/modules/template.py @@ -272,9 +272,9 @@ class Template(object): """ :param module_name: module name in dot notation ( company.module ), may use wildcards :param create_directory: automatically create directories to place template output in ( if not existing ) - :return: list of generated output files + :return: list of generated output files or None if template not found """ - result = [] + result = None for template_name in sorted(self.list_modules().keys()): wildcard_pos = module_name.find('*') do_generate = False @@ -290,6 +290,8 @@ class Template(object): do_generate = True if do_generate: + if result is None: + result = list() syslog.syslog(syslog.LOG_NOTICE, "generate template container %s" % template_name) for filename in self._generate(template_name, create_directory): result.append(filename)