can add rougail_variable to template

This commit is contained in:
2019-12-22 14:46:16 +01:00
parent 5952a8d759
commit 3eb208b2c1
12 changed files with 185 additions and 27 deletions

View File

@ -8,7 +8,7 @@ import imp
import sys
from shutil import copy
import logging
from typing import Dict
from typing import Dict, Any
from subprocess import call
from os import listdir, unlink, makedirs
@ -116,16 +116,21 @@ class CheetahTemplate(ChtTemplate):
eosfunc: Dict,
config: Config,
current_container: str,
destfilename):
destfilename,
variable):
"""Initialize Creole CheetahTemplate
"""
ChtTemplate.__init__(self, file=filename,
searchList=[context, eosfunc, {'is_defined' : IsDefined(context),
# 'creole_client' : CreoleClient(config),
# 'current_container':CreoleGet(current_container),
'normalize_family': normalize_family,
'rougail_filename': destfilename
}])
extra_context = {'is_defined' : IsDefined(context),
# 'creole_client' : CreoleClient(config),
# 'current_container':CreoleGet(current_container),
'normalize_family': normalize_family,
'rougail_filename': destfilename
}
if variable:
extra_context['rougail_variable'] = variable
ChtTemplate.__init__(self,
file=filename,
searchList=[context, eosfunc, extra_context])
class CreoleLeader:
@ -324,7 +329,8 @@ class CreoleTemplateEngine:
def process(self,
destfilename: str,
filevar: Dict,
container: str):
container: str,
variable: Any):
"""Process a cheetah template
"""
# full path of the destination file
@ -336,7 +342,8 @@ class CreoleTemplateEngine:
self.eosfunc,
self.config.config.copy(),
container,
destfilename)
destfilename,
variable)
data = str(cheetah_template)
except CheetahNotFound as err:
varname = err.args[0][13:-1]
@ -393,15 +400,26 @@ class CreoleTemplateEngine:
container_dir = join(self.dest_dir,
container)
filenames = filevar['name']
if 'variable' in filevar:
variable = filevar['variable']
else:
variable = None
if not isinstance(filenames, list):
filenames = [filenames]
for filename in filenames:
if variable:
variable = [variable]
for idx, filename in enumerate(filenames):
destfilename = join(container_dir,
filename[1:])
makedirs(dirname(destfilename), exist_ok=True)
if variable:
var = variable[idx]
else:
var = None
self.process(destfilename,
filevar,
container)
container,
var)
self.change_properties(destfilename,
filevar)