annet 0.16.21__tar.gz → 0.16.22__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.

Files changed (180) hide show
  1. {annet-0.16.21/annet.egg-info → annet-0.16.22}/PKG-INFO +1 -1
  2. {annet-0.16.21 → annet-0.16.22}/README.md +1 -1
  3. {annet-0.16.21 → annet-0.16.22}/annet/annlib/tabparser.py +27 -3
  4. {annet-0.16.21 → annet-0.16.22}/annet/tabparser.py +10 -1
  5. {annet-0.16.21 → annet-0.16.22/annet.egg-info}/PKG-INFO +1 -1
  6. {annet-0.16.21 → annet-0.16.22}/AUTHORS +0 -0
  7. {annet-0.16.21 → annet-0.16.22}/LICENSE +0 -0
  8. {annet-0.16.21 → annet-0.16.22}/MANIFEST.in +0 -0
  9. {annet-0.16.21 → annet-0.16.22}/annet/__init__.py +0 -0
  10. {annet-0.16.21 → annet-0.16.22}/annet/adapters/__init__.py +0 -0
  11. {annet-0.16.21 → annet-0.16.22}/annet/adapters/fetchers/__init__.py +0 -0
  12. {annet-0.16.21 → annet-0.16.22}/annet/adapters/fetchers/stub/__init__.py +0 -0
  13. {annet-0.16.21 → annet-0.16.22}/annet/adapters/fetchers/stub/fetcher.py +0 -0
  14. {annet-0.16.21 → annet-0.16.22}/annet/adapters/file/__init__.py +0 -0
  15. {annet-0.16.21 → annet-0.16.22}/annet/adapters/file/provider.py +0 -0
  16. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/__init__.py +0 -0
  17. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/__init__.py +0 -0
  18. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/client.py +0 -0
  19. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/manufacturer.py +0 -0
  20. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/models.py +0 -0
  21. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/query.py +0 -0
  22. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/status_client.py +0 -0
  23. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/common/storage_opts.py +0 -0
  24. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/provider.py +0 -0
  25. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/v24/__init__.py +0 -0
  26. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/v24/storage.py +0 -0
  27. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/v37/__init__.py +0 -0
  28. {annet-0.16.21 → annet-0.16.22}/annet/adapters/netbox/v37/storage.py +0 -0
  29. {annet-0.16.21 → annet-0.16.22}/annet/annet.py +0 -0
  30. {annet-0.16.21 → annet-0.16.22}/annet/annlib/__init__.py +0 -0
  31. {annet-0.16.21 → annet-0.16.22}/annet/annlib/command.py +0 -0
  32. {annet-0.16.21 → annet-0.16.22}/annet/annlib/diff.py +0 -0
  33. {annet-0.16.21 → annet-0.16.22}/annet/annlib/errors.py +0 -0
  34. {annet-0.16.21 → annet-0.16.22}/annet/annlib/filter_acl.py +0 -0
  35. {annet-0.16.21 → annet-0.16.22}/annet/annlib/jsontools.py +0 -0
  36. {annet-0.16.21 → annet-0.16.22}/annet/annlib/lib.py +0 -0
  37. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/__init__.py +0 -0
  38. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/db.py +0 -0
  39. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/devdb/__init__.py +0 -0
  40. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/devdb/data/devdb.json +0 -0
  41. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/views/__init__.py +0 -0
  42. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/views/dump.py +0 -0
  43. {annet-0.16.21 → annet-0.16.22}/annet/annlib/netdev/views/hardware.py +0 -0
  44. {annet-0.16.21 → annet-0.16.22}/annet/annlib/output.py +0 -0
  45. {annet-0.16.21 → annet-0.16.22}/annet/annlib/patching.py +0 -0
  46. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/__init__.py +0 -0
  47. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/acl.py +0 -0
  48. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/deploying.py +0 -0
  49. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/ordering.py +0 -0
  50. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/platform.py +0 -0
  51. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rbparser/syntax.py +0 -0
  52. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rulebook/__init__.py +0 -0
  53. {annet-0.16.21 → annet-0.16.22}/annet/annlib/rulebook/common.py +0 -0
  54. {annet-0.16.21 → annet-0.16.22}/annet/annlib/types.py +0 -0
  55. {annet-0.16.21 → annet-0.16.22}/annet/api/__init__.py +0 -0
  56. {annet-0.16.21 → annet-0.16.22}/annet/argparse.py +0 -0
  57. {annet-0.16.21 → annet-0.16.22}/annet/bgp_models.py +0 -0
  58. {annet-0.16.21 → annet-0.16.22}/annet/cli.py +0 -0
  59. {annet-0.16.21 → annet-0.16.22}/annet/cli_args.py +0 -0
  60. {annet-0.16.21 → annet-0.16.22}/annet/configs/context.yml +0 -0
  61. {annet-0.16.21 → annet-0.16.22}/annet/configs/logging.yaml +0 -0
  62. {annet-0.16.21 → annet-0.16.22}/annet/connectors.py +0 -0
  63. {annet-0.16.21 → annet-0.16.22}/annet/deploy.py +0 -0
  64. {annet-0.16.21 → annet-0.16.22}/annet/diff.py +0 -0
  65. {annet-0.16.21 → annet-0.16.22}/annet/executor.py +0 -0
  66. {annet-0.16.21 → annet-0.16.22}/annet/filtering.py +0 -0
  67. {annet-0.16.21 → annet-0.16.22}/annet/gen.py +0 -0
  68. {annet-0.16.21 → annet-0.16.22}/annet/generators/__init__.py +0 -0
  69. {annet-0.16.21 → annet-0.16.22}/annet/generators/base.py +0 -0
  70. {annet-0.16.21 → annet-0.16.22}/annet/generators/common/__init__.py +0 -0
  71. {annet-0.16.21 → annet-0.16.22}/annet/generators/common/initial.py +0 -0
  72. {annet-0.16.21 → annet-0.16.22}/annet/generators/entire.py +0 -0
  73. {annet-0.16.21 → annet-0.16.22}/annet/generators/exceptions.py +0 -0
  74. {annet-0.16.21 → annet-0.16.22}/annet/generators/jsonfragment.py +0 -0
  75. {annet-0.16.21 → annet-0.16.22}/annet/generators/partial.py +0 -0
  76. {annet-0.16.21 → annet-0.16.22}/annet/generators/perf.py +0 -0
  77. {annet-0.16.21 → annet-0.16.22}/annet/generators/ref.py +0 -0
  78. {annet-0.16.21 → annet-0.16.22}/annet/generators/result.py +0 -0
  79. {annet-0.16.21 → annet-0.16.22}/annet/hardware.py +0 -0
  80. {annet-0.16.21 → annet-0.16.22}/annet/implicit.py +0 -0
  81. {annet-0.16.21 → annet-0.16.22}/annet/lib.py +0 -0
  82. {annet-0.16.21 → annet-0.16.22}/annet/mesh/__init__.py +0 -0
  83. {annet-0.16.21 → annet-0.16.22}/annet/mesh/basemodel.py +0 -0
  84. {annet-0.16.21 → annet-0.16.22}/annet/mesh/device_models.py +0 -0
  85. {annet-0.16.21 → annet-0.16.22}/annet/mesh/executor.py +0 -0
  86. {annet-0.16.21 → annet-0.16.22}/annet/mesh/match_args.py +0 -0
  87. {annet-0.16.21 → annet-0.16.22}/annet/mesh/models_converter.py +0 -0
  88. {annet-0.16.21 → annet-0.16.22}/annet/mesh/peer_models.py +0 -0
  89. {annet-0.16.21 → annet-0.16.22}/annet/mesh/registry.py +0 -0
  90. {annet-0.16.21 → annet-0.16.22}/annet/output.py +0 -0
  91. {annet-0.16.21 → annet-0.16.22}/annet/parallel.py +0 -0
  92. {annet-0.16.21 → annet-0.16.22}/annet/patching.py +0 -0
  93. {annet-0.16.21 → annet-0.16.22}/annet/reference.py +0 -0
  94. {annet-0.16.21 → annet-0.16.22}/annet/rpl/__init__.py +0 -0
  95. {annet-0.16.21 → annet-0.16.22}/annet/rpl/action.py +0 -0
  96. {annet-0.16.21 → annet-0.16.22}/annet/rpl/condition.py +0 -0
  97. {annet-0.16.21 → annet-0.16.22}/annet/rpl/match_builder.py +0 -0
  98. {annet-0.16.21 → annet-0.16.22}/annet/rpl/policy.py +0 -0
  99. {annet-0.16.21 → annet-0.16.22}/annet/rpl/result.py +0 -0
  100. {annet-0.16.21 → annet-0.16.22}/annet/rpl/routemap.py +0 -0
  101. {annet-0.16.21 → annet-0.16.22}/annet/rpl/statement_builder.py +0 -0
  102. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/__init__.py +0 -0
  103. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/arista/__init__.py +0 -0
  104. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/arista/iface.py +0 -0
  105. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/aruba/__init__.py +0 -0
  106. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/aruba/ap_env.py +0 -0
  107. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/aruba/misc.py +0 -0
  108. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/b4com/__init__.py +0 -0
  109. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/b4com/file.py +0 -0
  110. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/cisco/__init__.py +0 -0
  111. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/cisco/iface.py +0 -0
  112. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/cisco/misc.py +0 -0
  113. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/cisco/vlandb.py +0 -0
  114. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/common.py +0 -0
  115. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/deploying.py +0 -0
  116. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/__init__.py +0 -0
  117. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/aaa.py +0 -0
  118. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/bgp.py +0 -0
  119. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/iface.py +0 -0
  120. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/misc.py +0 -0
  121. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/huawei/vlandb.py +0 -0
  122. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/juniper/__init__.py +0 -0
  123. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/nexus/__init__.py +0 -0
  124. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/nexus/iface.py +0 -0
  125. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/patching.py +0 -0
  126. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/ribbon/__init__.py +0 -0
  127. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/routeros/__init__.py +0 -0
  128. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/routeros/file.py +0 -0
  129. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/arista.deploy +0 -0
  130. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/arista.order +0 -0
  131. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/arista.rul +0 -0
  132. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/aruba.deploy +0 -0
  133. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/aruba.order +0 -0
  134. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/aruba.rul +0 -0
  135. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/b4com.deploy +0 -0
  136. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/b4com.order +0 -0
  137. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/b4com.rul +0 -0
  138. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/cisco.deploy +0 -0
  139. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/cisco.order +0 -0
  140. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/cisco.rul +0 -0
  141. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/huawei.deploy +0 -0
  142. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/huawei.order +0 -0
  143. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/huawei.rul +0 -0
  144. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/juniper.rul +0 -0
  145. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/nexus.deploy +0 -0
  146. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/nexus.order +0 -0
  147. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/nexus.rul +0 -0
  148. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/nokia.rul +0 -0
  149. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/optixtrans.deploy +0 -0
  150. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/optixtrans.order +0 -0
  151. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/optixtrans.rul +0 -0
  152. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/pc.deploy +0 -0
  153. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/pc.order +0 -0
  154. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/pc.rul +0 -0
  155. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/ribbon.deploy +0 -0
  156. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/ribbon.rul +0 -0
  157. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/routeros.order +0 -0
  158. {annet-0.16.21 → annet-0.16.22}/annet/rulebook/texts/routeros.rul +0 -0
  159. {annet-0.16.21 → annet-0.16.22}/annet/storage.py +0 -0
  160. {annet-0.16.21 → annet-0.16.22}/annet/text_term_format.py +0 -0
  161. {annet-0.16.21 → annet-0.16.22}/annet/tracing.py +0 -0
  162. {annet-0.16.21 → annet-0.16.22}/annet/types.py +0 -0
  163. {annet-0.16.21 → annet-0.16.22}/annet.egg-info/SOURCES.txt +0 -0
  164. {annet-0.16.21 → annet-0.16.22}/annet.egg-info/dependency_links.txt +0 -0
  165. {annet-0.16.21 → annet-0.16.22}/annet.egg-info/entry_points.txt +0 -0
  166. {annet-0.16.21 → annet-0.16.22}/annet.egg-info/requires.txt +0 -0
  167. {annet-0.16.21 → annet-0.16.22}/annet.egg-info/top_level.txt +0 -0
  168. {annet-0.16.21 → annet-0.16.22}/annet_generators/__init__.py +0 -0
  169. {annet-0.16.21 → annet-0.16.22}/annet_generators/example/__init__.py +0 -0
  170. {annet-0.16.21 → annet-0.16.22}/annet_generators/example/lldp.py +0 -0
  171. {annet-0.16.21 → annet-0.16.22}/annet_generators/mesh_example/__init__.py +0 -0
  172. {annet-0.16.21 → annet-0.16.22}/annet_generators/mesh_example/bgp.py +0 -0
  173. {annet-0.16.21 → annet-0.16.22}/annet_generators/mesh_example/mesh_logic.py +0 -0
  174. {annet-0.16.21 → annet-0.16.22}/annet_generators/rpl_example/__init__.py +0 -0
  175. {annet-0.16.21 → annet-0.16.22}/annet_generators/rpl_example/items.py +0 -0
  176. {annet-0.16.21 → annet-0.16.22}/annet_generators/rpl_example/policy_generator.py +0 -0
  177. {annet-0.16.21 → annet-0.16.22}/annet_generators/rpl_example/route_policy.py +0 -0
  178. {annet-0.16.21 → annet-0.16.22}/requirements.txt +0 -0
  179. {annet-0.16.21 → annet-0.16.22}/setup.cfg +0 -0
  180. {annet-0.16.21 → annet-0.16.22}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.16.21
3
+ Version: 0.16.22
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  # Annet - configuration generation and deploying utility for network equipment
2
2
 
3
- Annet is a configuration generator that can translate differences between old and new configurations into sequnce of commands. This feature is vital for CLI-based devices, such as Huawei, Cisco IOS, Cisco NX-OS, Juniper. Devices configured via separate config files, Linux, FreeBSD and Cumulus are also supported.
3
+ Annet is a configuration generator that can translate differences between old and new configurations into sequence of commands. This feature is vital for CLI-based devices, such as Huawei, Cisco IOS, Cisco NX-OS, Juniper. Devices configured via separate config files, Linux, FreeBSD and Cumulus are also supported.
4
4
 
5
5
  It works this way. Annet `gen`erates configuration for a device by running Python code, which usually goes to the Network Source of Truth, like NetBox. Annet then gets the `diff`erence by getting the configuration from the device and comparing it. Finally, Annet translates the difference into a sequence of commands, called a `patch`. After `deploy`ing these commands, the diff will be empty.
6
6
 
@@ -330,6 +330,30 @@ class CiscoFormatter(BlockExitFormatter):
330
330
  yield from super().block_exit(context)
331
331
 
332
332
 
333
+ class NexusFormatter(BlockExitFormatter):
334
+ def __init__(self, indent=" "):
335
+ super().__init__("exit", indent)
336
+
337
+ def split(self, text):
338
+ return self.split_remove_spaces(text)
339
+
340
+
341
+ class B4comFormatter(BlockExitFormatter):
342
+ def __init__(self, indent=" "):
343
+ super().__init__("exit", indent)
344
+
345
+ def split(self, text):
346
+ return self.split_remove_spaces(text)
347
+
348
+
349
+ class ArubaFormatter(BlockExitFormatter):
350
+ def __init__(self, indent=" "):
351
+ super().__init__("exit", indent)
352
+
353
+ def split(self, text):
354
+ return self.split_remove_spaces(text)
355
+
356
+
333
357
  class AristaFormatter(CiscoFormatter):
334
358
 
335
359
  def block_exit(self, context: Optional[FormatterContext]) -> str:
@@ -713,16 +737,16 @@ def make_formatter(vendor, **kwargs):
713
737
  formatters = {
714
738
  "juniper": JuniperFormatter,
715
739
  "cisco": CiscoFormatter,
716
- "nexus": CiscoFormatter,
740
+ "nexus": NexusFormatter,
717
741
  "huawei": HuaweiFormatter,
718
742
  "optixtrans": OptixtransFormatter,
719
743
  "arista": AristaFormatter,
720
744
  "nokia": NokiaFormatter,
721
745
  "routeros": RosFormatter,
722
- "aruba": CiscoFormatter,
746
+ "aruba": ArubaFormatter,
723
747
  "pc": CommonFormatter,
724
748
  "ribbon": RibbonFormatter,
725
- "b4com": CiscoFormatter,
749
+ "b4com": B4comFormatter,
726
750
  }
727
751
  return formatters[vendor](**kwargs)
728
752
 
@@ -12,6 +12,9 @@ from annet.annlib.tabparser import ( # pylint: disable=unused-import
12
12
  RosFormatter,
13
13
  parse_to_tree,
14
14
  AristaFormatter,
15
+ NexusFormatter,
16
+ B4comFormatter,
17
+ ArubaFormatter,
15
18
  )
16
19
 
17
20
 
@@ -22,8 +25,14 @@ def make_formatter(hw, **kwargs):
22
25
  cls = HuaweiFormatter
23
26
  elif hw.Cisco.ASR or hw.Cisco.XRV:
24
27
  cls = AsrFormatter
25
- elif hw.Nexus or hw.Cisco or hw.Aruba or hw.B4com:
28
+ elif hw.Nexus:
29
+ cls = NexusFormatter
30
+ elif hw.Cisco:
26
31
  cls = CiscoFormatter
32
+ elif hw.B4com:
33
+ cls = B4comFormatter
34
+ elif hw.Aruba:
35
+ cls = ArubaFormatter
27
36
  elif hw.Juniper:
28
37
  cls = JuniperFormatter
29
38
  elif hw.Nokia:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.16.21
3
+ Version: 0.16.22
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes