annet 3.1.0__tar.gz → 3.1.2__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.1.0/annet.egg-info → annet-3.1.2}/PKG-INFO +1 -1
- annet-3.1.2/annet/vendors/library/arista.py +30 -0
- annet-3.1.2/annet/vendors/library/aruba.py +30 -0
- annet-3.1.2/annet/vendors/library/b4com.py +27 -0
- annet-3.1.2/annet/vendors/library/cisco.py +30 -0
- annet-3.1.2/annet/vendors/library/h3c.py +27 -0
- annet-3.1.2/annet/vendors/library/huawei.py +30 -0
- annet-3.1.2/annet/vendors/library/iosxr.py +30 -0
- annet-3.1.2/annet/vendors/library/juniper.py +33 -0
- annet-3.1.2/annet/vendors/library/nexus.py +27 -0
- annet-3.1.2/annet/vendors/library/nokia.py +30 -0
- annet-3.1.2/annet/vendors/library/optixtrans.py +27 -0
- annet-3.1.2/annet/vendors/library/pc.py +27 -0
- annet-3.1.2/annet/vendors/library/ribbon.py +30 -0
- annet-3.1.2/annet/vendors/library/routeros.py +27 -0
- {annet-3.1.0 → annet-3.1.2/annet.egg-info}/PKG-INFO +1 -1
- {annet-3.1.0 → annet-3.1.2}/annet.egg-info/SOURCES.txt +15 -0
- annet-3.1.2/annet_generators/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/AUTHORS +0 -0
- {annet-3.1.0 → annet-3.1.2}/LICENSE +0 -0
- {annet-3.1.0 → annet-3.1.2}/MANIFEST.in +0 -0
- {annet-3.1.0 → annet-3.1.2}/README.md +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/fetchers/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/fetchers/stub/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/fetchers/stub/fetcher.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/file/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/file/provider.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/adapter.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/client.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/manufacturer.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/query.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/status_client.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/storage_base.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/common/storage_opts.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/provider.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v24/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v24/models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v24/storage.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v37/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v37/models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v37/storage.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v41/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v41/models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v41/storage.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v42/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v42/models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/adapters/netbox/v42/storage.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annet.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/command.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/diff.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/errors.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/filter_acl.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/jsontools.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/lib.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/db.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/devdb/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/devdb/data/devdb.json +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/views/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/views/dump.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/netdev/views/hardware.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/output.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/patching.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/acl.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/deploying.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/ordering.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/platform.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rbparser/syntax.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rulebook/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/rulebook/common.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/tabparser.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/annlib/types.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/api/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/argparse.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/bgp_models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/cli.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/cli_args.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/configs/context.yml +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/configs/logging.yaml +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/connectors.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/deploy.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/deploy_ui.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/diff.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/executor.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/filtering.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/gen.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/base.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/common/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/common/initial.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/entire.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/exceptions.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/jsonfragment.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/partial.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/perf.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/ref.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/generators/result.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/hardware.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/implicit.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/lib.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/basemodel.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/device_models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/executor.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/match_args.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/models_converter.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/peer_models.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/port_processor.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/mesh/registry.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/output.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/parallel.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/patching.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/reference.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/action.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/condition.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/match_builder.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/policy.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/result.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/routemap.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl/statement_builder.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/aspath.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/community.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/cumulus_frr.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/entities.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/execute.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/policy.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/prefix_lists.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rpl_generators/rd.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/arista/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/arista/aaa.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/arista/iface.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/aruba/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/aruba/ap_env.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/aruba/misc.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/b4com/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/b4com/file.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/b4com/iface.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/cisco/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/cisco/iface.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/cisco/misc.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/cisco/vlandb.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/common.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/deploying.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/aaa.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/bgp.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/iface.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/misc.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/huawei/vlandb.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/juniper/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/nexus/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/nexus/iface.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/patching.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/routeros/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/routeros/file.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/arista.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/arista.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/arista.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/aruba.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/aruba.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/aruba.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/b4com.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/b4com.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/b4com.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/cisco.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/cisco.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/cisco.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/huawei.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/huawei.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/huawei.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/iosxr.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/iosxr.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/iosxr.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/juniper.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/juniper.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/nexus.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/nexus.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/nexus.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/nokia.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/optixtrans.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/optixtrans.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/optixtrans.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/pc.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/pc.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/pc.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/ribbon.deploy +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/ribbon.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/routeros.order +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/rulebook/texts/routeros.rul +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/storage.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/text_term_format.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/tracing.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/types.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/vendors/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/vendors/base.py +0 -0
- {annet-3.1.0/annet_generators → annet-3.1.2/annet/vendors/library}/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet/vendors/registry.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet.egg-info/dependency_links.txt +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet.egg-info/entry_points.txt +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet.egg-info/requires.txt +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet.egg-info/top_level.txt +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/example/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/example/hostname.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/example/lldp.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/mesh_example/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/mesh_example/bgp.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/mesh_example/mesh_logic.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/rpl_example/__init__.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/rpl_example/generator.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/rpl_example/items.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/rpl_example/mesh.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/annet_generators/rpl_example/route_policy.py +0 -0
- {annet-3.1.0 → annet-3.1.2}/requirements.txt +0 -0
- {annet-3.1.0 → annet-3.1.2}/setup.cfg +0 -0
- {annet-3.1.0 → annet-3.1.2}/setup.py +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import AristaFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class AristaVendor(AbstractVendor):
|
|
9
|
+
NAME = "arista"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Arista"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Arista")
|
|
21
|
+
|
|
22
|
+
def svi_name(self, num: int) -> str:
|
|
23
|
+
return f"Vlan{num}"
|
|
24
|
+
|
|
25
|
+
def make_formatter(self, **kwargs) -> AristaFormatter:
|
|
26
|
+
return AristaFormatter(**kwargs)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def exit(self) -> str:
|
|
30
|
+
return "exit"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import ArubaFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class ArubaVendor(AbstractVendor):
|
|
9
|
+
NAME = "aruba"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Aruba"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Aruba")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> ArubaFormatter:
|
|
23
|
+
return ArubaFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "exit"
|
|
28
|
+
|
|
29
|
+
def diff(self, order: bool) -> str:
|
|
30
|
+
return "common.ordered_diff" if order else "aruba.default_diff"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import B4comFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class B4ComVendor(AbstractVendor):
|
|
9
|
+
NAME = "b4com"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["B4com"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("B4com")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> B4comFormatter:
|
|
23
|
+
return B4comFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "exit"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import CiscoFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class CiscoVendor(AbstractVendor):
|
|
9
|
+
NAME = "cisco"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Cisco"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Cisco")
|
|
21
|
+
|
|
22
|
+
def svi_name(self, num: int) -> str:
|
|
23
|
+
return f"Vlan{num}"
|
|
24
|
+
|
|
25
|
+
def make_formatter(self, **kwargs) -> CiscoFormatter:
|
|
26
|
+
return CiscoFormatter(**kwargs)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def exit(self) -> str:
|
|
30
|
+
return "exit"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import HuaweiFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class H3CVendor(AbstractVendor):
|
|
9
|
+
NAME = "h3c"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["H3C"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "undo"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("H3C")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> HuaweiFormatter:
|
|
23
|
+
return HuaweiFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "quit"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import HuaweiFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class HuaweiVendor(AbstractVendor):
|
|
9
|
+
NAME = "huawei"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Huawei"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "undo"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Huawei")
|
|
21
|
+
|
|
22
|
+
def svi_name(self, num: int) -> str:
|
|
23
|
+
return f"Vlanif{num}"
|
|
24
|
+
|
|
25
|
+
def make_formatter(self, **kwargs) -> HuaweiFormatter:
|
|
26
|
+
return HuaweiFormatter(**kwargs)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def exit(self) -> str:
|
|
30
|
+
return "quit"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import AsrFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class IosXrVendor(AbstractVendor):
|
|
9
|
+
NAME = "iosxr"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Cisco.ASR", "Cisco.XR", "Cisco.XRV"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Cisco ASR")
|
|
21
|
+
|
|
22
|
+
def svi_name(self, num: int) -> str:
|
|
23
|
+
return f"Vlan{num}"
|
|
24
|
+
|
|
25
|
+
def make_formatter(self, **kwargs) -> AsrFormatter:
|
|
26
|
+
return AsrFormatter(**kwargs)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def exit(self) -> str:
|
|
30
|
+
return "exit"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import JuniperFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class JuniperVendor(AbstractVendor):
|
|
9
|
+
NAME = "juniper"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Juniper"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "delete"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Juniper")
|
|
21
|
+
|
|
22
|
+
def svi_name(self, num: int) -> str:
|
|
23
|
+
return f"irb.{num}"
|
|
24
|
+
|
|
25
|
+
def make_formatter(self, **kwargs) -> JuniperFormatter:
|
|
26
|
+
return JuniperFormatter(**kwargs)
|
|
27
|
+
|
|
28
|
+
@property
|
|
29
|
+
def exit(self) -> str:
|
|
30
|
+
return ""
|
|
31
|
+
|
|
32
|
+
def diff(self, order: bool) -> str:
|
|
33
|
+
return "juniper.ordered_diff" if order else "juniper.default_diff"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import NexusFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class NexusVendor(AbstractVendor):
|
|
9
|
+
NAME = "nexus"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Cisco.Nexus"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "no"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Cisco Nexus")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> NexusFormatter:
|
|
23
|
+
return NexusFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "exit"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import NokiaFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class NokiaVendor(AbstractVendor):
|
|
9
|
+
NAME = "nokia"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Nokia"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "delete"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Nokia")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> NokiaFormatter:
|
|
23
|
+
return NokiaFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return ""
|
|
28
|
+
|
|
29
|
+
def diff(self, order: bool) -> str:
|
|
30
|
+
return "juniper.ordered_diff" if order else "juniper.default_diff"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import OptixtransFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class OptixTransVendor(AbstractVendor):
|
|
9
|
+
NAME = "optixtrans"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["OptiXtrans"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "undo"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Huawei OptiXtrans")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> OptixtransFormatter:
|
|
23
|
+
return OptixtransFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "quit"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import CommonFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class PCVendor(AbstractVendor):
|
|
9
|
+
NAME = "pc"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["PC"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "-"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("PC")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> CommonFormatter:
|
|
23
|
+
return CommonFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return ""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import RibbonFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class RibbonVendor(AbstractVendor):
|
|
9
|
+
NAME = "ribbon"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["Ribbon"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "delete"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("Ribbon")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> RibbonFormatter:
|
|
23
|
+
return RibbonFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return "exit"
|
|
28
|
+
|
|
29
|
+
def diff(self, order: bool) -> str:
|
|
30
|
+
return "juniper.ordered_diff" if order else "juniper.default_diff"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from annet.annlib.netdev.views.hardware import HardwareView
|
|
2
|
+
from annet.annlib.tabparser import RosFormatter
|
|
3
|
+
from annet.vendors.base import AbstractVendor
|
|
4
|
+
from annet.vendors.registry import registry
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@registry.register
|
|
8
|
+
class RouterOSVendor(AbstractVendor):
|
|
9
|
+
NAME = "routeros"
|
|
10
|
+
|
|
11
|
+
def match(self) -> list[str]:
|
|
12
|
+
return ["RouterOS"]
|
|
13
|
+
|
|
14
|
+
@property
|
|
15
|
+
def reverse(self) -> str:
|
|
16
|
+
return "remove"
|
|
17
|
+
|
|
18
|
+
@property
|
|
19
|
+
def hardware(self) -> HardwareView:
|
|
20
|
+
return HardwareView("RouterOS")
|
|
21
|
+
|
|
22
|
+
def make_formatter(self, **kwargs) -> RosFormatter:
|
|
23
|
+
return RosFormatter(**kwargs)
|
|
24
|
+
|
|
25
|
+
@property
|
|
26
|
+
def exit(self) -> str:
|
|
27
|
+
return ""
|
|
@@ -194,6 +194,21 @@ annet/rulebook/texts/routeros.rul
|
|
|
194
194
|
annet/vendors/__init__.py
|
|
195
195
|
annet/vendors/base.py
|
|
196
196
|
annet/vendors/registry.py
|
|
197
|
+
annet/vendors/library/__init__.py
|
|
198
|
+
annet/vendors/library/arista.py
|
|
199
|
+
annet/vendors/library/aruba.py
|
|
200
|
+
annet/vendors/library/b4com.py
|
|
201
|
+
annet/vendors/library/cisco.py
|
|
202
|
+
annet/vendors/library/h3c.py
|
|
203
|
+
annet/vendors/library/huawei.py
|
|
204
|
+
annet/vendors/library/iosxr.py
|
|
205
|
+
annet/vendors/library/juniper.py
|
|
206
|
+
annet/vendors/library/nexus.py
|
|
207
|
+
annet/vendors/library/nokia.py
|
|
208
|
+
annet/vendors/library/optixtrans.py
|
|
209
|
+
annet/vendors/library/pc.py
|
|
210
|
+
annet/vendors/library/ribbon.py
|
|
211
|
+
annet/vendors/library/routeros.py
|
|
197
212
|
annet_generators/__init__.py
|
|
198
213
|
annet_generators/example/__init__.py
|
|
199
214
|
annet_generators/example/hostname.py
|
|
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
|