annet 3.4.2__tar.gz → 3.5.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.

Files changed (225) hide show
  1. {annet-3.4.2/annet.egg-info → annet-3.5.0}/PKG-INFO +1 -1
  2. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/models.py +1 -1
  3. {annet-3.4.2 → annet-3.5.0}/annet/annlib/command.py +2 -1
  4. {annet-3.4.2 → annet-3.5.0}/annet/deploy_ui.py +2 -1
  5. {annet-3.4.2 → annet-3.5.0}/annet/executor.py +1 -1
  6. {annet-3.4.2 → annet-3.5.0}/annet/implicit.py +2 -2
  7. {annet-3.4.2 → annet-3.5.0}/annet/mesh/executor.py +3 -3
  8. {annet-3.4.2 → annet-3.5.0}/annet/mesh/models_converter.py +11 -1
  9. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/__init__.py +1 -1
  10. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/b4com/iface.py +5 -1
  11. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/b4com.order +1 -0
  12. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/b4com.rul +2 -1
  13. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/huawei.rul +5 -0
  14. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/juniper.rul +5 -0
  15. {annet-3.4.2 → annet-3.5.0/annet.egg-info}/PKG-INFO +1 -1
  16. {annet-3.4.2 → annet-3.5.0}/AUTHORS +0 -0
  17. {annet-3.4.2 → annet-3.5.0}/LICENSE +0 -0
  18. {annet-3.4.2 → annet-3.5.0}/MANIFEST.in +0 -0
  19. {annet-3.4.2 → annet-3.5.0}/README.md +0 -0
  20. {annet-3.4.2 → annet-3.5.0}/annet/__init__.py +0 -0
  21. {annet-3.4.2 → annet-3.5.0}/annet/adapters/__init__.py +0 -0
  22. {annet-3.4.2 → annet-3.5.0}/annet/adapters/fetchers/__init__.py +0 -0
  23. {annet-3.4.2 → annet-3.5.0}/annet/adapters/fetchers/stub/__init__.py +0 -0
  24. {annet-3.4.2 → annet-3.5.0}/annet/adapters/fetchers/stub/fetcher.py +0 -0
  25. {annet-3.4.2 → annet-3.5.0}/annet/adapters/file/__init__.py +0 -0
  26. {annet-3.4.2 → annet-3.5.0}/annet/adapters/file/provider.py +0 -0
  27. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/__init__.py +0 -0
  28. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/__init__.py +0 -0
  29. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/adapter.py +0 -0
  30. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/client.py +0 -0
  31. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/manufacturer.py +0 -0
  32. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/query.py +0 -0
  33. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/status_client.py +0 -0
  34. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/storage_base.py +0 -0
  35. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/common/storage_opts.py +0 -0
  36. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/provider.py +0 -0
  37. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v24/__init__.py +0 -0
  38. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v24/models.py +0 -0
  39. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v24/storage.py +0 -0
  40. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v37/__init__.py +0 -0
  41. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v37/models.py +0 -0
  42. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v37/storage.py +0 -0
  43. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v41/__init__.py +0 -0
  44. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v41/models.py +0 -0
  45. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v41/storage.py +0 -0
  46. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v42/__init__.py +0 -0
  47. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v42/models.py +0 -0
  48. {annet-3.4.2 → annet-3.5.0}/annet/adapters/netbox/v42/storage.py +0 -0
  49. {annet-3.4.2 → annet-3.5.0}/annet/annet.py +0 -0
  50. {annet-3.4.2 → annet-3.5.0}/annet/annlib/__init__.py +0 -0
  51. {annet-3.4.2 → annet-3.5.0}/annet/annlib/diff.py +0 -0
  52. {annet-3.4.2 → annet-3.5.0}/annet/annlib/errors.py +0 -0
  53. {annet-3.4.2 → annet-3.5.0}/annet/annlib/filter_acl.py +0 -0
  54. {annet-3.4.2 → annet-3.5.0}/annet/annlib/jsontools.py +0 -0
  55. {annet-3.4.2 → annet-3.5.0}/annet/annlib/lib.py +0 -0
  56. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/__init__.py +0 -0
  57. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/db.py +0 -0
  58. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/devdb/__init__.py +0 -0
  59. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/devdb/data/devdb.json +0 -0
  60. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/views/__init__.py +0 -0
  61. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/views/dump.py +0 -0
  62. {annet-3.4.2 → annet-3.5.0}/annet/annlib/netdev/views/hardware.py +0 -0
  63. {annet-3.4.2 → annet-3.5.0}/annet/annlib/output.py +0 -0
  64. {annet-3.4.2 → annet-3.5.0}/annet/annlib/patching.py +0 -0
  65. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/__init__.py +0 -0
  66. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/acl.py +0 -0
  67. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/deploying.py +0 -0
  68. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/ordering.py +0 -0
  69. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/platform.py +0 -0
  70. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rbparser/syntax.py +0 -0
  71. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rulebook/__init__.py +0 -0
  72. {annet-3.4.2 → annet-3.5.0}/annet/annlib/rulebook/common.py +0 -0
  73. {annet-3.4.2 → annet-3.5.0}/annet/annlib/types.py +0 -0
  74. {annet-3.4.2 → annet-3.5.0}/annet/api/__init__.py +0 -0
  75. {annet-3.4.2 → annet-3.5.0}/annet/argparse.py +0 -0
  76. {annet-3.4.2 → annet-3.5.0}/annet/bgp_models.py +0 -0
  77. {annet-3.4.2 → annet-3.5.0}/annet/cli.py +0 -0
  78. {annet-3.4.2 → annet-3.5.0}/annet/cli_args.py +0 -0
  79. {annet-3.4.2 → annet-3.5.0}/annet/configs/context.yml +0 -0
  80. {annet-3.4.2 → annet-3.5.0}/annet/configs/logging.yaml +0 -0
  81. {annet-3.4.2 → annet-3.5.0}/annet/connectors.py +0 -0
  82. {annet-3.4.2 → annet-3.5.0}/annet/deploy.py +0 -0
  83. {annet-3.4.2 → annet-3.5.0}/annet/diff.py +0 -0
  84. {annet-3.4.2 → annet-3.5.0}/annet/filtering.py +0 -0
  85. {annet-3.4.2 → annet-3.5.0}/annet/gen.py +0 -0
  86. {annet-3.4.2 → annet-3.5.0}/annet/generators/__init__.py +0 -0
  87. {annet-3.4.2 → annet-3.5.0}/annet/generators/base.py +0 -0
  88. {annet-3.4.2 → annet-3.5.0}/annet/generators/common/__init__.py +0 -0
  89. {annet-3.4.2 → annet-3.5.0}/annet/generators/common/initial.py +0 -0
  90. {annet-3.4.2 → annet-3.5.0}/annet/generators/entire.py +0 -0
  91. {annet-3.4.2 → annet-3.5.0}/annet/generators/exceptions.py +0 -0
  92. {annet-3.4.2 → annet-3.5.0}/annet/generators/jsonfragment.py +0 -0
  93. {annet-3.4.2 → annet-3.5.0}/annet/generators/partial.py +0 -0
  94. {annet-3.4.2 → annet-3.5.0}/annet/generators/perf.py +0 -0
  95. {annet-3.4.2 → annet-3.5.0}/annet/generators/ref.py +0 -0
  96. {annet-3.4.2 → annet-3.5.0}/annet/generators/result.py +0 -0
  97. {annet-3.4.2 → annet-3.5.0}/annet/hardware.py +0 -0
  98. {annet-3.4.2 → annet-3.5.0}/annet/lib.py +0 -0
  99. {annet-3.4.2 → annet-3.5.0}/annet/mesh/__init__.py +0 -0
  100. {annet-3.4.2 → annet-3.5.0}/annet/mesh/basemodel.py +0 -0
  101. {annet-3.4.2 → annet-3.5.0}/annet/mesh/device_models.py +0 -0
  102. {annet-3.4.2 → annet-3.5.0}/annet/mesh/match_args.py +0 -0
  103. {annet-3.4.2 → annet-3.5.0}/annet/mesh/peer_models.py +0 -0
  104. {annet-3.4.2 → annet-3.5.0}/annet/mesh/port_processor.py +0 -0
  105. {annet-3.4.2 → annet-3.5.0}/annet/mesh/registry.py +0 -0
  106. {annet-3.4.2 → annet-3.5.0}/annet/output.py +0 -0
  107. {annet-3.4.2 → annet-3.5.0}/annet/parallel.py +0 -0
  108. {annet-3.4.2 → annet-3.5.0}/annet/patching.py +0 -0
  109. {annet-3.4.2 → annet-3.5.0}/annet/reference.py +0 -0
  110. {annet-3.4.2 → annet-3.5.0}/annet/rpl/__init__.py +0 -0
  111. {annet-3.4.2 → annet-3.5.0}/annet/rpl/action.py +0 -0
  112. {annet-3.4.2 → annet-3.5.0}/annet/rpl/condition.py +0 -0
  113. {annet-3.4.2 → annet-3.5.0}/annet/rpl/match_builder.py +0 -0
  114. {annet-3.4.2 → annet-3.5.0}/annet/rpl/policy.py +0 -0
  115. {annet-3.4.2 → annet-3.5.0}/annet/rpl/result.py +0 -0
  116. {annet-3.4.2 → annet-3.5.0}/annet/rpl/routemap.py +0 -0
  117. {annet-3.4.2 → annet-3.5.0}/annet/rpl/statement_builder.py +0 -0
  118. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/__init__.py +0 -0
  119. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/aspath.py +0 -0
  120. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/community.py +0 -0
  121. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/cumulus_frr.py +0 -0
  122. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/entities.py +0 -0
  123. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/execute.py +0 -0
  124. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/policy.py +0 -0
  125. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/prefix_lists.py +0 -0
  126. {annet-3.4.2 → annet-3.5.0}/annet/rpl_generators/rd.py +0 -0
  127. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/arista/__init__.py +0 -0
  128. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/arista/aaa.py +0 -0
  129. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/arista/iface.py +0 -0
  130. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/aruba/__init__.py +0 -0
  131. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/aruba/ap_env.py +0 -0
  132. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/aruba/misc.py +0 -0
  133. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/b4com/__init__.py +0 -0
  134. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/b4com/file.py +0 -0
  135. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/cisco/__init__.py +0 -0
  136. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/cisco/iface.py +0 -0
  137. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/cisco/misc.py +0 -0
  138. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/cisco/vlandb.py +0 -0
  139. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/common.py +0 -0
  140. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/deploying.py +0 -0
  141. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/__init__.py +0 -0
  142. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/aaa.py +0 -0
  143. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/bgp.py +0 -0
  144. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/iface.py +0 -0
  145. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/misc.py +0 -0
  146. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/huawei/vlandb.py +0 -0
  147. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/juniper/__init__.py +0 -0
  148. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/nexus/__init__.py +0 -0
  149. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/nexus/iface.py +0 -0
  150. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/patching.py +0 -0
  151. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/routeros/__init__.py +0 -0
  152. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/routeros/file.py +0 -0
  153. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/arista.deploy +0 -0
  154. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/arista.order +0 -0
  155. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/arista.rul +0 -0
  156. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/aruba.deploy +0 -0
  157. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/aruba.order +0 -0
  158. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/aruba.rul +0 -0
  159. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/b4com.deploy +0 -0
  160. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/cisco.deploy +0 -0
  161. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/cisco.order +0 -0
  162. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/cisco.rul +0 -0
  163. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/huawei.deploy +0 -0
  164. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/huawei.order +0 -0
  165. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/iosxr.deploy +0 -0
  166. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/iosxr.order +0 -0
  167. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/iosxr.rul +0 -0
  168. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/juniper.order +0 -0
  169. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/nexus.deploy +0 -0
  170. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/nexus.order +0 -0
  171. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/nexus.rul +0 -0
  172. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/nokia.rul +0 -0
  173. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/optixtrans.deploy +0 -0
  174. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/optixtrans.order +0 -0
  175. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/optixtrans.rul +0 -0
  176. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/pc.deploy +0 -0
  177. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/pc.order +0 -0
  178. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/pc.rul +0 -0
  179. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/ribbon.deploy +0 -0
  180. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/ribbon.rul +0 -0
  181. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/routeros.order +0 -0
  182. {annet-3.4.2 → annet-3.5.0}/annet/rulebook/texts/routeros.rul +0 -0
  183. {annet-3.4.2 → annet-3.5.0}/annet/storage.py +0 -0
  184. {annet-3.4.2 → annet-3.5.0}/annet/text_term_format.py +0 -0
  185. {annet-3.4.2 → annet-3.5.0}/annet/tracing.py +0 -0
  186. {annet-3.4.2 → annet-3.5.0}/annet/types.py +0 -0
  187. {annet-3.4.2 → annet-3.5.0}/annet/vendors/__init__.py +0 -0
  188. {annet-3.4.2 → annet-3.5.0}/annet/vendors/base.py +0 -0
  189. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/__init__.py +0 -0
  190. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/arista.py +0 -0
  191. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/aruba.py +0 -0
  192. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/b4com.py +0 -0
  193. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/cisco.py +0 -0
  194. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/h3c.py +0 -0
  195. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/huawei.py +0 -0
  196. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/iosxr.py +0 -0
  197. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/juniper.py +0 -0
  198. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/nexus.py +0 -0
  199. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/nokia.py +0 -0
  200. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/optixtrans.py +0 -0
  201. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/pc.py +0 -0
  202. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/ribbon.py +0 -0
  203. {annet-3.4.2 → annet-3.5.0}/annet/vendors/library/routeros.py +0 -0
  204. {annet-3.4.2 → annet-3.5.0}/annet/vendors/registry.py +0 -0
  205. {annet-3.4.2 → annet-3.5.0}/annet/vendors/tabparser.py +0 -0
  206. {annet-3.4.2 → annet-3.5.0}/annet.egg-info/SOURCES.txt +0 -0
  207. {annet-3.4.2 → annet-3.5.0}/annet.egg-info/dependency_links.txt +0 -0
  208. {annet-3.4.2 → annet-3.5.0}/annet.egg-info/entry_points.txt +0 -0
  209. {annet-3.4.2 → annet-3.5.0}/annet.egg-info/requires.txt +0 -0
  210. {annet-3.4.2 → annet-3.5.0}/annet.egg-info/top_level.txt +0 -0
  211. {annet-3.4.2 → annet-3.5.0}/annet_generators/__init__.py +0 -0
  212. {annet-3.4.2 → annet-3.5.0}/annet_generators/example/__init__.py +0 -0
  213. {annet-3.4.2 → annet-3.5.0}/annet_generators/example/hostname.py +0 -0
  214. {annet-3.4.2 → annet-3.5.0}/annet_generators/example/lldp.py +0 -0
  215. {annet-3.4.2 → annet-3.5.0}/annet_generators/mesh_example/__init__.py +0 -0
  216. {annet-3.4.2 → annet-3.5.0}/annet_generators/mesh_example/bgp.py +0 -0
  217. {annet-3.4.2 → annet-3.5.0}/annet_generators/mesh_example/mesh_logic.py +0 -0
  218. {annet-3.4.2 → annet-3.5.0}/annet_generators/rpl_example/__init__.py +0 -0
  219. {annet-3.4.2 → annet-3.5.0}/annet_generators/rpl_example/generator.py +0 -0
  220. {annet-3.4.2 → annet-3.5.0}/annet_generators/rpl_example/items.py +0 -0
  221. {annet-3.4.2 → annet-3.5.0}/annet_generators/rpl_example/mesh.py +0 -0
  222. {annet-3.4.2 → annet-3.5.0}/annet_generators/rpl_example/route_policy.py +0 -0
  223. {annet-3.4.2 → annet-3.5.0}/requirements.txt +0 -0
  224. {annet-3.4.2 → annet-3.5.0}/setup.cfg +0 -0
  225. {annet-3.4.2 → annet-3.5.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: annet
3
- Version: 3.4.2
3
+ Version: 3.5.0
4
4
  Summary: annet
5
5
  Home-page: https://github.com/annetutil/annet
6
6
  License: MIT
@@ -101,7 +101,7 @@ class IpAddress(DumpableView, Generic[_PrefixT]):
101
101
 
102
102
  @dataclass
103
103
  class InterfaceConnectedEndpoint(Entity):
104
- device: Entity
104
+ device: Entity | None
105
105
 
106
106
 
107
107
  @dataclass
@@ -19,7 +19,8 @@ class Command:
19
19
  cmd: str
20
20
  questions: Optional[List[Question]] = None
21
21
  exc_handler: Optional[List[Question]] = None
22
- timeout: Optional[int] = None
22
+ timeout: Optional[int] = None # total timeout
23
+ read_timeout: Optional[int] = None # timeout between consecutive reads
23
24
  suppress_nonzero: bool = False
24
25
  suppress_eof: bool = False
25
26
 
@@ -5,6 +5,7 @@ import os
5
5
  import sys
6
6
  import math
7
7
  import asyncio
8
+ import platform
8
9
  import textwrap
9
10
  import time
10
11
  import traceback
@@ -23,7 +24,7 @@ try:
23
24
  except ImportError:
24
25
  curses = None
25
26
 
26
- uname = os.uname()[0]
27
+ uname = platform.uname()[0]
27
28
  NCURSES_SIZE_T = 2 ** 15 - 1
28
29
  MIN_CONTENT_HEIGHT = 20
29
30
 
@@ -162,7 +162,7 @@ class DeferredFileWrite:
162
162
  raise Exception()
163
163
 
164
164
  def write(self, data):
165
- with open(self._file, self._mode) as fh:
165
+ with open(self._file, self._mode, encoding="utf-8") as fh:
166
166
  fh.write(data)
167
167
 
168
168
  def close(self):
@@ -133,9 +133,9 @@ def _implicit_tree(device):
133
133
  no shutdown
134
134
  """
135
135
  elif device.hw.Cisco:
136
- # C2900/C3500/C3600 does not support the MTU on a per-interface basis
136
+ # C2900/C3500/C3600/AIR does not support the MTU on a per-interface basis
137
137
  if device.hw.Cisco.Catalyst.C2900 or device.hw.Cisco.Catalyst.C3500 \
138
- or device.hw.Cisco.Catalyst.C3600:
138
+ or device.hw.Cisco.Catalyst.C3600 or device.hw.Cisco.AIR:
139
139
  text += r"""
140
140
  !interface */\S*Ethernet\S+/
141
141
  no shutdown
@@ -370,7 +370,7 @@ class MeshExecutor:
370
370
  device,
371
371
  direct_pair.device,
372
372
  direct_pair.ports,
373
- to_interface_changes(direct_pair.local),
373
+ to_interface_changes(direct_pair.local, direct_pair.connected),
374
374
  )
375
375
  peers.append(self._to_bgp_peer(direct_pair, target_interface))
376
376
 
@@ -378,7 +378,7 @@ class MeshExecutor:
378
378
  target_interface = self._apply_nondirect_interface_changes(
379
379
  device,
380
380
  getattr(virtual_pair.local, "ifname", None),
381
- to_interface_changes(virtual_pair.local),
381
+ to_interface_changes(virtual_pair.local, virtual_pair.connected),
382
382
  )
383
383
  peers.append(self._virtual_to_bgp_peer(virtual_pair, target_interface))
384
384
 
@@ -386,7 +386,7 @@ class MeshExecutor:
386
386
  target_interface = self._apply_nondirect_interface_changes(
387
387
  device,
388
388
  getattr(connected_pair.local, "ifname", None),
389
- to_interface_changes(connected_pair.local),
389
+ to_interface_changes(connected_pair.local, connected_pair.connected),
390
390
  )
391
391
  peers.append(self._to_bgp_peer(connected_pair, target_interface))
392
392
 
@@ -67,7 +67,17 @@ retort = Retort(
67
67
  )
68
68
 
69
69
  to_bgp_global_options = retort.get_loader(GlobalOptions)
70
- to_interface_changes = retort.get_loader(InterfaceChanges)
70
+
71
+
72
+ def to_interface_changes(local: LocalDTO, peer: PeerDTO) -> InterfaceChanges:
73
+ return InterfaceChanges(
74
+ addr=getattr(local, "addr", None),
75
+ lag_links_min=getattr(local, "lag_links_min", None),
76
+ svi=getattr(local, "svi", None),
77
+ subif=getattr(local, "subif", None),
78
+ vrf=getattr(peer, "vrf", None),
79
+ lag=getattr(local, "lag", None),
80
+ )
71
81
 
72
82
 
73
83
  def to_bgp_peer(local: LocalDTO, connected: PeerDTO, connected_hostname: str, interface: Optional[str]) -> Peer:
@@ -99,7 +99,7 @@ class DefaultRulebookProvider(RulebookProvider):
99
99
  return self._escaped_rul_cache[name]
100
100
  for root_dir in self.root_dir:
101
101
  try:
102
- with open(path.join(root_dir, "texts", name), "r") as f:
102
+ with open(path.join(root_dir, "texts", name), "r", encoding="utf-8") as f:
103
103
  self._escaped_rul_cache[name] = self._escape_mako(f.read())
104
104
  return self._escaped_rul_cache[name]
105
105
  except FileNotFoundError:
@@ -42,11 +42,15 @@ def sflow(rule, key, diff, **kwargs):
42
42
 
43
43
  def lldp(rule, key, diff, **kwargs):
44
44
  """
45
- Не удаляем все что начинается с set, т.к. set перезаписывает предыдущий конфиг
45
+ Обрабатываем блок lldp-agent
46
46
  """
47
47
  result = common.default(rule, key, diff, **kwargs)
48
48
  for op, cmd, ch in result:
49
+ # Не удаляем все что начинается с set, т.к. set перезаписывает предыдущий конфиг
49
50
  if diff[Op.REMOVED] and "set lldp" in cmd:
50
51
  pass
52
+ # В случае lldp tlv ... select удаляем все что до select
53
+ elif diff[Op.REMOVED] and cmd.endswith("select"):
54
+ yield (op, " ".join(cmd.split()[:-1]), ch)
51
55
  else:
52
56
  yield (op, cmd, ch)
@@ -6,6 +6,7 @@
6
6
  # Фичи должны быть включены прежде всего
7
7
  feature
8
8
  # Далее нужно будет указать команды и их порядок
9
+ sflow
9
10
  interface *
10
11
  description
11
12
  ip vrf forwarding
@@ -13,11 +13,12 @@
13
13
  # Physical
14
14
  sflow *
15
15
 
16
- interface */(ce|xe|eth)[0-9\/]+$/ %logic=common.permanent %diff_logic=cisco.iface.diff
16
+ interface */(ce|xe|eth|vlan)[0-9\/]+$/ %logic=common.permanent %diff_logic=cisco.iface.diff
17
17
  description * %logic=b4com.iface.description
18
18
  ip vrf forwarding *
19
19
  ip address *
20
20
  ipv6 address *
21
+ ipv6 nd *
21
22
  mtu * %logic=b4com.iface.mtu
22
23
  sflow * %logic=b4com.iface.sflow
23
24
  lldp-agent
@@ -55,6 +55,11 @@ dhcp snooping user-bind http
55
55
 
56
56
  ntp server disable
57
57
  ntp ipv6 server disable
58
+ ntp unicast-server domain *
59
+ ntp unicast-server ipv6 *
60
+ ntp unicast-server *
61
+ ntp-service unicast-server ipv6 *
62
+ ntp-service unicast-server *
58
63
  ntp ~
59
64
  dns snooping ttl delay-time
60
65
  dns ~
@@ -18,6 +18,11 @@ system
18
18
  ntp
19
19
  server *
20
20
  source-address *
21
+ syslog
22
+ host *
23
+ match
24
+ file messages
25
+ match
21
26
 
22
27
  routing-options
23
28
  autonomous-system *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: annet
3
- Version: 3.4.2
3
+ Version: 3.5.0
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes