RedHatQE/teflo

Still having issues with --var-data. Now error is jinja2.exceptions.TemplateSyntaxError: expected token ',', got 'string'

Closed this issue · 3 comments

Trying to test running my scenario using 1.2.5 and 2.1.0 using some modified version of my ansible vars file that I pass to --vars-data and now I get the following errors

Teflo Framework v2.1.0
Copyright (C) 2021, Red Hat, Inc.
--------------------------------------------------
Traceback (most recent call last):
  File "/home/dbaez/.virtualenvs/psi_pipelines/bin/teflo", line 8, in <module>
    sys.exit(teflo())
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/click/decorators.py", line 26, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/teflo/cli.py", line 284, in run
    scenario_graph: ScenarioGraph = validate_cli_scenario_option(ctx, scenario, cbn.config, vars_data)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/teflo/helpers.py", line 1805, in validate_cli_scenario_option
    scenario_graph = validate_render_scenario(scenario, config, vars_data)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/teflo/helpers.py", line 1552, in validate_render_scenario
    temp_data = preprocyaml_jinja(temp_data)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/teflo/helpers.py", line 1496, in preprocyaml_jinja
    t = jinja2.Template(result, undefined=NullUndefined)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/jinja2/environment.py", line 1195, in __new__
    return env.from_string(source, template_class=cls)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/jinja2/environment.py", line 1092, in from_string
    return cls.from_code(self, self.compile(source), gs, None)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/jinja2/environment.py", line 757, in compile
    self.handle_exception(source=source_hint)
  File "/home/dbaez/.virtualenvs/psi_pipelines/lib/python3.7/site-packages/jinja2/environment.py", line 925, in handle_exception
    raise rewrite_traceback_stack(source=source)
  File "<unknown>", line 66, in template
jinja2.exceptions.TemplateSyntaxError: expected token ',', got 'string'

I know the most recent change I had to do the the var file was the following below. I've confirmed if I don't specify the --vars-data to the file that has the variables below. It proceeds through.

osp_director_input_dir: "{{ lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] }}/ansible_collections/css/psi/tests/environments/{{ os_cloud }}/cloud/undercloud"
osp_overcloud_input_dir: "{{ lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] }}/ansible_collections/css/psi/tests/environments/{{ os_cloud }}/cloud/overcloud"
undercloud_server_privkey: "{{ lookup('file', lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] | dirname + '/keystore/rhosp_certs/Server-Private-Key.key') }}"
undercloud_server_cert: "{{ lookup('file', lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] | dirname + '/keystore/rhosp_certs/c0-Wildcard-Server-Certificate.crt') }}"
undercloud_ssl_intermediate_certificate: "{{ lookup('file', lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] | dirname + '/keystore/rhosp_certs/DigiCert-Intermediate-CA.crt') }}"
undercloud_ssl_root_certificate: "{{ lookup('file', lookup('config', 'COLLECTIONS_PATH', 'COLLECTIONS_PATHS', wantlist=True, on_missing='skip')[0][0] | dirname + '/keystore/rhosp_certs/DigiCert-Root-CA.crt') }}"

I had to drop back down to teflo==1.2.0 again in order for this to work.

Jira ticket CCITCARBON-395 has been created for this issue. Url : https://issues.redhat.com/browse/CCITCARBON-395

@Dannyb48 looking at it