913a62c33c
Just a simple change to make sonic's user life a little bit easier. Displaying the multiple elements of config_db.json in an orderly fashion allows a more intuitive user-experience. For this change i'm simply intercepting the config-state that is about to be dumped to config_db.json, and i'm placing it in an ordered-dictionary, so that information is pushed to file in natural/alphanumerical ordering. Example: admin@lnos-x1-a-csw01:~$ sudo sonic-cfggen -m /etc/sonic/minigraph.xml --print-data { ... "PORT": { "Ethernet0": { "alias": "Eth1/1", "lanes": "65" }, "Ethernet1": { "alias": "Eth1/2", "lanes": "66" }, "Ethernet2": { "alias": "Eth1/3", "lanes": "67" }, "Ethernet3": { "alias": "Eth1/4", "lanes": "68" }, "Ethernet4": { "alias": "Eth2/1", "lanes": "69" }, ... ... "INTERFACE": { "Ethernet0|10.0.0.0/31": {}, "Ethernet1|10.0.0.2/31": {}, "Ethernet2|10.0.0.4/31": {}, "Ethernet3|10.0.0.6/31": {}, "Ethernet4|10.0.0.8/31": {},
48 lines
1.1 KiB
Django/Jinja
48 lines
1.1 KiB
Django/Jinja
FROM docker-base
|
|
|
|
## Make apt-get non-interactive
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
RUN apt-get update
|
|
|
|
# Dependencies for sonic-cfggen
|
|
RUN apt-get install -y python-lxml python-yaml python-bitarray python-pip python-dev python-natsort
|
|
|
|
RUN pip install --upgrade pip
|
|
|
|
RUN pip install netaddr ipaddr jinja2 pyangbind==0.5.10
|
|
|
|
{% if docker_config_engine_debs.strip() %}
|
|
COPY \
|
|
{% for deb in docker_config_engine_debs.split(' ') -%}
|
|
debs/{{ deb }}{{' '}}
|
|
{%- endfor -%}
|
|
debs/
|
|
{%- endif -%}
|
|
|
|
{% if docker_config_engine_debs.strip() %}
|
|
RUN dpkg -i \
|
|
{% for deb in docker_config_engine_debs.split(' ') -%}
|
|
debs/{{ deb }}{{' '}}
|
|
{%- endfor %}
|
|
{%- endif -%}
|
|
|
|
{% if docker_config_engine_whls.strip() %}
|
|
COPY \
|
|
{% for whl in docker_config_engine_whls.split(' ') -%}
|
|
python-wheels/{{ whl }}{{' '}}
|
|
{%- endfor -%}
|
|
python-wheels/
|
|
{%- endif -%}
|
|
|
|
{% if docker_config_engine_whls.strip() %}
|
|
RUN pip install \
|
|
{% for whl in docker_config_engine_whls.split(' ') -%}
|
|
python-wheels/{{ whl }}{{' '}}
|
|
{%- endfor %}
|
|
{%- endif -%}
|
|
|
|
## Clean up
|
|
RUN apt-get remove -y python-pip python-dev; apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
|
RUN rm -rf /debs /python-wheels
|