updated config services to account for files that have a path, basename will be used for template rendering, converted all current utility/security services to config service format

This commit is contained in:
Blake Harnden 2020-01-22 16:54:45 -08:00
parent d7d0a55fd2
commit 640b2c7d5b
21 changed files with 888 additions and 11 deletions

View file

@ -139,18 +139,17 @@ class ConfigService(abc.ABC):
self.custom_templates[name] = template
def get_text(self, name: str) -> str:
raise CoreError(
f"node({self.node.name} service({self.name}) unknown template({name})"
)
raise CoreError(f"service({self.name}) unknown template({name})")
def get_templates(self) -> Dict[str, str]:
templates = {}
for name in self.files:
basename = pathlib.Path(name).name
if name in self.custom_templates:
template = self.custom_templates[name]
template = inspect.cleandoc(template)
elif self.templates.has_template(name):
template = self.templates.get_template(name).source
elif self.templates.has_template(basename):
template = self.templates.get_template(basename).source
else:
template = self.get_text(name)
template = inspect.cleandoc(template)
@ -160,12 +159,13 @@ class ConfigService(abc.ABC):
def create_files(self) -> None:
data = self.data()
for name in self.files:
basename = pathlib.Path(name).name
if name in self.custom_templates:
text = self.custom_templates[name]
text = inspect.cleandoc(text)
self.render_text(name, text, data)
elif self.templates.has_template(name):
self.render_template(name, data)
elif self.templates.has_template(basename):
self.render_template(name, basename, data)
else:
text = self.get_text(name)
text = inspect.cleandoc(text)
@ -233,9 +233,11 @@ class ConfigService(abc.ABC):
f"{exceptions.text_error_template().render_unicode()}"
)
def render_template(self, name: str, data: Dict[str, Any] = None) -> None:
def render_template(
self, name: str, basename: str, data: Dict[str, Any] = None
) -> None:
try:
template = self.templates.get_template(name)
template = self.templates.get_template(basename)
self._render(name, template, data)
except Exception:
raise CoreError(