Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

local_timestamp issue #81

Open
skippybossx opened this issue Mar 10, 2021 · 1 comment
Open

local_timestamp issue #81

skippybossx opened this issue Mar 10, 2021 · 1 comment
Assignees

Comments

@skippybossx
Copy link

when i write Installed ({{ epoch_timestamp }}) in template it gives me just nothing, installation goes trought, but its empty indise ( )

same thing with {{ local_timestamp }}, i tried also local_year, local_month, local_day, local_hour, local_minute, local_second and its the same

The point is i would like to have installation date inside there, but i don't know why is it not working? or how to use it properly

@pschapman
Copy link
Collaborator

pschapman commented Mar 29, 2021

Agreed. Time is not being passed to the Jinja2 engine. Tried the following variations in a dummy template:

Test: ! {{ now() }}
Result: jinja2.exceptions.UndefinedError: 'now' is undefined

Test: ! {{ time.strftime("%H:%M:%S", time.localtime()) }}
Result: jinja2.exceptions.UndefinedError: 'time' is undefined

Test Line 1: ! {% set t=time.strftime("%H:%M:%S", time.localtime()) %}
Test Line 2: ! {{ t }}
Result: jinja2.exceptions.UndefinedError: 'time' is undefined

A merge test shows that there are no time variables in the variable set (see below). Attempting to hack a time variable in using a GLOBAL keystore (e.g. ztp set keystore GLOBAL time "time.time()") results in a literal string being inserted as a variable, not a calculated value.

root@ztp:/home/ztpadmin# ztp request merge-test STACK1 
2021-03-29 01:17:14:   cfact.get_keystore_id: Checking Keystores and IDArrays for (STACK1)
2021-03-29 01:17:14:   cfact.get_keystore_id: Checking Keystore names for (STACK1)
2021-03-29 01:17:14:   cfact.get_keystore_id: ID (STACK1) resolved directly to a keystore
2021-03-29 01:17:14:   cfact.get_template: Looking up association for identity (STACK1)
2021-03-29 01:17:14:   cfact.get_template: Found associated template (SHORT_TEMPLATE)
2021-03-29 01:17:14:   cfact.get_template: Template (SHORT_TEMPLATE) exists in local config. Returning
Some variables in jinja template do not exist in keystore:
        -time
2021-03-29 01:17:14:   cfact.pull_keystore_values: Inserting IDArray keys
2021-03-29 01:17:14:   cfact._global_lookup: Checking if a global-keystore is configured and ready...
2021-03-29 01:17:14:   cfact._global_lookup: A global-keystore is configured (GLOBAL), checking if it exists in local config
2021-03-29 01:17:14:   cfact._global_lookup: Global keystore exists in local config. Adding and returning
2021-03-29 01:17:14:   cfact.merge_test: Merging with values:
{
    "vl1_netmask": "255.255.255.0", 
    "idarray_1": "SERIAL1", 
    "snmpinfo": {
        "WS_C3850_SERIAL_NUMBER": "WS_C3850_SERIAL_NUMBER_FAKESERIAL", 
        "WS_C2960_SERIAL_NUMBER": "WS_C2960_SERIAL_NUMBER_FAKESERIAL", 
        "matched": "FAKEMATCHEDSERIAL"
    }, 
    "idarray_2": "SERIAL2", 
    "idarray_3": "SERIAL3", 
    "vl1_ip_address": "10.0.0.200", 
    "hostname": "CORESWITCH", 
    "idarray": [
        "SERIAL1", 
        "SERIAL2", 
        "SERIAL3"
    ], 
    "GLOBAL": {
        "c9k_ver": "16.12.4", 
        "ztp_ip_addr": "192.168.1.194", 
        "c9300_ver": "16.12.4", 
        "c9200_image": "cat9k_iosxe_lite.16.12.04.SPA.bin", 
        "c9k_image": "cat9k_iosxe.16.12.04.SPA.bin", 
        "c9300_image": "cat9k_iosxe.16.12.04.SPA.bin", 
        "c9200_ver": "16.12.4"
    }
}

Let's post this as a feature request.

PSC

@PackeTsar PackeTsar self-assigned this Nov 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants