annet 3.9.2__tar.gz → 3.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of annet might be problematic. Click here for more details.
- {annet-3.9.2/annet.egg-info → annet-3.10.0}/PKG-INFO +1 -1
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/devdb/data/devdb.json +8 -6
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/policy.py +3 -8
- {annet-3.9.2 → annet-3.10.0}/annet/tracing.py +56 -8
- {annet-3.9.2 → annet-3.10.0/annet.egg-info}/PKG-INFO +1 -1
- {annet-3.9.2 → annet-3.10.0}/AUTHORS +0 -0
- {annet-3.9.2 → annet-3.10.0}/LICENSE +0 -0
- {annet-3.9.2 → annet-3.10.0}/MANIFEST.in +0 -0
- {annet-3.9.2 → annet-3.10.0}/README.md +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/fetchers/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/fetchers/stub/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/fetchers/stub/fetcher.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/file/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/file/provider.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/adapter.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/client.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/manufacturer.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/query.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/status_client.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/storage_base.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/common/storage_opts.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/provider.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v24/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v24/models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v24/storage.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v37/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v37/models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v37/storage.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v41/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v41/models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v41/storage.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v42/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v42/models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/adapters/netbox/v42/storage.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annet.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/command.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/diff.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/errors.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/filter_acl.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/jsontools.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/lib.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/db.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/devdb/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/views/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/views/dump.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/netdev/views/hardware.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/output.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/patching.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/acl.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/deploying.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/ordering.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/platform.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rbparser/syntax.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rulebook/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/rulebook/common.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/annlib/types.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/api/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/argparse.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/bgp_models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/cli.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/cli_args.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/configs/context.yml +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/configs/logging.yaml +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/connectors.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/deploy.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/deploy_ui.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/diff.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/executor.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/filtering.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/gen.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/base.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/common/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/common/initial.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/entire.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/exceptions.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/jsonfragment.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/partial.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/perf.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/ref.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/generators/result.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/hardware.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/implicit.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/lib.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/basemodel.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/device_models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/executor.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/match_args.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/models_converter.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/peer_models.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/port_processor.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/mesh/registry.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/output.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/parallel.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/patching.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/reference.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/action.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/condition.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/match_builder.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/policy.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/result.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/routemap.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl/statement_builder.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/aspath.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/community.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/cumulus_frr.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/entities.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/execute.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/prefix_lists.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rpl_generators/rd.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/arista/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/arista/aaa.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/arista/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/aruba/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/aruba/ap_env.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/aruba/misc.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/b4com/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/b4com/file.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/b4com/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/cisco/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/cisco/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/cisco/misc.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/cisco/vlandb.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/common.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/deploying.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/generic/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/generic/misc.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/aaa.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/bgp.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/misc.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/huawei/vlandb.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/juniper/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/juniper/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/nexus/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/nexus/iface.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/patching.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/routeros/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/routeros/file.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/arista.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/arista.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/arista.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/aruba.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/aruba.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/aruba.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/b4com.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/b4com.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/b4com.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/cisco.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/cisco.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/cisco.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/huawei.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/huawei.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/huawei.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/iosxr.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/iosxr.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/iosxr.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/juniper.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/juniper.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/nexus.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/nexus.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/nexus.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/nokia.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/optixtrans.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/optixtrans.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/optixtrans.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/pc.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/pc.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/pc.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/ribbon.deploy +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/ribbon.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/routeros.order +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/rulebook/texts/routeros.rul +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/storage.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/text_term_format.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/types.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/base.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/arista.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/aruba.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/b4com.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/cisco.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/h3c.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/huawei.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/iosxr.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/juniper.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/nexus.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/nokia.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/optixtrans.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/pc.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/ribbon.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/library/routeros.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/registry.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet/vendors/tabparser.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet.egg-info/SOURCES.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet.egg-info/dependency_links.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet.egg-info/entry_points.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet.egg-info/requires.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet.egg-info/top_level.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/example/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/example/hostname.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/example/lldp.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/mesh_example/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/mesh_example/bgp.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/mesh_example/mesh_logic.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/rpl_example/__init__.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/rpl_example/generator.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/rpl_example/items.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/rpl_example/mesh.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/annet_generators/rpl_example/route_policy.py +0 -0
- {annet-3.9.2 → annet-3.10.0}/requirements.txt +0 -0
- {annet-3.9.2 → annet-3.10.0}/setup.cfg +0 -0
- {annet-3.9.2 → annet-3.10.0}/setup.py +0 -0
|
@@ -96,21 +96,21 @@
|
|
|
96
96
|
"Juniper.PTX": " PTX",
|
|
97
97
|
|
|
98
98
|
"Arista": "^[Aa]rista",
|
|
99
|
-
"Arista.A7368": " 7368",
|
|
99
|
+
"Arista.A7368": " (DCS-)?7368",
|
|
100
100
|
"Arista.A7368.X4": "X4",
|
|
101
|
-
"Arista.A7280": " DCS-7280",
|
|
102
|
-
"Arista.A7260": " DCS-7260",
|
|
101
|
+
"Arista.A7280": " (DCS-)?7280",
|
|
102
|
+
"Arista.A7260": " (DCS-)?7260",
|
|
103
103
|
"Arista.A7260.CX3": "CX3",
|
|
104
|
-
"Arista.A7050": " 7050",
|
|
104
|
+
"Arista.A7050": " (DCS-)?7050",
|
|
105
105
|
"Arista.A7050.SX3": "SX3",
|
|
106
|
-
"Arista.A7060": " DCS-7060",
|
|
106
|
+
"Arista.A7060": " (DCS-)?7060",
|
|
107
107
|
"Arista.A7060.DX4": "DX4",
|
|
108
108
|
|
|
109
109
|
"Nokia": "^[Nn]okia",
|
|
110
110
|
"Nokia.NS7750": " 7750",
|
|
111
111
|
"Nokia.SR_1s": "SR-1s",
|
|
112
112
|
|
|
113
|
-
"PC": "^(PC|pc|[Mm]ellanox SN|[Ee]dge-?[Cc]ore|[Mm]oxa|NVIDIA|Nebius|[Aa]sterfusion CX|[Uu]fi[Ss]pace)",
|
|
113
|
+
"PC": "^(PC|pc|[Mm]ellanox SN|[Ee]dge-?[Cc]ore|[Mm]oxa|NVIDIA|Nebius|[Aa]sterfusion CX|[Uu]fi[Ss]pace|(VERTIV )?[Aa]vocent)",
|
|
114
114
|
|
|
115
115
|
"PC.Whitebox": "([Mm]ellanox SN|[Ee]dge-?[Cc]ore|NVIDIA|[Aa]sterfusion CX|[Uu]fi[Ss]pace)",
|
|
116
116
|
"PC.Whitebox.Mellanox": "[Mm]ellanox",
|
|
@@ -145,6 +145,8 @@
|
|
|
145
145
|
"PC.Whitebox.Ufispace.S.S9300.S9321_64EO": " S9321-64EO",
|
|
146
146
|
"PC.Nebius": "^Nebius",
|
|
147
147
|
"PC.Nebius.NB-E-BR-DCU-AST2600": "^Nebius NB-E-BR-DCU-AST2600",
|
|
148
|
+
"PC.Avocent": " [Aa]vocent",
|
|
149
|
+
"PC.Avocent.ACS8000": " (ACS|acs)8000",
|
|
148
150
|
|
|
149
151
|
"RouterOS": "^([Rr]outer[Oo][Ss]|[Mm]ikro[Tt]ik)",
|
|
150
152
|
|
|
@@ -696,16 +696,11 @@ class RoutingPolicyGenerator(PartialGenerator, ABC):
|
|
|
696
696
|
else:
|
|
697
697
|
yield "set", "as-path match all replacement", *action.value.set
|
|
698
698
|
|
|
699
|
+
if action.value.prepend:
|
|
700
|
+
yield "set", "as-path prepend", *action.value.prepend
|
|
699
701
|
if action.value.expand_last_as:
|
|
700
|
-
|
|
701
|
-
else:
|
|
702
|
-
last_as_suffix = ()
|
|
702
|
+
yield "set", "as-path prepend last-as", action.value.expand_last_as
|
|
703
703
|
|
|
704
|
-
if action.value.prepend:
|
|
705
|
-
for path_item in action.value.prepend:
|
|
706
|
-
yield "set", "as-path prepend", path_item, *last_as_suffix
|
|
707
|
-
else:
|
|
708
|
-
yield "set", "as-path prepend", *last_as_suffix
|
|
709
704
|
if action.value.expand:
|
|
710
705
|
raise RuntimeError("as_path.expand is not supported for arista")
|
|
711
706
|
if action.value.delete:
|
|
@@ -6,7 +6,6 @@ from typing import Optional, Type, Union
|
|
|
6
6
|
|
|
7
7
|
from annet.connectors import CachedConnector
|
|
8
8
|
|
|
9
|
-
|
|
10
9
|
MinDurationT = Optional[Union[str, int]]
|
|
11
10
|
|
|
12
11
|
|
|
@@ -145,9 +144,9 @@ def function(arg=None, /, **outer_kwargs):
|
|
|
145
144
|
|
|
146
145
|
def contextmanager(arg=None, /, **outer_kwargs):
|
|
147
146
|
def decorator(cls_or_func):
|
|
148
|
-
|
|
149
|
-
cache = None
|
|
147
|
+
cache = None
|
|
150
148
|
|
|
149
|
+
if inspect.isfunction(cls_or_func):
|
|
151
150
|
@contextlib.contextmanager
|
|
152
151
|
@wraps(cls_or_func)
|
|
153
152
|
def wrapper(*args, **kwargs):
|
|
@@ -159,12 +158,61 @@ def contextmanager(arg=None, /, **outer_kwargs):
|
|
|
159
158
|
|
|
160
159
|
return wrapper
|
|
161
160
|
else:
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
original_enter = cls_or_func.__enter__
|
|
162
|
+
original_exit = cls_or_func.__exit__
|
|
163
|
+
|
|
164
|
+
@wraps(original_enter)
|
|
165
|
+
def one_shot_enter(*args, **kwargs):
|
|
166
|
+
"""Wrap after first call, tracing_connector was set up"""
|
|
167
|
+
nonlocal cache
|
|
168
|
+
if cache is None:
|
|
169
|
+
cls_or_func.__enter__ = original_enter
|
|
170
|
+
cls_or_func.__exit__ = original_exit
|
|
171
|
+
cache = tracing_connector.get().contextmanager(cls_or_func, **outer_kwargs)
|
|
172
|
+
return cache.__enter__(*args, **kwargs) # pylint: disable=unnecessary-dunder-call
|
|
173
|
+
|
|
174
|
+
@wraps(original_exit)
|
|
175
|
+
def one_shot_exit(*args, **kwargs):
|
|
176
|
+
nonlocal cache
|
|
177
|
+
return cache.__exit__(*args, **kwargs)
|
|
178
|
+
|
|
179
|
+
setattr(cls_or_func, "__enter__", one_shot_enter)
|
|
180
|
+
setattr(cls_or_func, "__exit__", one_shot_exit)
|
|
166
181
|
|
|
167
|
-
setattr(cls_or_func, "__enter__", enter)
|
|
168
182
|
return cls_or_func
|
|
169
183
|
|
|
170
184
|
return decorator if arg is None else decorator(arg)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def class_methods(arg=None, /, **outer_kwargs):
|
|
188
|
+
def decorator(cls):
|
|
189
|
+
has_enter, has_exit = False, False
|
|
190
|
+
|
|
191
|
+
for name, attr in inspect.getmembers(cls, lambda x: (
|
|
192
|
+
inspect.isroutine(x)
|
|
193
|
+
and not inspect.ismethoddescriptor(x)
|
|
194
|
+
and not inspect.isbuiltin(x)
|
|
195
|
+
)):
|
|
196
|
+
if getattr(attr, "_disable_class_methods", False):
|
|
197
|
+
continue
|
|
198
|
+
if name == "__enter__":
|
|
199
|
+
has_enter = True
|
|
200
|
+
elif name == "__exit__":
|
|
201
|
+
has_exit = True
|
|
202
|
+
else:
|
|
203
|
+
method = function(**outer_kwargs)(attr)
|
|
204
|
+
if isinstance(inspect.getattr_static(cls, name), staticmethod):
|
|
205
|
+
method = staticmethod(method)
|
|
206
|
+
setattr(cls, name, method)
|
|
207
|
+
|
|
208
|
+
if all((has_enter, has_exit)):
|
|
209
|
+
cls = contextmanager(**outer_kwargs)(cls)
|
|
210
|
+
|
|
211
|
+
return cls
|
|
212
|
+
|
|
213
|
+
return decorator if arg is None else decorator(arg)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
def disable_class_methods(func):
|
|
217
|
+
setattr(func, "_disable_class_methods", True)
|
|
218
|
+
return func
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|