Commit Graph

30 Commits

Author SHA1 Message Date
dependabot[bot]
2a467f8eb4 Bump lxml from 4.6.3 to 4.6.5 in /src/sonic-config-engine (#9522)
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.3 to 4.6.5.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.3...lxml-4.6.5)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
2021-12-13 20:20:48 -08:00
Stepan Blyshchak
5361794ffd [sonic-cfggen] remove lazy_re workaround due to many optimizations done (#8226)
lazy_re had an issue when importing sonic-cfggen in another application that
uses re.search(). There is no much improvement of lazy_re today after many 
other good optimization work done for sonic-cfggen. It served as a quick 
temporary solution.

Some quick test for fast-reboot and warm-reboot done on top of 201911 branch:

Fast-reboot: from ASIC reset to ports in up state:
with lazy_re: 18 sec
without lazy_re: 18 sec

Warm-reboot: LAG restoration time:
with lazy_re: 73 sec
without lazy_re: 72 sec

So, there is no real optimization since the number of sonic-cfggen calls is greatly 
reduced in latest SONiC. This means it is time to revert this change.

Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
2021-07-24 05:35:09 -07:00
thomas.cappleman@metaswitch.com
101b1fa08b [build]: Fix sonic-cfggen contextlib err (#7996)
A recent version of contextlib2 (https://pypi.org/project/contextlib2/21.6.0/#history) has broken Python2 compatibility, so the version picked up by netaddr when using Python2 must be specified, or else builds fail

Co-authored-by: Tom Zhu <tom.zhu@metaswitch.com>
2021-06-28 17:15:03 -07:00
arlakshm
4d07bbbec6 [Yang][cfggen] update sonic-cfggen to generate config_db from Yang data (#7712)
Why I did it
This PR adds changes in sonic-config-engine to consume configuration data in SONiC Yang schema and generate config_db entries

How I did it
Add a new file sonic_yang_cfg_generator .
This file has the functions to

parse yang data json and convert them in config_db json format.
Validate the converted config_db entries to make sure all the dependencies and constraints are met.
Add a new option -Y to the sonic-cfggen command for this purpose

Add unit tests

This capability is support only in sonic-config-engine Python3 package only
2021-06-10 12:03:33 -07:00
dependabot[bot]
247ac7ba17 Bump lxml from 4.6.2 to 4.6.3 in /src/sonic-config-engine (#7122)
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.2 to 4.6.3.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.2...lxml-4.6.3)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-27 11:54:38 -07:00
Qi Luo
1c8d5ec500 Bump pyyaml from 5.3.1 to 5.4.1 (#6511)
RCE resolved in new version https://github.com/yaml/pyyaml/issues/420
2021-01-28 10:46:56 -08:00
dependabot[bot]
72b635083d Bump lxml from 4.6.1 to 4.6.2 in /src/sonic-config-engine (#6385)
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.1...lxml-4.6.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-08 15:47:29 -08:00
Joe LeVeque
e39cc018c8 [sonic-config-engine] Pin 'importlib-resources' package to v3.3.1 for Python 2 (#6288)
importlib-resources v4.0.0 was released today (2020-12-23) and drops support for Python 2. This caused the sonic-config-engine Python 2 wheel build to fail.

Reference: https://pypi.org/project/importlib-resources/

Pin 'importlib-resources' package to v3.3.1 for Python 2
Unrelated: remove pinned version of zipp for sonic-bgpcfgd because we no longer build a Python 2 version of that package
2020-12-23 18:00:31 -08:00
Joe LeVeque
9e34003136 [sonic-config-engine] Clean up dependencies, pin versions; install Python 3 package in Buster container (#5656)
To clean up the image build procedure, and let setuptools/pip[3] implicitly install Python dependencies. Also use ipaddress package instead of ipaddr.
2020-10-26 13:48:50 -07:00
Tamer Ahmed
110f7b7817 [cfggen] Build Python 2 And Python 3 Wheel Packages
This builds Python 2&3 wheel packages for sonic-cfggen script.

singed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-09-30 07:07:43 -07:00
Tamer Ahmed
ec11308a66 [cfggen] Conform With Python 3 Syntax (#5154)
Preparing sonic-cfggen for migration to Python 3.

signed-off-by: Tamer Ahmed <tamer.ahmed@microsoft.com>
2020-08-19 09:29:40 -07:00
Joe LeVeque
966ac85e24 [sonic-config-engine] Remove sonic_device_util.py (#5130)
sonic_device_util.py has been deprecated in favor of the sonic-py-common package. All related functionality has been moved there.
2020-08-09 21:26:54 -07:00
Joe LeVeque
3b89e5d467 [Python] Migrate applications/scripts to import sonic-py-common package (#5043)
As part of consolidating all common Python-based functionality into the new sonic-py-common package, this pull request:
1. Redirects all Python applications/scripts in sonic-buildimage repo which previously imported sonic_device_util or sonic_daemon_base to instead import sonic-py-common, which was added in https://github.com/Azure/sonic-buildimage/pull/5003
2. Replaces all calls to `sonic_device_util.get_platform_info()` to instead call `sonic_py_common.get_platform()` and removes any calls to `sonic_device_util.get_machine_info()` which are no longer necessary (i.e., those which were only used to pass the results to `sonic_device_util.get_platform_info()`.
3. Removes unused imports to the now-deprecated sonic-daemon-base package and sonic_device_util.py module

This is the next step toward resolving https://github.com/Azure/sonic-buildimage/issues/4999

Also reverted my previous change in which device_info.get_platform() would first try obtaining the platform ID string from Config DB and fall back to gathering it from machine.conf upon failure because this function is called by sonic-cfggen before the data is in the DB, in which case, the db_connect() call will hang indefinitely, which was not the behavior I expected. As of now, the function will always reference machine.conf.
2020-08-03 11:43:12 -07:00
Stepan Blyshchak
064689d442 [sonic-cfggen] optimize sonic-cfggen startup (#3658)
* [sonic-cfggen] optimize execution time

a lot of template rendering causes switch to start longer because jinja2
needs to parse them. Introducing RedisBytecodeCache to store parsed buckets of
internal template bytecode to speedup same template rendering during start

* [sonic-cfggen] do lazy regexp compilation to speedup sonic-cfggen

* [sonic-cfggen] address pep8 related comments

Signed-off-by: Stepan Blyschak <stepanb@mellanox.com>
2019-10-31 09:17:29 -07:00
Kebo Liu
aa90cae1be [sonic-cfggen] fix name conflict between sonic_platform package and sonic_platform.py (#2875)
* fix name conflict between sonic_platfrom package and sonic_platform.py

* update sonic-utility submodule to pickup lastest fix

* Revert "update sonic-utility submodule to pickup lastest fix"

This reverts commit f66aa99738e06373bc2e141f420eab71839ff4e8.

* update sonic-utility sub module
2019-05-15 16:22:56 -07:00
Taoyu Li
ea28f3aa44 [sonic-cfggen] Add support to generate sample t1 config (#2039)
* [sonic-cfggen] Add support to generate sample t1 config

* Fix typo

* Fix space issue

* Add list of preset messages in help message

* Utilize choice support of argparse

* Fix missing module in setup.py
2018-09-15 22:15:02 -07:00
Qi Luo
d117172b23 sonic-cfggen supports hwsku parameter (#1631) 2018-04-24 16:01:17 -07:00
Qi Luo
f403c1be04 [cfggen]: Fix build by fixing pyangbind version (#1633)
Signed-off-by: Qi Luo <qiluo-msft@users.noreply.github.com>
2018-04-23 00:09:26 -07:00
Oleksandr Ivantsiv
29f67ebe58 [acl-loader]: acl-loader integration. (#1000)
* [acl-loader]: acl-loader integration.

acl-loader was inplemented based on translate_acl source code. acl-loader
can't be tested with unittest. Same testcases will be covered with testbed tests.

- Remove translate_acl utility and tests.
- Remove mirror template.
- Do not run ACL rules and mirror configuration generators.
- Adopt minigraph parser to work with acl-loader.

* Update sonic-swss-common and sonic-swss submodules.

Enable ACL dynamic config feature.

* Update sonic-utilities submodule.

Include fix for acl-loader incremental update command.

* [sonic-cfggen]: Add test for everflow cfggen configuration.
2017-11-02 15:09:27 -07:00
Taoyu Li
8b8b8a130f [cfg engine] Separate portconfig.py as individual module for port_config.ini parsing (#1072)
Move port_config.ini related parsing code out of minigraph.py and create an independent portconfig.py.
Add support to multiple optional fields according to Porting Guide
2017-10-24 10:56:09 -07:00
sihuihan88
ec73735d21 [sonic-cfggen]: Move get_machine_info function to sonic_platform.py (#489)
* Move get_machine_info to lib
* Add get platform info API
* Create sonic_platform.py

Signed-off-by: Sihui Han <sihan@microsoft.com>
2017-04-11 13:04:21 -07:00
Shuotian Cheng
b010e23725 [sonic-cfggen]: Remove deprecated platform folder and update related files (#429)
Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-23 16:30:37 -07:00
Shuotian Cheng
7b7a61693a [sonic-cfggen]: Add -p option and add teamd.j2 test (#414)
- Add -p --port-config option to feed sonic-cfggen with port_config.ini
  file when necessary.
- Update minigraph.py file to accept the -p option
- Add test_j2files.py test to test config.sh and all .j2 templates
  * Currently test_teamd is added to test both the config.sh and teamd.j2
    file works well with the t0 sample minigraph and sample port config
    file
  * The sample output is added to the folder sample_output for comparison

Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
2017-03-17 21:38:20 -07:00
Taoyu Li
3643281594 [cfggen] Add tool to translate openconfig acl into sonic format (#388)
* Build sonic-config-engine as whl instead of deb package
* Add tool to translate openconfig acl into sonic format
2017-03-17 14:51:42 -07:00
Taoyu Li
e0fd12aa23 [cfggen] Add basic functional test (#375)
[cfggen] Add basic functional test
2017-03-17 11:07:12 -07:00
Taoyu Li
2d0b41a340 Combine alias_map.json with port_config.ini (#304)
* Combine alias_map.json with port_config.ini
2017-02-17 13:03:42 -08:00
Taoyu Li
60e1fc3c98 ONEImage - Read all platform dependent information from sonic-config-engine (#238)
Read all platform dependent information from sonic-config-engine
2017-02-02 20:34:34 -08:00
Taoyu Li
e87498d16d Add platform config for 7050 and 6100 (#212)
* Add platform config for 7050 and 6100

* allow certain platform to have no sensors.conf file in sonic-cfggen
2017-01-25 18:18:25 -08:00
Taoyu Li
4fe1bdcf87 sonic-cfggen with sonicv2 dockers (#190)
Add a sonic-config-engine to help generate config file based on minigraph and other data on runtime. Modify fpm, teamd, lldp, snmp, and platform-monitor docker to use sonic-config-engine to generate config in docker upon load.
2017-01-19 20:56:26 -08:00
Taoyu Li
ed9c8fbe8e add sonic config render engine (#178)
add sonic config render engine
2017-01-06 18:19:42 -08:00