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

Schemas as classes #4178

Draft
wants to merge 8 commits into
base: devel
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ repos:
language: python
files: python-avd/pyavd/[a-z_]+/schema
pass_filenames: false
additional_dependencies: ['deepmerge>=1.1.0', 'PyYAML>=6.0.0', 'pydantic>=2.3.0', 'jsonschema>=4.10.3', 'referencing>=0.35.0']
additional_dependencies: ['deepmerge>=1.1.0', 'PyYAML>=6.0.0', 'pydantic>=2.3.0', 'jsonschema>=4.10.3', 'referencing>=0.35.0', 'isort']

- id: templates
name: Precompile Jinja2 templates
Expand All @@ -212,6 +212,13 @@ repos:
pass_filenames: false
additional_dependencies: ['Jinja2>=3.0.0', 'cryptography>=38.0.4', 'deepmerge>=1.1.0']

- id: schemas
name: Build Pydantic models from AVD Schemas
entry: sh -c 'exec python-avd/scripts/build-pydantic-models.py'
language: system
files: ansible_collections/arista/avd/roles/[a-z_]+/schemas
pass_filenames: false

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.41.0
hooks:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -706,14 +706,14 @@ The following underlay routing protocols are supported:
- EBGP (default for l3ls-evpn)
- OSPF.
- ISIS.
- ISIS-SR*.
- ISIS-LDP*.
- ISIS-SR-LDP*.
- OSPF-LDP*.
- none**.
- ISIS-SR¹.
- ISIS-LDP¹.
- ISIS-SR-LDP¹.
- OSPF-LDP¹.
- none².

\* Only supported with core_interfaces data model.<br />
\** For use with design type "l2ls" or other designs where there is no requirement for a routing protocol for underlay and/or overlay on l3 devices.
¹ Only supported with core_interfaces data model.<br />
² For use with design type "l2ls" or other designs where there is no requirement for a routing protocol for underlay and/or overlay on l3 devices.

??? note "Details on `enable_trunk_groups`"
Enabling the use of trunk groups will change the behavior of several components in AVD.
Expand Down Expand Up @@ -798,12 +798,12 @@ The following overlay routing protocols are supported:

- EBGP (default for l3ls-evpn)
- IBGP (only with OSPF or ISIS variants in underlay)
- none*
- HER (Head-End Replication)**
- none¹
- HER (Head-End Replication)²
- CVX (CloudVision eXchange)

\* For use with design type "l2ls" or other designs where there is no requirement for a routing protocol for underlay and/or overlay on l3 devices.<br />
\** By setting `overlay_routing_protocol:HER`, `eos_designs` will configure static VXLAN flood-lists instead of using a dynamic overlay protocol.
¹ For use with design type "l2ls" or other designs where there is no requirement for a routing protocol for underlay and/or overlay on l3 devices.<br />
² By setting `overlay_routing_protocol:HER`, `eos_designs` will configure static VXLAN flood-lists instead of using a dynamic overlay protocol.

--8<--
roles/eos_designs/docs/tables/overlay-settings.md
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ ignore-paths=
ansible_collections,
# The cv_client api is generated from proto files, so it should not be linted.
python-avd/pyavd/_cv/api
python-avd/pyavd/_eos_cli_config_gen/schema/eos_cli_config_gen.py
python-avd/pyavd/_eos_designs/schema/eos_designs.py

[MESSAGES CONTROL]
disable=
Expand Down
9 changes: 8 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,14 @@
# Black has been replaced with Ruff.
# This section should be removed later, but kept here to avoid IDE extensions from messing up the code.
line-length = 160
force-exclude = '''python-avd/pyavd/_cv/api/.*'''

force-exclude = '''
/(
python-avd/pyavd/_cv/api/\.\*
| python-avd/pyavd/_eos_designs/_schema/eos_designs\.py
| python-avd/pyavd/_eos_cli_config_gen/_schema/eos_cli_config_gen\.py
)/
'''

[tool.isort]
# Isort has been replaced with Ruff.
Expand Down
Loading
Loading