HEX
Server: LiteSpeed
System: Linux kapuas.iixcp.rumahweb.net 5.14.0-427.42.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 14:58:02 EDT 2024 x86_64
User: mirz4654 (1666)
PHP: 8.1.33
Disabled: system,exec,escapeshellarg,escapeshellcmd,passthru,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,popen,pclose,dl,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setsid,posix_setuid,posix_setpgid,ini_alter,show_source,define_syslog_variables,symlink,syslog,openlog,openlog,closelog,ocinumcols,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dll,ftp,myshellexec,socket_bind,mail,posix_getwpuid
Upload Files
File: //lib/python3.9/site-packages/ansible_collections/dellemc/os9/roles/os9_dcb/templates/os9_dcb.j2
#jinja2: trim_blocks: True,lstrip_blocks: True
{################################
Purpose:
Configure DCB commands for os9 Devices
os9_dcb:
    dcb_enable: true
    dcb_map:  
      - name: test
        priority_pgid: 0 0 0 3 3 3 0 3
        priority_group:
          - pgid: 0
            bandwidth: 20
            pfc: true
            state: present
          - pgid: 3
            bandwidth: 20
            pfc: true
            state: present
        intf:
          - name: fortyGigE 1/8
            state: present
          - name: fortyGigE 1/9
            state: present
        state: present
    dcb_buffer:
      - name: buffer
        description:
        priority_params:
          - pgid: 0
            buffer_size: 5550
            pause: 40
            resume: 40
            state: present
        intf:
          - name: fortyGigE 1/6
            state: present
        state: present
################################}
{% if os9_dcb is defined and os9_dcb %}
{% set dcb_vars = os9_dcb %}
{% if dcb_vars.dcb_enable is defined %}
  {% if dcb_vars.dcb_enable %}
dcb enable 
  {% else %}
no dcb enable
  {% endif %}
{% endif %}
{% if dcb_vars.dcb_map is defined and dcb_vars.dcb_map %}
  {% for map in dcb_vars.dcb_map %}
    {% if map.name is defined and map.name %}
      {% if map.state is defined and map.state == "absent" %}
        {% if map.intf is defined and map.intf %}
          {% for intf in map.intf %}
            {% if intf.state is defined and intf.state == "absent" %}
              {% if intf.name is defined and intf.name %}
interface {{ intf.name }}
 no dcb-map {{ map.name }}
 exit
              {% endif %}
            {% endif %}
          {% endfor %}
        {% endif %}
no dcb-map {{ map.name }}
      {% else %}
dcb-map {{ map.name }}
        {% set pgid_set = {'value': False} %}
        {% if map.priority_group is defined and map.priority_group %}
          {% for group in map.priority_group %}
            {% if group.pgid is defined and group.pgid >= 0 %}
              {% if group.state is defined and group.state == "absent" %}
                {% if not pgid_set['value'] %}
                {% if map.priority_pgid is defined %}
                  {% if pgid_set.update({'value': True}) %} {% endif %}
                  {% if map.priority_pgid %}
 priority-pgid {{ map.priority_pgid }}
                  {% else %}
 no priority-pgid
                  {% endif %}
              {% endif %}
              {% endif %}
 no priority-group {{ group.pgid }}
              {% else %}
                {% if group.bandwidth is defined and group.bandwidth %}
                  {% if group.pfc is defined %}
                    {% if group.pfc %}
 priority-group {{ group.pgid }} bandwidth {{ group.bandwidth }} pfc on
                    {% else %}
 priority-group {{ group.pgid }} bandwidth {{ group.bandwidth }} pfc off
                    {% endif %}
                  {% endif %}
                {% endif %}
              {% endif %}
            {% endif %}
          {% endfor %}
        {% endif %}
        {% if not pgid_set['value'] %}
        {% if map.priority_pgid is defined %}
          {% if map.priority_pgid %}
 priority-pgid {{ map.priority_pgid }}
          {% else %}
 no priority-pgid
          {% endif %}
        {% endif %}
        {% endif %}
        {% if map.intf is defined and map.intf %}
          {% for intf in map.intf %}
            {% if intf.name is defined and intf.name %}
interface {{ intf.name }}
              {% if intf.state is defined and intf.state == "absent" %}
 no dcb-map {{ map.name }}
              {% else %}
 dcb-map {{ map.name }}
              {% endif %}
            {% endif %}
          {% endfor %}
        {% endif %}
      {% endif %}
    {% endif %}
  {% endfor %}
{% endif %}
{% if dcb_vars.dcb_buffer is defined and dcb_vars.dcb_buffer %}
  {% for buf in dcb_vars.dcb_buffer %}
    {% if buf.name is defined and buf.name %}
      {% if buf.state is defined and buf.state == "absent" %}
no dcb-buffer-threshold {{ buf.name }}
      {% else %}
dcb-buffer-threshold {{ buf.name }}
        {% if buf.description is defined and buf.description %}
 description {{ buf.description }}
        {% elif buf.description is defined and not buf.description %}
 no description
        {% endif %}

        {% if buf.priority_params is defined and buf.priority_params %}
          {% for params in buf.priority_params %}
            {% if params.pgid is defined and params.pgid >= 0 %}
              {% if params.state is defined and params.state == "absent" %}
                {% if params.buffer_size is defined and params.buffer_size %}
                  {% if params.pause is defined and params.pause %}
                    {% if params.resume is defined and params.resume %}
 no priority {{ params.pgid }} buffer-size {{ params.buffer_size }} pause-threshold {{ params.pause }} resume-offset {{ params.resume }}
                    {% else %}
 no priority {{ params.pgid }} buffer-size {{ params.buffer_size }} pause-threshold {{ params.pause }}
                    {% endif %}
                  {% else %}
                    {% if params.resume is defined and params.resume %}
 no priority {{ params.pgid }} buffer-size {{ params.buffer_size }} resume-offset {{ params.resume }}
                    {% else %}
 no priority {{ params.pgid }} buffer-size {{ params.buffer_size }}
                    {% endif %}
                  {% endif %}
                {% else %}
                  {% if params.pause is defined and params.pause %}
                    {% if params.resume is defined and params.resume %}
 no priority {{ params.pgid }} pause-threshold {{ params.pause }} resume-offset {{ params.resume }}
                    {% else %}
 no priority {{ params.pgid }} pause-threshold {{ params.pause }}
                    {% endif %}
                  {% else %}
                    {% if params.resume is defined and params.resume %}
 no priority {{ params.pgid }} resume-offset {{ params.resume }}
                    {% else %}
 no priority {{ params.pgid }}
                    {% endif %}
                  {% endif %}
                {% endif %}                  
              {% else %}
                {% if params.buffer_size is defined and params.buffer_size %}
                  {% if params.pause is defined and params.pause %}
                    {% if params.resume is defined and params.resume %}
 priority {{ params.pgid }} buffer-size {{ params.buffer_size }} pause-threshold {{ params.pause }} resume-offset {{ params.resume }}
                    {% else %}
 priority {{ params.pgid }} buffer-size {{ params.buffer_size }} pause-threshold {{ params.pause }}
                    {% endif %}
                  {% else %}
                    {% if params.resume is defined and params.resume %}
 priority {{ params.pgid }} buffer-size {{ params.buffer_size }} resume-offset {{ params.resume }}
                    {% else %}
 priority {{ params.pgid }} buffer-size {{ params.buffer_size }}
                    {% endif %}
                  {% endif %}
                {% else %}
                  {% if params.pause is defined and params.pause %}
                    {% if params.resume is defined and params.resume %}
 priority {{ params.pgid }} pause-threshold {{ params.pause }} resume-offset {{ params.resume }}
                    {% else %}
 priority {{ params.pgid }} pause-threshold {{ params.pause }}
                    {% endif %}
                  {% else %}
                    {% if params.resume is defined and params.resume %}
 priority {{ params.pgid }} resume-offset {{ params.resume }}
                    {% endif %}
                  {% endif %}
                {% endif %}
              {% endif %}
            {% endif %}
          {% endfor %}
        {% endif %}
        {% if buf.intf is defined and buf.intf %}
          {% for intf in buf.intf %}
            {% if intf.name is defined and intf.name %}
interface {{ intf.name }}
              {% if intf.state is defined and intf.state == "absent" %}
 no dcb-policy buffer-threshold {{ buf.name }}
              {% else %}
 dcb-policy buffer-threshold {{ buf.name }}
              {% endif %}
            {% endif %}
          {% endfor %}
        {% endif %}

      {% endif %}
    {% endif %}
  {% endfor %}
{% endif %}
{% endif %}