mirror of
https://github.com/hansjone/netx.git
synced 2026-10-09 04:20:45 +08:00
Allow compare templates to split one collected metric into filtered sheets.
BGP/ISIS (and any other metric) can share a metric_id with distinct sheet_id + row_filters; drop conflicting bgp state_or_pfx and keep state/pfx_rcd. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
88b7558a48
commit
a65c9fc420
17 changed files with 745 additions and 230 deletions
|
|
@ -44,7 +44,7 @@ class BizMigrationBatch(Base):
|
|||
batch_label: Mapped[str] = mapped_column(String(128), default="")
|
||||
# pending | active | review | done
|
||||
status: Mapped[str] = mapped_column(String(32), default="pending", index=True)
|
||||
# {"ports": ["gei-..."], "items": [{"metric_id":"bgp_peer","key":"..."}]}
|
||||
# {"ports": ["gei-..."], "items": [{"metric_id":"bgp_peer","sheet_id":"bgp_peer.vpnv4","key":"..."}]}
|
||||
expect_set_json: Mapped[dict] = mapped_column(_JsonType, default=dict)
|
||||
started_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
ended_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True)
|
||||
|
|
|
|||
|
|
@ -205,8 +205,11 @@ class BizStateCommandOverride(Base):
|
|||
class BizCompareTemplate(Base):
|
||||
"""Compare template: one or more metric sheets with key/iface/compare roles.
|
||||
|
||||
``metrics_json`` is the source of truth (list of sheet defs). Legacy
|
||||
``metric_id`` / ``key_fields`` / … mirror the first sheet for older rows.
|
||||
``metrics_json`` is the source of truth (list of sheet defs). Each sheet has
|
||||
``metric_id`` (collected source table) and optional ``sheet_id`` / ``title`` /
|
||||
``row_filters`` so one source can be split into multiple compare items
|
||||
(e.g. bgp_peer → vpnv4/vpnv6). Legacy ``metric_id`` / ``key_fields`` / …
|
||||
mirror the first sheet for older rows.
|
||||
Empty ``compare_fields`` on a sheet = presence-only (entry set match).
|
||||
"""
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue