Разбить диапазон чисел, разделенных "-", в шаблон jinja2 - PullRequest
0 голосов
/ 10 июля 2019

У меня есть такая строка внутри файла yaml:

switchport private-vlan trunk allowed vlan: 100-115,1060,1802,1455,1433,1422

, что она конвертируется шаблоном jinja2 следующим образом:

 interface GigabitEthernet100/0/0.100-115
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1060
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1802
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1455
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1433
 description test02 slot1/1_1G

 interface GigabitEthernet100/0/0.1422
 description test02 slot1/1_1G

Я использую split внутри jinja2шаблон (см. фрагменты кода ниже), чтобы я мог получить мой результат, описанный ниже ..

После того, как я разделил "," как я могу сделать так, чтобы он снова разделил диапазон найденных чисел?Примерно так: если вы видите 100-115, начните с 100 до 115, чтобы я мог использовать его в выражении for.

  {% if lines == "interface GigabitEthernet1/1" %}
  {% for vlan in configIF[lines]['switchport private-vlan trunk allowed vlan'].split(",") %}
 interface GigabitEthernet100/0/0.{{ vlan }}
 description {{ configIF[lines]['description'] }}
   {% endfor %}
  {% endif %}
{{ lines }}
 description {{ configIF[lines]['description'] }}
{% endfor %}

Мои результаты:

interface GigabitEthernet100/0/0.100-115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G

Ожидаемые результаты:

interface GigabitEthernet100/0/0.100
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.101
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.102
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.103 ... and so on until 115
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G

interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G
...