vxlan 0.8.0 → 0.9.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a0904488ebdedf6f5983003bf51724e3e0c5442b2347fb6433041da8f858394
4
- data.tar.gz: 8c1b2e0ba07891754cb6074e5da60a2174b6a96508309836bdc4db333ce7414e
3
+ metadata.gz: 7c1c49167dd67d29eb1d77c3827458e2e8f0d68eed540073b99823c1278cb508
4
+ data.tar.gz: 81996210163b47b16d9f5cf6e3d9c59ee9f9e10a88177e229968dd1effc2a979
5
5
  SHA512:
6
- metadata.gz: a51c259e1059d12babf19d1789e6ae9e3dba5fdaae8b612aad552aca488665b44f2ca2d25e7cec825b781b39ad8b887ee5c71b648a12da03fd6dc4b5f3d7561a
7
- data.tar.gz: 6d37d517bcc3d7c8e8f143917449bbe450d2f79c54ca64c9032ace956f8db265ed86fbb4ee6e76f4fdf88ea68f74155408cecbf0f14aee20f5e297818b82f07e
6
+ metadata.gz: 1476f8718667bf3d7a2b011f54684b46db1fe79e9662a16356ed91d35a68375f1bed2a64b554e9f44889fdc6ae71b7f76a31e6050578280fad7d0ba4d767732f
7
+ data.tar.gz: d65c8a36e51495f9e795f416c235ab6a7840aa1cd4d648d6b3b15b798e14bfb1929cd7f601510f285d6ed4d50298ddd7eed945d3dbfc55ab7aae22a6318806e3
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ Changes to the public contract are recorded here. Versions follow Semantic Versi
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 0.9.0 (2026-10-30)
8
+
9
+ - Migrate NX-OS profiles and consumers to ctx_parser 0.5 Commands declarations; remove Profile COMMANDS/PARSERS aliases.
10
+ - Require the parser-compatible ctx_driver/ctx_runner patch releases without changing collector, evidence or report schemas.
11
+
12
+ - Allow the Ruby 4 / expect-pty 0.10 compatible net-connector 0.22.x alongside 0.21.x for optional collection.
13
+
7
14
  ## 0.8.0 (2026-10-30)
8
15
 
9
16
  - Adopt schema 4 Target/Source contracts and shared configuration read/write sessions. Validate target platform before opening a connector. Normalize BGP to `peer_address`, `afi_safi`, `received_prefixes` and symbolic states; CDP uses `local_interface`, `remote_interface`, `remote_name`. Require connector 0.21 for collection.
data/README.md CHANGED
@@ -155,3 +155,5 @@ Dynamic inventory uses `Netdisco::Catalog`. Any duplicate row for a selected add
155
155
  ## Domain contract migration (2026-10-30)
156
156
 
157
157
  Adopt schema 4 Target/Source contracts and shared configuration read/write sessions. Validate target platform before opening a connector. Normalize BGP to `peer_address`, `afi_safi`, `received_prefixes` and symbolic states; CDP uses `local_interface`, `remote_interface`, `remote_name`. Require connector 0.21 for collection. See the [schema 4 migration and module contracts](https://github.com/gatework/ctx_runner/blob/main/docs/contracts-2026-10-30.md). Regenerate old collection reports and change plans; changing only their version number is not supported.
158
+
159
+ Platform profiles use ctx_parser 0.5 `Commands` declarations. Replace `Profile::COMMANDS` / `Profile::PARSERS` with `Profile::DECLARATIONS.by_dimension` / `.parsers`; instance query methods remain available. See the [parser 0.5 migration](https://github.com/gatework/ctx_parser/blob/main/docs/contracts-0.5.md).
@@ -32,8 +32,6 @@ module Vxlan
32
32
  { dimensions: [ :l2route_macs ], command: "show l2route evpn mac all", parser: Parsers::ShowL2routeEvpnMacAll },
33
33
  { dimensions: [ :l2route_mac_ips ], command: "show l2route evpn mac-ip all", parser: Parsers::ShowL2routeEvpnMacIpAll }
34
34
  ])
35
- COMMANDS = DECLARATIONS.by_dimension
36
- PARSERS = DECLARATIONS.parsers
37
35
  end
38
36
  end
39
37
  end
@@ -6,7 +6,7 @@ require "optparse"
6
6
  require "ctx_cli/options"
7
7
  require "ctx_cli/terminal"
8
8
  require "ctx_cli/initializer"
9
- gem "net-connector", "~> 0.21.0"
9
+ gem "net-connector", ">= 0.21.0", "< 0.23"
10
10
  require "net/connector/inventory/filters"
11
11
  require "yaml"
12
12
  require "ipaddr"
@@ -53,7 +53,7 @@ module Vxlan
53
53
 
54
54
  # 先校验公共证据外壳,再验证领域记录。
55
55
  def validate(document)
56
- CtxRunner::Evidence.validate(document, names: CiscoNxos::Profile::COMMANDS.keys) { |record, dimension| validate_record(record, dimension) }
56
+ CtxRunner::Evidence.validate(document, names: CiscoNxos::Profile::DECLARATIONS.by_dimension.keys) { |record, dimension| validate_record(record, dimension) }
57
57
  end
58
58
 
59
59
  # 在输出目录创建前验证所有会参与建议生成的嵌套字段。
@@ -11,7 +11,7 @@ require_relative "snapshot"
11
11
  module Vxlan
12
12
  # 单设备单会话顺序采集;各维度独立失败,断链后不重放查询。
13
13
  class Collector
14
- COMMANDS = CiscoNxos::Profile::COMMANDS
14
+ COMMANDS = CiscoNxos::Profile::DECLARATIONS.by_dimension
15
15
  PREPARATION_COMMANDS = [ "terminal length 0", "terminal width 511" ].freeze
16
16
 
17
17
  # 注入为顺序命令观测生成时间戳的时钟。
@@ -177,7 +177,7 @@ module Vxlan
177
177
  evidence.merge!(configuration_records: records.size, review_status: records.map { |record| record["review_status"] })
178
178
  end
179
179
  item("evidence_incomplete", name, "Evidence incomplete; collect missing evidence first", evidence: evidence,
180
- verify: Array(CiscoNxos::Profile::COMMANDS[name.to_sym]), category: "evidence").merge(status: "investigate", expected: "A complete response or explicit zero-record evidence is required; an empty response does not establish absence of configuration.")
180
+ verify: Array(CiscoNxos::Profile::DECLARATIONS.by_dimension[name.to_sym]), category: "evidence").merge(status: "investigate", expected: "A complete response or explicit zero-record evidence is required; an empty response does not establish absence of configuration.")
181
181
  end
182
182
  end
183
183
 
@@ -187,7 +187,7 @@ module Vxlan
187
187
  rows = @dimensions.fetch(dimension, {}).fetch("records", []).select { |row| %w[down idle active connect opensent openconfirm].include?(row["state"].to_s.downcase) }
188
188
  next if rows.empty?
189
189
  item("#{dimension}_not_up", dimension, "Observed runtime state is not established", evidence: rows,
190
- verify: [ CiscoNxos::Profile::COMMANDS[dimension.to_sym], "show running-config" ], category: "runtime").merge(status: "investigate", prerequisites: [ "Confirm service expectations first, then check peers, underlay routing, interfaces and configuration; do not automatically restart neighbors or enable interfaces." ])
190
+ verify: [ CiscoNxos::Profile::DECLARATIONS.by_dimension[dimension.to_sym], "show running-config" ], category: "runtime").merge(status: "investigate", prerequisites: [ "Confirm service expectations first, then check peers, underlay routing, interfaces and configuration; do not automatically restart neighbors or enable interfaces." ])
191
191
  end
192
192
  end
193
193
  end
@@ -20,7 +20,7 @@ module Vxlan
20
20
  end
21
21
  @fabric_key = fabric_key.dup.freeze
22
22
  @snapshot = CtxRunner::Snapshot.new(target: target, observations: observations, observed_at: observed_at,
23
- names: CiscoNxos::Profile::COMMANDS.keys, issues: issues)
23
+ names: CiscoNxos::Profile::DECLARATIONS.by_dimension.keys, issues: issues)
24
24
  freeze
25
25
  end
26
26
 
data/lib/vxlan/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Vxlan
4
4
  # 公开包版本,供 RubyGems 元数据和运行时调用方共用。
5
- VERSION = "0.8.0"
5
+ VERSION = "0.9.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vxlan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gatework contributors
@@ -49,7 +49,7 @@ dependencies:
49
49
  requirements:
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 0.5.0
52
+ version: 0.5.1
53
53
  - - "<"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0.6'
@@ -59,7 +59,7 @@ dependencies:
59
59
  requirements:
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: 0.5.0
62
+ version: 0.5.1
63
63
  - - "<"
64
64
  - !ruby/object:Gem::Version
65
65
  version: '0.6'
@@ -69,27 +69,27 @@ dependencies:
69
69
  requirements:
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: 0.4.0
72
+ version: 0.5.0
73
73
  - - "<"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.5'
75
+ version: '0.6'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.4.0
82
+ version: 0.5.0
83
83
  - - "<"
84
84
  - !ruby/object:Gem::Version
85
- version: '0.5'
85
+ version: '0.6'
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: ctx_driver
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 0.5.0
92
+ version: 0.5.1
93
93
  - - "<"
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0.6'
@@ -99,7 +99,7 @@ dependencies:
99
99
  requirements:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.5.0
102
+ version: 0.5.1
103
103
  - - "<"
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0.6'