annet 0.16.3__tar.gz → 0.16.5__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 (149) hide show
  1. {annet-0.16.3/annet.egg-info → annet-0.16.5}/PKG-INFO +1 -1
  2. {annet-0.16.3 → annet-0.16.5}/annet/annlib/diff.py +2 -5
  3. {annet-0.16.3 → annet-0.16.5}/annet/annlib/patching.py +3 -0
  4. {annet-0.16.3 → annet-0.16.5}/annet/api/__init__.py +7 -1
  5. {annet-0.16.3 → annet-0.16.5}/annet/gen.py +1 -3
  6. {annet-0.16.3 → annet-0.16.5}/annet/lib.py +1 -1
  7. {annet-0.16.3 → annet-0.16.5/annet.egg-info}/PKG-INFO +1 -1
  8. {annet-0.16.3 → annet-0.16.5}/AUTHORS +0 -0
  9. {annet-0.16.3 → annet-0.16.5}/LICENSE +0 -0
  10. {annet-0.16.3 → annet-0.16.5}/MANIFEST.in +0 -0
  11. {annet-0.16.3 → annet-0.16.5}/README.md +0 -0
  12. {annet-0.16.3 → annet-0.16.5}/annet/__init__.py +0 -0
  13. {annet-0.16.3 → annet-0.16.5}/annet/adapters/__init__.py +0 -0
  14. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/__init__.py +0 -0
  15. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/__init__.py +0 -0
  16. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/client.py +0 -0
  17. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/manufacturer.py +0 -0
  18. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/models.py +0 -0
  19. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/query.py +0 -0
  20. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/status_client.py +0 -0
  21. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/common/storage_opts.py +0 -0
  22. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/provider.py +0 -0
  23. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/v24/__init__.py +0 -0
  24. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/v24/storage.py +0 -0
  25. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/v37/__init__.py +0 -0
  26. {annet-0.16.3 → annet-0.16.5}/annet/adapters/netbox/v37/storage.py +0 -0
  27. {annet-0.16.3 → annet-0.16.5}/annet/annet.py +0 -0
  28. {annet-0.16.3 → annet-0.16.5}/annet/annlib/__init__.py +0 -0
  29. {annet-0.16.3 → annet-0.16.5}/annet/annlib/command.py +0 -0
  30. {annet-0.16.3 → annet-0.16.5}/annet/annlib/errors.py +0 -0
  31. {annet-0.16.3 → annet-0.16.5}/annet/annlib/filter_acl.py +0 -0
  32. {annet-0.16.3 → annet-0.16.5}/annet/annlib/jsontools.py +0 -0
  33. {annet-0.16.3 → annet-0.16.5}/annet/annlib/lib.py +0 -0
  34. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/__init__.py +0 -0
  35. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/db.py +0 -0
  36. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/devdb/__init__.py +0 -0
  37. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/devdb/data/devdb.json +0 -0
  38. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/views/__init__.py +0 -0
  39. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/views/dump.py +0 -0
  40. {annet-0.16.3 → annet-0.16.5}/annet/annlib/netdev/views/hardware.py +0 -0
  41. {annet-0.16.3 → annet-0.16.5}/annet/annlib/output.py +0 -0
  42. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/__init__.py +0 -0
  43. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/acl.py +0 -0
  44. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/deploying.py +0 -0
  45. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/ordering.py +0 -0
  46. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/platform.py +0 -0
  47. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rbparser/syntax.py +0 -0
  48. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rulebook/__init__.py +0 -0
  49. {annet-0.16.3 → annet-0.16.5}/annet/annlib/rulebook/common.py +0 -0
  50. {annet-0.16.3 → annet-0.16.5}/annet/annlib/tabparser.py +0 -0
  51. {annet-0.16.3 → annet-0.16.5}/annet/annlib/types.py +0 -0
  52. {annet-0.16.3 → annet-0.16.5}/annet/argparse.py +0 -0
  53. {annet-0.16.3 → annet-0.16.5}/annet/cli.py +0 -0
  54. {annet-0.16.3 → annet-0.16.5}/annet/cli_args.py +0 -0
  55. {annet-0.16.3 → annet-0.16.5}/annet/configs/context.yml +0 -0
  56. {annet-0.16.3 → annet-0.16.5}/annet/configs/logging.yaml +0 -0
  57. {annet-0.16.3 → annet-0.16.5}/annet/connectors.py +0 -0
  58. {annet-0.16.3 → annet-0.16.5}/annet/deploy.py +0 -0
  59. {annet-0.16.3 → annet-0.16.5}/annet/diff.py +0 -0
  60. {annet-0.16.3 → annet-0.16.5}/annet/executor.py +0 -0
  61. {annet-0.16.3 → annet-0.16.5}/annet/filtering.py +0 -0
  62. {annet-0.16.3 → annet-0.16.5}/annet/generators/__init__.py +0 -0
  63. {annet-0.16.3 → annet-0.16.5}/annet/generators/base.py +0 -0
  64. {annet-0.16.3 → annet-0.16.5}/annet/generators/common/__init__.py +0 -0
  65. {annet-0.16.3 → annet-0.16.5}/annet/generators/common/initial.py +0 -0
  66. {annet-0.16.3 → annet-0.16.5}/annet/generators/entire.py +0 -0
  67. {annet-0.16.3 → annet-0.16.5}/annet/generators/exceptions.py +0 -0
  68. {annet-0.16.3 → annet-0.16.5}/annet/generators/jsonfragment.py +0 -0
  69. {annet-0.16.3 → annet-0.16.5}/annet/generators/partial.py +0 -0
  70. {annet-0.16.3 → annet-0.16.5}/annet/generators/perf.py +0 -0
  71. {annet-0.16.3 → annet-0.16.5}/annet/generators/ref.py +0 -0
  72. {annet-0.16.3 → annet-0.16.5}/annet/generators/result.py +0 -0
  73. {annet-0.16.3 → annet-0.16.5}/annet/hardware.py +0 -0
  74. {annet-0.16.3 → annet-0.16.5}/annet/implicit.py +0 -0
  75. {annet-0.16.3 → annet-0.16.5}/annet/output.py +0 -0
  76. {annet-0.16.3 → annet-0.16.5}/annet/parallel.py +0 -0
  77. {annet-0.16.3 → annet-0.16.5}/annet/patching.py +0 -0
  78. {annet-0.16.3 → annet-0.16.5}/annet/reference.py +0 -0
  79. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/__init__.py +0 -0
  80. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/arista/__init__.py +0 -0
  81. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/arista/iface.py +0 -0
  82. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/aruba/__init__.py +0 -0
  83. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/aruba/ap_env.py +0 -0
  84. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/aruba/misc.py +0 -0
  85. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/b4com/__init__.py +0 -0
  86. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/b4com/file.py +0 -0
  87. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/cisco/__init__.py +0 -0
  88. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/cisco/iface.py +0 -0
  89. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/cisco/misc.py +0 -0
  90. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/cisco/vlandb.py +0 -0
  91. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/common.py +0 -0
  92. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/deploying.py +0 -0
  93. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/__init__.py +0 -0
  94. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/aaa.py +0 -0
  95. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/bgp.py +0 -0
  96. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/iface.py +0 -0
  97. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/misc.py +0 -0
  98. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/huawei/vlandb.py +0 -0
  99. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/juniper/__init__.py +0 -0
  100. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/nexus/__init__.py +0 -0
  101. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/nexus/iface.py +0 -0
  102. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/patching.py +0 -0
  103. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/ribbon/__init__.py +0 -0
  104. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/arista.deploy +0 -0
  105. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/arista.order +0 -0
  106. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/arista.rul +0 -0
  107. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/aruba.deploy +0 -0
  108. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/aruba.order +0 -0
  109. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/aruba.rul +0 -0
  110. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/b4com.deploy +0 -0
  111. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/b4com.order +0 -0
  112. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/b4com.rul +0 -0
  113. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/cisco.deploy +0 -0
  114. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/cisco.order +0 -0
  115. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/cisco.rul +0 -0
  116. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/huawei.deploy +0 -0
  117. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/huawei.order +0 -0
  118. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/huawei.rul +0 -0
  119. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/juniper.rul +0 -0
  120. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/nexus.deploy +0 -0
  121. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/nexus.order +0 -0
  122. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/nexus.rul +0 -0
  123. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/nokia.rul +0 -0
  124. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/optixtrans.deploy +0 -0
  125. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/optixtrans.order +0 -0
  126. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/optixtrans.rul +0 -0
  127. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/pc.deploy +0 -0
  128. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/pc.order +0 -0
  129. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/pc.rul +0 -0
  130. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/ribbon.deploy +0 -0
  131. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/ribbon.rul +0 -0
  132. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/routeros.order +0 -0
  133. {annet-0.16.3 → annet-0.16.5}/annet/rulebook/texts/routeros.rul +0 -0
  134. {annet-0.16.3 → annet-0.16.5}/annet/storage.py +0 -0
  135. {annet-0.16.3 → annet-0.16.5}/annet/tabparser.py +0 -0
  136. {annet-0.16.3 → annet-0.16.5}/annet/text_term_format.py +0 -0
  137. {annet-0.16.3 → annet-0.16.5}/annet/tracing.py +0 -0
  138. {annet-0.16.3 → annet-0.16.5}/annet/types.py +0 -0
  139. {annet-0.16.3 → annet-0.16.5}/annet.egg-info/SOURCES.txt +0 -0
  140. {annet-0.16.3 → annet-0.16.5}/annet.egg-info/dependency_links.txt +0 -0
  141. {annet-0.16.3 → annet-0.16.5}/annet.egg-info/entry_points.txt +0 -0
  142. {annet-0.16.3 → annet-0.16.5}/annet.egg-info/requires.txt +0 -0
  143. {annet-0.16.3 → annet-0.16.5}/annet.egg-info/top_level.txt +0 -0
  144. {annet-0.16.3 → annet-0.16.5}/annet_generators/__init__.py +0 -0
  145. {annet-0.16.3 → annet-0.16.5}/annet_generators/example/__init__.py +0 -0
  146. {annet-0.16.3 → annet-0.16.5}/annet_generators/example/lldp.py +0 -0
  147. {annet-0.16.3 → annet-0.16.5}/requirements.txt +0 -0
  148. {annet-0.16.3 → annet-0.16.5}/setup.cfg +0 -0
  149. {annet-0.16.3 → annet-0.16.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.16.3
3
+ Version: 0.16.5
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -59,9 +59,8 @@ def diff_cmp(diff_l, diff_r):
59
59
  (op_l, line_l, _, _) = diff_l
60
60
  (op_r, line_r, _, _) = diff_r
61
61
 
62
- cmp_line = (line_l > line_r) - (line_l < line_r)
63
62
  cmp_op = ops_order[op_l] - ops_order[op_r]
64
- if cmp_line == 0:
63
+ if line_l == line_r:
65
64
  # При равенстве строк порядок определяется операцией
66
65
  return cmp_op
67
66
 
@@ -101,9 +100,7 @@ def diff_cmp(diff_l, diff_r):
101
100
  else:
102
101
  continue
103
102
  break
104
- if res != 0:
105
- return res
106
- return cmp_line
103
+ return res
107
104
 
108
105
 
109
106
  def resort_diff(diff: Diff) -> Diff:
@@ -180,6 +180,9 @@ class Orderer:
180
180
  return (f_order or 0), cmd_direct, odict(children), f_rule
181
181
 
182
182
  def order_config(self, config):
183
+ if self.vendor not in platform.VENDOR_REVERSES:
184
+ return config
185
+
183
186
  ordered = []
184
187
  reverse_prefix = platform.VENDOR_REVERSES[self.vendor]
185
188
  if not config:
@@ -359,8 +359,14 @@ def diff(
359
359
  pc_diff_files.sort(key=lambda f: f.label)
360
360
  ret[device] = PCDiff(hostname=device.hostname, diff_files=pc_diff_files)
361
361
  elif old is not None:
362
+ orderer = patching.Orderer.from_hw(device.hw)
362
363
  rb = rulebook.get_rulebook(device.hw)
363
- diff_tree = patching.make_diff(old, new, rb, [acl_rules, res.filter_acl_rules])
364
+ diff_tree = patching.make_diff(
365
+ old,
366
+ orderer.order_config(new),
367
+ rb,
368
+ [acl_rules, res.filter_acl_rules],
369
+ )
364
370
  diff_tree = patching.strip_unchanged(diff_tree)
365
371
  ret[device] = diff_tree
366
372
 
@@ -27,7 +27,6 @@ from contextlog import get_logger
27
27
 
28
28
  from annet import generators, implicit, patching, tabparser, tracing
29
29
  from annet.annlib import jsontools
30
- from annet.annlib.rbparser import platform
31
30
  from annet.annlib.rbparser.acl import compile_acl_text
32
31
  from annet.cli_args import DeployOptions, GenOptions, ShowGenOptions
33
32
  from annet.deploy import scrub_config, get_fetcher
@@ -512,12 +511,11 @@ def worker(device_id, args: ShowGenOptions, stdin, loader: "Loader", filterer: F
512
511
  for (path, (data, _)) in sorted(new_file_fragments.items(), key=itemgetter(0)):
513
512
  dumped_data = json.dumps(data, indent=4, sort_keys=True, ensure_ascii=False)
514
513
  yield (output_driver.entire_config_dest_path(device, path), dumped_data, False)
515
-
516
514
  # Consider result of partial run empty and create an empty dest file
517
515
  # only if there are some acl rules that has been matched.
518
516
  # Otherwise treat it as if no supported generators have been found.
519
517
  acl_rules = res.get_acl_rules(args.acl_safe)
520
- if device.hw.vendor in platform.VENDOR_REVERSES and acl_rules:
518
+ if acl_rules:
521
519
  orderer = patching.Orderer.from_hw(device.hw)
522
520
  yield (output_driver.cfg_file_names(device)[0],
523
521
  format_config_blocks(
@@ -44,7 +44,7 @@ _DEFAULT_CONTEXT_PATH: Optional[str] = None # defaults to ~/.annet/context.yml
44
44
 
45
45
  def get_homedir_path() -> str:
46
46
  if _HOMEDIR_PATH is None:
47
- set_homedir_path("~/.annet/")
47
+ set_homedir_path(os.path.expanduser("~/.annet/"))
48
48
  return _HOMEDIR_PATH
49
49
 
50
50
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: annet
3
- Version: 0.16.3
3
+ Version: 0.16.5
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