netbox-nso-plugin 0.2.0__py3-none-any.whl

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.
Files changed (278) hide show
  1. netbox_nso_plugin/__init__.py +61 -0
  2. netbox_nso_plugin/adapter_client.py +1097 -0
  3. netbox_nso_plugin/api/__init__.py +2 -0
  4. netbox_nso_plugin/api/serializers.py +433 -0
  5. netbox_nso_plugin/api/urls.py +25 -0
  6. netbox_nso_plugin/api/views.py +290 -0
  7. netbox_nso_plugin/bfd_reconciler.py +197 -0
  8. netbox_nso_plugin/bgp_reconciler.py +768 -0
  9. netbox_nso_plugin/derived_intent.py +301 -0
  10. netbox_nso_plugin/families.py +76 -0
  11. netbox_nso_plugin/filters.py +91 -0
  12. netbox_nso_plugin/forms.py +696 -0
  13. netbox_nso_plugin/intent_drift.py +430 -0
  14. netbox_nso_plugin/intent_generation.py +33 -0
  15. netbox_nso_plugin/interface_mtu_reconciler.py +77 -0
  16. netbox_nso_plugin/ip_autoassign.py +837 -0
  17. netbox_nso_plugin/isis_write_policy.py +89 -0
  18. netbox_nso_plugin/jobs.py +106 -0
  19. netbox_nso_plugin/l2_service_reconciler.py +145 -0
  20. netbox_nso_plugin/lacp_reconciler.py +124 -0
  21. netbox_nso_plugin/link_role.py +398 -0
  22. netbox_nso_plugin/management/__init__.py +2 -0
  23. netbox_nso_plugin/management/commands/__init__.py +2 -0
  24. netbox_nso_plugin/management/commands/nso_consume_static_route_settlements.py +82 -0
  25. netbox_nso_plugin/management/commands/nso_resync_static_route_intent.py +53 -0
  26. netbox_nso_plugin/merge_util.py +46 -0
  27. netbox_nso_plugin/migrations/0001_initial.py +1613 -0
  28. netbox_nso_plugin/migrations/0002_nsodevicemanagement_degraded_surfaces.py +17 -0
  29. netbox_nso_plugin/migrations/0003_nsodevicemanagement_adapter_link_error.py +17 -0
  30. netbox_nso_plugin/migrations/0004_nsosnmpcommunitystate_vault_secret_hash_and_more.py +72 -0
  31. netbox_nso_plugin/migrations/0005_nsoroutepolicystate_unsupported_members.py +17 -0
  32. netbox_nso_plugin/migrations/0006_nsoisisinterfacestate_bfd_enabled.py +17 -0
  33. netbox_nso_plugin/migrations/0007_isis_frr_fields.py +32 -0
  34. netbox_nso_plugin/migrations/0008_snmp_host_v3_username.py +17 -0
  35. netbox_nso_plugin/migrations/0009_nsoderivedintenttemplate.py +59 -0
  36. netbox_nso_plugin/migrations/0010_nsofailoversettings_active_probe_timeout.py +31 -0
  37. netbox_nso_plugin/migrations/0011_nsolacpbundlestate_vpc_sensitive.py +17 -0
  38. netbox_nso_plugin/migrations/0012_nsologginglevelstate.py +52 -0
  39. netbox_nso_plugin/migrations/0013_nsologginglevelstate_last_apply_at_and_more.py +22 -0
  40. netbox_nso_plugin/migrations/0014_nsodevicemanagement_adapter_incarnation_and_more.py +86 -0
  41. netbox_nso_plugin/migrations/0015_readsem_1332_atomic_publication.py +89 -0
  42. netbox_nso_plugin/migrations/0016_static_route_intent_generation.py +72 -0
  43. netbox_nso_plugin/migrations/0017_settlement_cursor_epoch.py +55 -0
  44. netbox_nso_plugin/migrations/__init__.py +2 -0
  45. netbox_nso_plugin/models.py +2720 -0
  46. netbox_nso_plugin/navigation.py +38 -0
  47. netbox_nso_plugin/onboarding.py +494 -0
  48. netbox_nso_plugin/read_gate.py +1040 -0
  49. netbox_nso_plugin/reconcile.py +1601 -0
  50. netbox_nso_plugin/redistribution_reconciler.py +268 -0
  51. netbox_nso_plugin/route_policy_diff.py +612 -0
  52. netbox_nso_plugin/route_policy_reconciler.py +1221 -0
  53. netbox_nso_plugin/route_policy_structure.py +492 -0
  54. netbox_nso_plugin/settlement.py +473 -0
  55. netbox_nso_plugin/shared_object_ownership.py +273 -0
  56. netbox_nso_plugin/signals.py +4751 -0
  57. netbox_nso_plugin/snmp_versions.py +23 -0
  58. netbox_nso_plugin/static/netbox_nso_plugin/nso-badges.js +75 -0
  59. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-bfd.js +124 -0
  60. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-bgp.js +230 -0
  61. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-interface.js +428 -0
  62. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-isis.js +293 -0
  63. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-lacp.js +176 -0
  64. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-ospf.js +198 -0
  65. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-redistribution.js +134 -0
  66. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-route-policy.js +131 -0
  67. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid-static.js +145 -0
  68. netbox_nso_plugin/static/netbox_nso_plugin/nso-grid.js +457 -0
  69. netbox_nso_plugin/static/netbox_nso_plugin/nso-popedit.js +240 -0
  70. netbox_nso_plugin/static/netbox_nso_plugin/nso.css +127 -0
  71. netbox_nso_plugin/static/netbox_nso_plugin/vendor/diff2html.min.css +1 -0
  72. netbox_nso_plugin/static/netbox_nso_plugin/vendor/diff2html.min.css.license +2 -0
  73. netbox_nso_plugin/static/netbox_nso_plugin/vendor/diff2html.min.js +1 -0
  74. netbox_nso_plugin/static/netbox_nso_plugin/vendor/diff2html.min.js.license +2 -0
  75. netbox_nso_plugin/static/netbox_nso_plugin/vendor/tabulator.min.js +3 -0
  76. netbox_nso_plugin/static/netbox_nso_plugin/vendor/tabulator.min.js.license +2 -0
  77. netbox_nso_plugin/static/netbox_nso_plugin/vendor/tabulator_bootstrap5.min.css +2 -0
  78. netbox_nso_plugin/static/netbox_nso_plugin/vendor/tabulator_bootstrap5.min.css.license +2 -0
  79. netbox_nso_plugin/status_machine.py +459 -0
  80. netbox_nso_plugin/subinterface_reconciler.py +88 -0
  81. netbox_nso_plugin/summary.py +525 -0
  82. netbox_nso_plugin/svi_reconciler.py +72 -0
  83. netbox_nso_plugin/sync_cache.py +284 -0
  84. netbox_nso_plugin/tables.py +201 -0
  85. netbox_nso_plugin/template_content.py +2828 -0
  86. netbox_nso_plugin/templates/netbox_nso_plugin/adapterconnection.html +70 -0
  87. netbox_nso_plugin/templates/netbox_nso_plugin/attach_route_policy.html +96 -0
  88. netbox_nso_plugin/templates/netbox_nso_plugin/attach_vlan.html +41 -0
  89. netbox_nso_plugin/templates/netbox_nso_plugin/bgp_peer_form.html +35 -0
  90. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_accept_cell.html +6 -0
  91. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_adapter_error.html +4 -0
  92. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_bulk_accept.html +5 -0
  93. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_cat_pager.html +11 -0
  94. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_cat_search.html +20 -0
  95. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_diff_value_cell.html +7 -0
  96. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_edit_link.html +5 -0
  97. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_grid.html +23 -0
  98. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_interfaces_rows.html +117 -0
  99. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_push_error.html +16 -0
  100. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_route_map_version_detail.html +41 -0
  101. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_state_badge.html +16 -0
  102. netbox_nso_plugin/templates/netbox_nso_plugin/categories/_table_filter.html +77 -0
  103. netbox_nso_plugin/templates/netbox_nso_plugin/categories/bfd.html +20 -0
  104. netbox_nso_plugin/templates/netbox_nso_plugin/categories/bgp.html +30 -0
  105. netbox_nso_plugin/templates/netbox_nso_plugin/categories/interface.html +69 -0
  106. netbox_nso_plugin/templates/netbox_nso_plugin/categories/interface_ips.html +40 -0
  107. netbox_nso_plugin/templates/netbox_nso_plugin/categories/interface_mtu.html +45 -0
  108. netbox_nso_plugin/templates/netbox_nso_plugin/categories/interfaces_page.html +152 -0
  109. netbox_nso_plugin/templates/netbox_nso_plugin/categories/isis.html +46 -0
  110. netbox_nso_plugin/templates/netbox_nso_plugin/categories/l2_services.html +51 -0
  111. netbox_nso_plugin/templates/netbox_nso_plugin/categories/lacp.html +16 -0
  112. netbox_nso_plugin/templates/netbox_nso_plugin/categories/logging.html +109 -0
  113. netbox_nso_plugin/templates/netbox_nso_plugin/categories/ospf.html +35 -0
  114. netbox_nso_plugin/templates/netbox_nso_plugin/categories/redistribution.html +19 -0
  115. netbox_nso_plugin/templates/netbox_nso_plugin/categories/route_policy.html +34 -0
  116. netbox_nso_plugin/templates/netbox_nso_plugin/categories/snmp.html +203 -0
  117. netbox_nso_plugin/templates/netbox_nso_plugin/categories/static.html +20 -0
  118. netbox_nso_plugin/templates/netbox_nso_plugin/categories/subinterface.html +50 -0
  119. netbox_nso_plugin/templates/netbox_nso_plugin/categories/svi.html +50 -0
  120. netbox_nso_plugin/templates/netbox_nso_plugin/categories/switchport.html +32 -0
  121. netbox_nso_plugin/templates/netbox_nso_plugin/categories/vlan.html +56 -0
  122. netbox_nso_plugin/templates/netbox_nso_plugin/device_nso_tab.html +1154 -0
  123. netbox_nso_plugin/templates/netbox_nso_plugin/inc/_links_tabs.html +23 -0
  124. netbox_nso_plugin/templates/netbox_nso_plugin/inc/_settings_tabs.html +35 -0
  125. netbox_nso_plugin/templates/netbox_nso_plugin/inc/diff2html_viewer.html +68 -0
  126. netbox_nso_plugin/templates/netbox_nso_plugin/inc/route_policy_diff_content.html +42 -0
  127. netbox_nso_plugin/templates/netbox_nso_plugin/interface_nso_badge.html +73 -0
  128. netbox_nso_plugin/templates/netbox_nso_plugin/isis_write_policy.html +28 -0
  129. netbox_nso_plugin/templates/netbox_nso_plugin/links_bulk_delete.html +8 -0
  130. netbox_nso_plugin/templates/netbox_nso_plugin/links_object_delete.html +7 -0
  131. netbox_nso_plugin/templates/netbox_nso_plugin/links_object_edit.html +8 -0
  132. netbox_nso_plugin/templates/netbox_nso_plugin/links_object_list.html +10 -0
  133. netbox_nso_plugin/templates/netbox_nso_plugin/nsoderivedintenttemplate.html +33 -0
  134. netbox_nso_plugin/templates/netbox_nso_plugin/nsodevicemanagement.html +106 -0
  135. netbox_nso_plugin/templates/netbox_nso_plugin/nsodevicemanagement_bulk_delete.html +10 -0
  136. netbox_nso_plugin/templates/netbox_nso_plugin/nsodevicemanagement_delete.html +9 -0
  137. netbox_nso_plugin/templates/netbox_nso_plugin/nsodevicemanagement_edit.html +203 -0
  138. netbox_nso_plugin/templates/netbox_nso_plugin/nsoinstance.html +47 -0
  139. netbox_nso_plugin/templates/netbox_nso_plugin/nsointerfacestate.html +90 -0
  140. netbox_nso_plugin/templates/netbox_nso_plugin/nsolinkrole.html +155 -0
  141. netbox_nso_plugin/templates/netbox_nso_plugin/nsolinkroleassignment.html +46 -0
  142. netbox_nso_plugin/templates/netbox_nso_plugin/nsoplatformnedmapping.html +39 -0
  143. netbox_nso_plugin/templates/netbox_nso_plugin/onboarding_dashboard.html +225 -0
  144. netbox_nso_plugin/templates/netbox_nso_plugin/redistribution_diff.html +49 -0
  145. netbox_nso_plugin/templates/netbox_nso_plugin/rescope_vlan.html +42 -0
  146. netbox_nso_plugin/templates/netbox_nso_plugin/route_policy_capabilities.html +122 -0
  147. netbox_nso_plugin/templates/netbox_nso_plugin/route_policy_classify_bulk.html +68 -0
  148. netbox_nso_plugin/templates/netbox_nso_plugin/route_policy_diff.html +36 -0
  149. netbox_nso_plugin/templates/netbox_nso_plugin/route_policy_diff_modal.html +17 -0
  150. netbox_nso_plugin/templates/netbox_nso_plugin/route_policy_nso_devices.html +88 -0
  151. netbox_nso_plugin/templates/netbox_nso_plugin/settings_bulk_delete.html +8 -0
  152. netbox_nso_plugin/templates/netbox_nso_plugin/settings_object_delete.html +7 -0
  153. netbox_nso_plugin/templates/netbox_nso_plugin/settings_object_edit.html +10 -0
  154. netbox_nso_plugin/templates/netbox_nso_plugin/settings_object_list.html +10 -0
  155. netbox_nso_plugin/templates/netbox_nso_plugin/shared_object_versions.html +154 -0
  156. netbox_nso_plugin/tests/__init__.py +2 -0
  157. netbox_nso_plugin/tests/_adapter_http.py +65 -0
  158. netbox_nso_plugin/tests/_settlement_adapter.py +318 -0
  159. netbox_nso_plugin/tests/_settlement_case.py +239 -0
  160. netbox_nso_plugin/tests/conftest.py +163 -0
  161. netbox_nso_plugin/tests/mixins.py +54 -0
  162. netbox_nso_plugin/tests/mock_discipline.py +303 -0
  163. netbox_nso_plugin/tests/test_adapter_client_ext.py +626 -0
  164. netbox_nso_plugin/tests/test_adapter_timestamp_contract.py +228 -0
  165. netbox_nso_plugin/tests/test_apply_backstop.py +232 -0
  166. netbox_nso_plugin/tests/test_bfd_reconciler.py +377 -0
  167. netbox_nso_plugin/tests/test_bgp_greenfield.py +409 -0
  168. netbox_nso_plugin/tests/test_bgp_reconciler.py +1089 -0
  169. netbox_nso_plugin/tests/test_contract_bgp.py +185 -0
  170. netbox_nso_plugin/tests/test_contract_interface_ips.py +67 -0
  171. netbox_nso_plugin/tests/test_contract_interfaces.py +257 -0
  172. netbox_nso_plugin/tests/test_contract_isis.py +264 -0
  173. netbox_nso_plugin/tests/test_contract_l2_read.py +111 -0
  174. netbox_nso_plugin/tests/test_contract_l2_services.py +64 -0
  175. netbox_nso_plugin/tests/test_contract_lag.py +83 -0
  176. netbox_nso_plugin/tests/test_contract_ospf.py +99 -0
  177. netbox_nso_plugin/tests/test_contract_redistribution.py +80 -0
  178. netbox_nso_plugin/tests/test_contract_route_policy.py +132 -0
  179. netbox_nso_plugin/tests/test_contract_snmp_logging.py +188 -0
  180. netbox_nso_plugin/tests/test_contract_static_routes.py +76 -0
  181. netbox_nso_plugin/tests/test_derived_intent_compute.py +263 -0
  182. netbox_nso_plugin/tests/test_derived_intent_config.py +120 -0
  183. netbox_nso_plugin/tests/test_derived_intent_registry.py +96 -0
  184. netbox_nso_plugin/tests/test_derived_intent_signals.py +296 -0
  185. netbox_nso_plugin/tests/test_django_api.py +260 -0
  186. netbox_nso_plugin/tests/test_django_filters.py +130 -0
  187. netbox_nso_plugin/tests/test_django_models.py +263 -0
  188. netbox_nso_plugin/tests/test_django_template.py +382 -0
  189. netbox_nso_plugin/tests/test_django_views.py +5614 -0
  190. netbox_nso_plugin/tests/test_forms.py +104 -0
  191. netbox_nso_plugin/tests/test_gated_reconcile.py +415 -0
  192. netbox_nso_plugin/tests/test_greenfield_subif.py +47 -0
  193. netbox_nso_plugin/tests/test_intent_drift.py +247 -0
  194. netbox_nso_plugin/tests/test_intent_generation_schema.py +201 -0
  195. netbox_nso_plugin/tests/test_interface_ip.py +766 -0
  196. netbox_nso_plugin/tests/test_interface_mtu_reconciler.py +259 -0
  197. netbox_nso_plugin/tests/test_ip_autoassign.py +1091 -0
  198. netbox_nso_plugin/tests/test_isis_flex_algo_signals.py +117 -0
  199. netbox_nso_plugin/tests/test_isis_intent_push.py +88 -0
  200. netbox_nso_plugin/tests/test_isis_interfaces.py +1877 -0
  201. netbox_nso_plugin/tests/test_isis_write_policy.py +180 -0
  202. netbox_nso_plugin/tests/test_l2_sap_signals.py +170 -0
  203. netbox_nso_plugin/tests/test_l2_sap_state_model.py +54 -0
  204. netbox_nso_plugin/tests/test_l2_service_reconciler.py +180 -0
  205. netbox_nso_plugin/tests/test_l2_services_category.py +221 -0
  206. netbox_nso_plugin/tests/test_lacp_reconciler.py +169 -0
  207. netbox_nso_plugin/tests/test_lacp_signals.py +214 -0
  208. netbox_nso_plugin/tests/test_lag_topology.py +217 -0
  209. netbox_nso_plugin/tests/test_lifecycle_ownership.py +127 -0
  210. netbox_nso_plugin/tests/test_link_role_description.py +152 -0
  211. netbox_nso_plugin/tests/test_link_role_igp.py +170 -0
  212. netbox_nso_plugin/tests/test_link_role_ip.py +270 -0
  213. netbox_nso_plugin/tests/test_link_role_models.py +320 -0
  214. netbox_nso_plugin/tests/test_link_role_provision.py +322 -0
  215. netbox_nso_plugin/tests/test_link_role_resolver.py +201 -0
  216. netbox_nso_plugin/tests/test_logging_config.py +435 -0
  217. netbox_nso_plugin/tests/test_logging_levels.py +503 -0
  218. netbox_nso_plugin/tests/test_migrations.py +41 -0
  219. netbox_nso_plugin/tests/test_mock_discipline.py +178 -0
  220. netbox_nso_plugin/tests/test_models.py +349 -0
  221. netbox_nso_plugin/tests/test_ned_mapping.py +57 -0
  222. netbox_nso_plugin/tests/test_onboard_selfheal.py +213 -0
  223. netbox_nso_plugin/tests/test_onboarding.py +522 -0
  224. netbox_nso_plugin/tests/test_ospf_reconciler.py +373 -0
  225. netbox_nso_plugin/tests/test_overlay_urls.py +85 -0
  226. netbox_nso_plugin/tests/test_parallel_test_setup.py +25 -0
  227. netbox_nso_plugin/tests/test_read_chips.py +380 -0
  228. netbox_nso_plugin/tests/test_read_gate.py +1616 -0
  229. netbox_nso_plugin/tests/test_read_state_client.py +229 -0
  230. netbox_nso_plugin/tests/test_reconcile.py +1023 -0
  231. netbox_nso_plugin/tests/test_reconcile_clobber.py +206 -0
  232. netbox_nso_plugin/tests/test_redistribution_reconciler.py +453 -0
  233. netbox_nso_plugin/tests/test_removal_blocked_surfacing.py +501 -0
  234. netbox_nso_plugin/tests/test_route_policy_capability.py +644 -0
  235. netbox_nso_plugin/tests/test_route_policy_diff.py +735 -0
  236. netbox_nso_plugin/tests/test_route_policy_greenfield.py +759 -0
  237. netbox_nso_plugin/tests/test_route_policy_panel_journal.py +270 -0
  238. netbox_nso_plugin/tests/test_route_policy_reconciler.py +1864 -0
  239. netbox_nso_plugin/tests/test_route_policy_structure.py +380 -0
  240. netbox_nso_plugin/tests/test_serializers.py +118 -0
  241. netbox_nso_plugin/tests/test_settlement_carrier.py +268 -0
  242. netbox_nso_plugin/tests/test_settlement_consumer.py +401 -0
  243. netbox_nso_plugin/tests/test_settlement_cursor.py +598 -0
  244. netbox_nso_plugin/tests/test_settlement_e2e.py +323 -0
  245. netbox_nso_plugin/tests/test_settlement_retry_clock.py +338 -0
  246. netbox_nso_plugin/tests/test_signals.py +1775 -0
  247. netbox_nso_plugin/tests/test_snmp_accept.py +264 -0
  248. netbox_nso_plugin/tests/test_snmp_config.py +696 -0
  249. netbox_nso_plugin/tests/test_snmp_secret_actions.py +442 -0
  250. netbox_nso_plugin/tests/test_snmp_v3_host.py +158 -0
  251. netbox_nso_plugin/tests/test_spike_cable_api.py +276 -0
  252. netbox_nso_plugin/tests/test_static_route_fleet_resync.py +458 -0
  253. netbox_nso_plugin/tests/test_static_route_push_errors.py +609 -0
  254. netbox_nso_plugin/tests/test_static_route_refusals.py +111 -0
  255. netbox_nso_plugin/tests/test_static_route_signals.py +622 -0
  256. netbox_nso_plugin/tests/test_static_route_transition.py +710 -0
  257. netbox_nso_plugin/tests/test_static_routes.py +679 -0
  258. netbox_nso_plugin/tests/test_status_machine.py +381 -0
  259. netbox_nso_plugin/tests/test_subinterface_reconciler.py +359 -0
  260. netbox_nso_plugin/tests/test_summary.py +323 -0
  261. netbox_nso_plugin/tests/test_svi_reconciler.py +230 -0
  262. netbox_nso_plugin/tests/test_switchport_signals.py +115 -0
  263. netbox_nso_plugin/tests/test_sync_cache.py +816 -0
  264. netbox_nso_plugin/tests/test_template_comments.py +61 -0
  265. netbox_nso_plugin/tests/test_urls.py +173 -0
  266. netbox_nso_plugin/tests/test_vault_refs.py +60 -0
  267. netbox_nso_plugin/tests/test_view_permissions.py +189 -0
  268. netbox_nso_plugin/tests/test_vlan_greenfield.py +93 -0
  269. netbox_nso_plugin/tests/test_vlan_reconciler.py +506 -0
  270. netbox_nso_plugin/urls.py +611 -0
  271. netbox_nso_plugin/vault_refs.py +103 -0
  272. netbox_nso_plugin/views.py +6185 -0
  273. netbox_nso_plugin/vlan_reconciler.py +334 -0
  274. netbox_nso_plugin-0.2.0.dist-info/METADATA +86 -0
  275. netbox_nso_plugin-0.2.0.dist-info/RECORD +278 -0
  276. netbox_nso_plugin-0.2.0.dist-info/WHEEL +5 -0
  277. netbox_nso_plugin-0.2.0.dist-info/licenses/LICENSE +201 -0
  278. netbox_nso_plugin-0.2.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,61 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com>
3
+ from netbox.plugins import PluginConfig
4
+
5
+ __version__ = "0.2.0"
6
+
7
+
8
+ class NSOPluginConfig(PluginConfig):
9
+ """NetBox plugin configuration for NSO integration."""
10
+
11
+ name = "netbox_nso_plugin"
12
+ verbose_name = "NSO Plugin"
13
+ description = "Integrates NetBox with Cisco NSO via the nso-adapter REST API."
14
+ version = __version__
15
+ base_url = "nso"
16
+ min_version = "4.6.0"
17
+ required_settings = []
18
+ default_settings = {
19
+ "adapter_url": "",
20
+ "adapter_token": "",
21
+ # A 'deploying' row that outlives a SUCCEEDED apply by this long without the
22
+ # device ever showing its value escalates to apply_failed (silent drop, #26).
23
+ "stuck_deploying_grace_minutes": 10,
24
+ }
25
+ author = "Marcin Zieba"
26
+ author_email = "marcinpsk@gmail.com"
27
+
28
+ def ready(self): # pragma: no cover
29
+ """Connect signal handlers after all apps are loaded."""
30
+ super().ready()
31
+ from . import (
32
+ jobs, # noqa: F401 — registers the @system_job hourly onboarding sweep
33
+ signals, # noqa: F401
34
+ )
35
+ from .signals import _connect_g_activated
36
+
37
+ _connect_g_activated()
38
+
39
+ # Register the shared-object materialization specs (route-policy families) at startup.
40
+ # They live in route_policy_reconciler (run via its module-level _register_specs()), but
41
+ # that module was previously imported only lazily during a reconcile — so a web worker
42
+ # rendering the versions page before any reconcile had an EMPTY registry, making
43
+ # hash_captured() return "" and every device version falsely read as "matches". Importing
44
+ # it here guarantees the specs exist in every process (web + worker).
45
+ from django.conf import settings
46
+
47
+ from . import route_policy_reconciler # noqa: F401
48
+ from .derived_intent import _register_description_from_cable
49
+
50
+ # The field is always available; enabled templates are read live from NetBox.
51
+ _register_description_from_cable()
52
+
53
+ cfg = settings.PLUGINS_CONFIG.get("netbox_nso_plugin", {})
54
+ self._interface_ip_auto_create = cfg.get("interface_ip_auto_create", False)
55
+ self._static_route_auto_create = cfg.get("static_route_auto_create", False)
56
+ # Link-role resolver: opt-in fallback to M13's classify_interface heuristic
57
+ # when an interface has no explicit NSOLinkRoleAssignment (default off).
58
+ self._link_role_derived_fallback = cfg.get("link_role_derived_fallback", False)
59
+
60
+
61
+ config = NSOPluginConfig