From 14d024e711248289be149cfe5d4a3e4d0d2bc756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Robotka?= <robotka.adrian@gmail.com> Date: Sun, 31 May 2020 18:55:38 +0200 Subject: [PATCH] commenting --- build.py | 23 +++++++++++++---------- config.py | 1 - customlog.py | 1 + pupak.py | 8 ++++---- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/build.py b/build.py index 0bc17a4..69e7e2b 100644 --- a/build.py +++ b/build.py @@ -13,7 +13,6 @@ class ConfigBuilder: """Fill YAML-jinja2 templates, prepare the final data-model""" def __init__(self, cfg: Config): - """Instantiate ConfigBuilder""" self.logger = logging.getLogger(APP_LOG_TAG) self.config = cfg @@ -23,17 +22,21 @@ class ConfigBuilder: for job in service['scraping']: self.logger.debug("Templating: " + service['service_name'] + ' -> ' + job['template']) self.load_template(job) - - env = jinja2.Environment(undefined=jinja2.DebugUndefined) - template = env.from_string(job['template']) - data = service.copy() - data['targets'] = job['targets'] - data['snippet'] = collect_snippets(self.config.templates) - - output = template.render(data) + template = self.substitute_template_field(job, service) # store generated prometheus job config - job['output_yaml'] = yaml.safe_load(output) + job['output_yaml'] = yaml.safe_load(template) def load_template(self, job): + """Substitute 'template' field with its content""" template_identifier = TEMPLATE_PREFIX + job['template'] job['template'] = self.config.templates[template_identifier] + + def substitute_template_field(self, job, service): + """Fill template field with data""" + env = jinja2.Environment(undefined=jinja2.DebugUndefined) + template = env.from_string(job['template']) + data = service.copy() + data['targets'] = job['targets'] + data['snippet'] = collect_snippets(self.config.templates) + + return template.render(data) diff --git a/config.py b/config.py index b3fab9f..1237059 100644 --- a/config.py +++ b/config.py @@ -14,7 +14,6 @@ class Config: templates = {} def __init__(self, path: Path): - """Read service YAML files and preload templates""" self.logger = logging.getLogger(APP_LOG_TAG) # YAML files in tha data directory recursively base_path_len = len(str(path.absolute())) + 1 diff --git a/customlog.py b/customlog.py index ec100c5..94d68f9 100644 --- a/customlog.py +++ b/customlog.py @@ -5,6 +5,7 @@ from constants import APP_LOG_TAG def setup_logging(): + """Setup custom log format""" # create logger with 'spam_application' logger = logging.getLogger(APP_LOG_TAG) logger.setLevel(logging.DEBUG) diff --git a/pupak.py b/pupak.py index 31cf0f9..c53c483 100644 --- a/pupak.py +++ b/pupak.py @@ -19,21 +19,21 @@ if __name__ == "__main__": if len(sys.argv) < 1 + 1: logger.error("Not enough CLI args.") logger.error("Usage: data_folder") - exit(1) + sys.exit(1) data_folder = Path(sys.argv[1]) # Read service YAML files and preload templates - raw = Config(data_folder) + config = Config(data_folder) # Fill YAML-jinja2 templates, # prepare the final data-model - builder = ConfigBuilder(raw) + builder = ConfigBuilder(config) builder.build() # print("Data scheme validation:") # cfg.validate() # print("Data scheme is VALID.") - generator = Generator(data_folder, builder.config) + generator = Generator(data_folder, config) generator.ignite() -- GitLab