annet 0.14.13__tar.gz → 0.15.1__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 (143) hide show
  1. {annet-0.14.13/annet.egg-info → annet-0.15.1}/PKG-INFO +1 -1
  2. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/manufacturer.py +1 -0
  3. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/devdb/data/devdb.json +3 -2
  4. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/views/hardware.py +3 -0
  5. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/platform.py +4 -0
  6. {annet-0.14.13 → annet-0.15.1}/annet/annlib/tabparser.py +5 -0
  7. {annet-0.14.13 → annet-0.15.1}/annet/api/__init__.py +1 -1
  8. annet-0.15.1/annet/rulebook/texts/optixtrans.deploy +18 -0
  9. annet-0.15.1/annet/rulebook/texts/optixtrans.order +5 -0
  10. annet-0.15.1/annet/rulebook/texts/optixtrans.rul +13 -0
  11. {annet-0.14.13 → annet-0.15.1}/annet/tabparser.py +4 -1
  12. {annet-0.14.13 → annet-0.15.1/annet.egg-info}/PKG-INFO +1 -1
  13. {annet-0.14.13 → annet-0.15.1}/annet.egg-info/SOURCES.txt +3 -0
  14. {annet-0.14.13 → annet-0.15.1}/AUTHORS +0 -0
  15. {annet-0.14.13 → annet-0.15.1}/LICENSE +0 -0
  16. {annet-0.14.13 → annet-0.15.1}/MANIFEST.in +0 -0
  17. {annet-0.14.13 → annet-0.15.1}/README.md +0 -0
  18. {annet-0.14.13 → annet-0.15.1}/annet/__init__.py +0 -0
  19. {annet-0.14.13 → annet-0.15.1}/annet/adapters/__init__.py +0 -0
  20. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/__init__.py +0 -0
  21. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/__init__.py +0 -0
  22. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/client.py +0 -0
  23. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/models.py +0 -0
  24. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/query.py +0 -0
  25. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/status_client.py +0 -0
  26. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/common/storage_opts.py +0 -0
  27. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/provider.py +0 -0
  28. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/v24/__init__.py +0 -0
  29. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/v24/storage.py +0 -0
  30. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/v37/__init__.py +0 -0
  31. {annet-0.14.13 → annet-0.15.1}/annet/adapters/netbox/v37/storage.py +0 -0
  32. {annet-0.14.13 → annet-0.15.1}/annet/annet.py +0 -0
  33. {annet-0.14.13 → annet-0.15.1}/annet/annlib/__init__.py +0 -0
  34. {annet-0.14.13 → annet-0.15.1}/annet/annlib/command.py +0 -0
  35. {annet-0.14.13 → annet-0.15.1}/annet/annlib/diff.py +0 -0
  36. {annet-0.14.13 → annet-0.15.1}/annet/annlib/errors.py +0 -0
  37. {annet-0.14.13 → annet-0.15.1}/annet/annlib/filter_acl.py +0 -0
  38. {annet-0.14.13 → annet-0.15.1}/annet/annlib/jsontools.py +0 -0
  39. {annet-0.14.13 → annet-0.15.1}/annet/annlib/lib.py +0 -0
  40. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/__init__.py +0 -0
  41. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/db.py +0 -0
  42. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/devdb/__init__.py +0 -0
  43. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/views/__init__.py +0 -0
  44. {annet-0.14.13 → annet-0.15.1}/annet/annlib/netdev/views/dump.py +0 -0
  45. {annet-0.14.13 → annet-0.15.1}/annet/annlib/output.py +0 -0
  46. {annet-0.14.13 → annet-0.15.1}/annet/annlib/patching.py +0 -0
  47. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/__init__.py +0 -0
  48. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/acl.py +0 -0
  49. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/deploying.py +0 -0
  50. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/ordering.py +0 -0
  51. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rbparser/syntax.py +0 -0
  52. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rulebook/__init__.py +0 -0
  53. {annet-0.14.13 → annet-0.15.1}/annet/annlib/rulebook/common.py +0 -0
  54. {annet-0.14.13 → annet-0.15.1}/annet/annlib/types.py +0 -0
  55. {annet-0.14.13 → annet-0.15.1}/annet/argparse.py +0 -0
  56. {annet-0.14.13 → annet-0.15.1}/annet/cli.py +0 -0
  57. {annet-0.14.13 → annet-0.15.1}/annet/cli_args.py +0 -0
  58. {annet-0.14.13 → annet-0.15.1}/annet/configs/context.yml +0 -0
  59. {annet-0.14.13 → annet-0.15.1}/annet/configs/logging.yaml +0 -0
  60. {annet-0.14.13 → annet-0.15.1}/annet/connectors.py +0 -0
  61. {annet-0.14.13 → annet-0.15.1}/annet/deploy.py +0 -0
  62. {annet-0.14.13 → annet-0.15.1}/annet/diff.py +0 -0
  63. {annet-0.14.13 → annet-0.15.1}/annet/executor.py +0 -0
  64. {annet-0.14.13 → annet-0.15.1}/annet/filtering.py +0 -0
  65. {annet-0.14.13 → annet-0.15.1}/annet/gen.py +0 -0
  66. {annet-0.14.13 → annet-0.15.1}/annet/generators/__init__.py +0 -0
  67. {annet-0.14.13 → annet-0.15.1}/annet/generators/base.py +0 -0
  68. {annet-0.14.13 → annet-0.15.1}/annet/generators/common/__init__.py +0 -0
  69. {annet-0.14.13 → annet-0.15.1}/annet/generators/common/initial.py +0 -0
  70. {annet-0.14.13 → annet-0.15.1}/annet/generators/entire.py +0 -0
  71. {annet-0.14.13 → annet-0.15.1}/annet/generators/exceptions.py +0 -0
  72. {annet-0.14.13 → annet-0.15.1}/annet/generators/jsonfragment.py +0 -0
  73. {annet-0.14.13 → annet-0.15.1}/annet/generators/partial.py +0 -0
  74. {annet-0.14.13 → annet-0.15.1}/annet/generators/perf.py +0 -0
  75. {annet-0.14.13 → annet-0.15.1}/annet/generators/ref.py +0 -0
  76. {annet-0.14.13 → annet-0.15.1}/annet/generators/result.py +0 -0
  77. {annet-0.14.13 → annet-0.15.1}/annet/hardware.py +0 -0
  78. {annet-0.14.13 → annet-0.15.1}/annet/implicit.py +0 -0
  79. {annet-0.14.13 → annet-0.15.1}/annet/lib.py +0 -0
  80. {annet-0.14.13 → annet-0.15.1}/annet/output.py +0 -0
  81. {annet-0.14.13 → annet-0.15.1}/annet/parallel.py +0 -0
  82. {annet-0.14.13 → annet-0.15.1}/annet/patching.py +0 -0
  83. {annet-0.14.13 → annet-0.15.1}/annet/reference.py +0 -0
  84. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/__init__.py +0 -0
  85. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/arista/__init__.py +0 -0
  86. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/arista/iface.py +0 -0
  87. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/aruba/__init__.py +0 -0
  88. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/aruba/ap_env.py +0 -0
  89. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/aruba/misc.py +0 -0
  90. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/cisco/__init__.py +0 -0
  91. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/cisco/iface.py +0 -0
  92. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/cisco/misc.py +0 -0
  93. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/cisco/vlandb.py +0 -0
  94. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/common.py +0 -0
  95. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/deploying.py +0 -0
  96. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/__init__.py +0 -0
  97. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/aaa.py +0 -0
  98. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/bgp.py +0 -0
  99. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/iface.py +0 -0
  100. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/misc.py +0 -0
  101. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/huawei/vlandb.py +0 -0
  102. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/juniper/__init__.py +0 -0
  103. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/nexus/__init__.py +0 -0
  104. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/nexus/iface.py +0 -0
  105. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/patching.py +0 -0
  106. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/ribbon/__init__.py +0 -0
  107. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/arista.deploy +0 -0
  108. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/arista.order +0 -0
  109. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/arista.rul +0 -0
  110. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/aruba.deploy +0 -0
  111. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/aruba.order +0 -0
  112. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/aruba.rul +0 -0
  113. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/cisco.deploy +0 -0
  114. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/cisco.order +0 -0
  115. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/cisco.rul +0 -0
  116. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/huawei.deploy +0 -0
  117. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/huawei.order +0 -0
  118. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/huawei.rul +0 -0
  119. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/juniper.rul +0 -0
  120. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/nexus.deploy +0 -0
  121. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/nexus.order +0 -0
  122. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/nexus.rul +0 -0
  123. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/nokia.rul +0 -0
  124. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/pc.order +0 -0
  125. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/pc.rul +0 -0
  126. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/ribbon.deploy +0 -0
  127. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/ribbon.rul +0 -0
  128. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/routeros.order +0 -0
  129. {annet-0.14.13 → annet-0.15.1}/annet/rulebook/texts/routeros.rul +0 -0
  130. {annet-0.14.13 → annet-0.15.1}/annet/storage.py +0 -0
  131. {annet-0.14.13 → annet-0.15.1}/annet/text_term_format.py +0 -0
  132. {annet-0.14.13 → annet-0.15.1}/annet/tracing.py +0 -0
  133. {annet-0.14.13 → annet-0.15.1}/annet/types.py +0 -0
  134. {annet-0.14.13 → annet-0.15.1}/annet.egg-info/dependency_links.txt +0 -0
  135. {annet-0.14.13 → annet-0.15.1}/annet.egg-info/entry_points.txt +0 -0
  136. {annet-0.14.13 → annet-0.15.1}/annet.egg-info/requires.txt +0 -0
  137. {annet-0.14.13 → annet-0.15.1}/annet.egg-info/top_level.txt +0 -0
  138. {annet-0.14.13 → annet-0.15.1}/annet_generators/__init__.py +0 -0
  139. {annet-0.14.13 → annet-0.15.1}/annet_generators/example/__init__.py +0 -0
  140. {annet-0.14.13 → annet-0.15.1}/annet_generators/example/lldp.py +0 -0
  141. {annet-0.14.13 → annet-0.15.1}/requirements.txt +0 -0
  142. {annet-0.14.13 → annet-0.15.1}/setup.cfg +0 -0
  143. {annet-0.14.13 → annet-0.15.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.14.13
3
+ Version: 0.15.1
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -9,6 +9,7 @@ _VENDORS = {
9
9
  "catalyst": "Cisco Catalyst",
10
10
  "nexus": "Cisco Nexus",
11
11
  "huawei": "Huawei",
12
+ "optixtrans": "Huawei OptiXtrans",
12
13
  "juniper": "Juniper",
13
14
  "arista": "Arista",
14
15
  "pc": "PC",
@@ -52,8 +52,6 @@
52
52
  "Huawei.CE.CE8800.CE8850": " CE8850",
53
53
  "Huawei.CE.CE8800.CE8851": " CE8851",
54
54
  "Huawei.CE.CE9800": " CE98\\d\\d",
55
- "Huawei.DC": " DC\\d+",
56
- "Huawei.DC.DC908": " DC908",
57
55
  "Huawei.Quidway": " S\\d+",
58
56
  "Huawei.Quidway.S2x": " S2\\d{3}",
59
57
  "Huawei.Quidway.S2x.S2300": " S23\\d\\d",
@@ -67,6 +65,9 @@
67
65
  "Huawei.EI": "-EI(-|$)",
68
66
  "Huawei.HI": "-HI(-|$)",
69
67
  "Huawei.SI": "-SI(-|$)",
68
+ "Huawei.OptiXtrans": " OptiXtrans|DC",
69
+ "Huawei.OptiXtrans.DC": " DC",
70
+ "Huawei.OptiXtrans.DC.DC908": " DC908",
70
71
 
71
72
  "Juniper": "^[Jj]uniper",
72
73
  "Juniper.MX": " MX",
@@ -77,6 +77,8 @@ def hw_to_vendor(hw: HardwareView) -> Optional[str]:
77
77
  return "nexus"
78
78
  elif hw.Cisco:
79
79
  return "cisco"
80
+ elif hw.OptiXtrans:
81
+ return "optixtrans"
80
82
  elif hw.Huawei:
81
83
  return "huawei"
82
84
  elif hw.Juniper:
@@ -105,6 +107,7 @@ def vendor_to_hw(vendor):
105
107
  "catalyst": "Cisco Catalyst",
106
108
  "nexus": "Cisco Nexus",
107
109
  "huawei": "Huawei",
110
+ "optixtrans": "Huawei OptiXtrans",
108
111
  "juniper": "Juniper",
109
112
  "arista": "Arista",
110
113
  "pc": "PC",
@@ -1,5 +1,6 @@
1
1
  VENDOR_REVERSES = {
2
2
  "huawei": "undo",
3
+ "optixtrans": "undo",
3
4
  "cisco": "no",
4
5
  "nexus": "no",
5
6
  "juniper": "delete",
@@ -13,6 +14,7 @@ VENDOR_REVERSES = {
13
14
 
14
15
  VENDOR_DIFF = {
15
16
  "huawei": "common.default_diff",
17
+ "optixtrans": "common.default_diff",
16
18
  "cisco": "common.default_diff",
17
19
  "nexus": "common.default_diff",
18
20
  "juniper": "juniper.default_diff",
@@ -26,6 +28,7 @@ VENDOR_DIFF = {
26
28
 
27
29
  VENDOR_DIFF_ORDERED = {
28
30
  "huawei": "common.ordered_diff",
31
+ "optixtrans": "common.ordered_diff",
29
32
  "cisco": "common.ordered_diff",
30
33
  "nexus": "common.ordered_diff",
31
34
  "juniper": "juniper.ordered_diff",
@@ -39,6 +42,7 @@ VENDOR_DIFF_ORDERED = {
39
42
 
40
43
  VENDOR_EXIT = {
41
44
  "huawei": "quit",
45
+ "optixtrans": "quit",
42
46
  "cisco": "exit",
43
47
  "nexus": "exit",
44
48
  "arista": "exit",
@@ -263,6 +263,10 @@ class HuaweiFormatter(BlockExitFormatter):
263
263
  yield from super().block_exit(context)
264
264
 
265
265
 
266
+ class OptixtransFormatter(CommonFormatter):
267
+ pass
268
+
269
+
266
270
  class CiscoFormatter(BlockExitFormatter):
267
271
  def __init__(self, indent=" "):
268
272
  super().__init__("exit", indent)
@@ -644,6 +648,7 @@ def make_formatter(vendor, **kwargs):
644
648
  "cisco": CiscoFormatter,
645
649
  "nexus": CiscoFormatter,
646
650
  "huawei": HuaweiFormatter,
651
+ "optixtrans": OptixtransFormatter,
647
652
  "arista": CiscoFormatter,
648
653
  "nokia": NokiaFormatter,
649
654
  "routeros": RosFormatter,
@@ -346,7 +346,7 @@ def diff(
346
346
  device = res.device
347
347
  acl_rules = res.get_acl_rules(args.acl_safe)
348
348
  new_files = res.get_new_files(args.acl_safe)
349
- new_json_fragment_files = res.get_new_file_fragments()
349
+ new_json_fragment_files = res.get_new_file_fragments(args.acl_safe)
350
350
 
351
351
  pc_diff_files = []
352
352
  if res.old_files or new_files:
@@ -0,0 +1,18 @@
1
+ # Рулбук деплоя на устройства
2
+ #
3
+ # Операторы:
4
+ # * Один аргумент
5
+ # ~ Несколько аргументов (минимум один)
6
+ #
7
+ # Параметры:
8
+ # %timeout=... Таймаут выполнения команды (в секундах, по умолчанию 30)
9
+ #
10
+ # Ответы на вопросы
11
+ #
12
+ # <команда>
13
+ # dialog: <вопрос> ::: <ответ> <параметры>
14
+ #
15
+ # Если <вопрос> заключён в слеши (//), то воспринимается как регулярка, иначе - точное совпадение.
16
+ # Параметы:
17
+ # %send_nl=... Посылать ли перевод строки после ответа (bool, по умолчанию true)
18
+ # -----
@@ -0,0 +1,5 @@
1
+ # В этом файле определяется порядок команд, в котором их следует подавать на устройство.
2
+ # - Если порядок команды не важен - ее можно не писать сюда совсем.
3
+ # - Если команда начинается с undo и прописан параметр %order_reverse - команда считается
4
+ # обратной, но занимает место между прямыми там, где указано (т.е. undo vlan batch
5
+ # будет стоять после блоков interface).
@@ -0,0 +1,13 @@
1
+ # Операторы:
2
+ # * Один аргумент в undo
3
+ # ~ Несколько аргументов (минимум один) в undo
4
+ #
5
+ # Параметры:
6
+ # %global Команда действует на любом уровне ниже
7
+ # %logic=... Кастомная функция обработки правила
8
+ # %diff_logic=... Кастомная функция построения диффа.
9
+ # данная функция работает для подблоков (в отличие от %logic)
10
+ # %comment=... Добавить коммент после строки который будет видно с опцией patch --add-comments
11
+ # Сделано в основном для того чтобы генерировать специальные команды для наливки
12
+ # -----
13
+ clock timezone
@@ -3,6 +3,7 @@ from annet.annlib.tabparser import ( # pylint: disable=unused-import
3
3
  CiscoFormatter,
4
4
  CommonFormatter,
5
5
  HuaweiFormatter,
6
+ OptixtransFormatter,
6
7
  JuniperFormatter,
7
8
  JuniperList,
8
9
  NokiaFormatter,
@@ -14,7 +15,9 @@ from annet.annlib.tabparser import ( # pylint: disable=unused-import
14
15
 
15
16
 
16
17
  def make_formatter(hw, **kwargs):
17
- if hw.Huawei:
18
+ if hw.OptiXtrans:
19
+ cls = OptixtransFormatter
20
+ elif hw.Huawei:
18
21
  cls = HuaweiFormatter
19
22
  elif hw.Cisco.ASR or hw.Cisco.XRV:
20
23
  cls = AsrFormatter
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.14.13
3
+ Version: 0.15.1
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -127,6 +127,9 @@ annet/rulebook/texts/nexus.deploy
127
127
  annet/rulebook/texts/nexus.order
128
128
  annet/rulebook/texts/nexus.rul
129
129
  annet/rulebook/texts/nokia.rul
130
+ annet/rulebook/texts/optixtrans.deploy
131
+ annet/rulebook/texts/optixtrans.order
132
+ annet/rulebook/texts/optixtrans.rul
130
133
  annet/rulebook/texts/pc.order
131
134
  annet/rulebook/texts/pc.rul
132
135
  annet/rulebook/texts/ribbon.deploy
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes