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 +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +2 -0
- data/lib/vxlan/cisco_nxos/profile.rb +0 -2
- data/lib/vxlan/cli/options.rb +1 -1
- data/lib/vxlan/cli/review.rb +1 -1
- data/lib/vxlan/collector.rb +1 -1
- data/lib/vxlan/recommendations.rb +2 -2
- data/lib/vxlan/snapshot.rb +1 -1
- data/lib/vxlan/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c1c49167dd67d29eb1d77c3827458e2e8f0d68eed540073b99823c1278cb508
|
|
4
|
+
data.tar.gz: 81996210163b47b16d9f5cf6e3d9c59ee9f9e10a88177e229968dd1effc2a979
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
data/lib/vxlan/cli/options.rb
CHANGED
|
@@ -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", "
|
|
9
|
+
gem "net-connector", ">= 0.21.0", "< 0.23"
|
|
10
10
|
require "net/connector/inventory/filters"
|
|
11
11
|
require "yaml"
|
|
12
12
|
require "ipaddr"
|
data/lib/vxlan/cli/review.rb
CHANGED
|
@@ -53,7 +53,7 @@ module Vxlan
|
|
|
53
53
|
|
|
54
54
|
# 先校验公共证据外壳,再验证领域记录。
|
|
55
55
|
def validate(document)
|
|
56
|
-
CtxRunner::Evidence.validate(document, names: CiscoNxos::Profile::
|
|
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
|
# 在输出目录创建前验证所有会参与建议生成的嵌套字段。
|
data/lib/vxlan/collector.rb
CHANGED
|
@@ -11,7 +11,7 @@ require_relative "snapshot"
|
|
|
11
11
|
module Vxlan
|
|
12
12
|
# 单设备单会话顺序采集;各维度独立失败,断链后不重放查询。
|
|
13
13
|
class Collector
|
|
14
|
-
COMMANDS = CiscoNxos::Profile::
|
|
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::
|
|
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::
|
|
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
|
data/lib/vxlan/snapshot.rb
CHANGED
|
@@ -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::
|
|
23
|
+
names: CiscoNxos::Profile::DECLARATIONS.by_dimension.keys, issues: issues)
|
|
24
24
|
freeze
|
|
25
25
|
end
|
|
26
26
|
|
data/lib/vxlan/version.rb
CHANGED
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.
|
|
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.
|
|
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.
|
|
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.
|
|
72
|
+
version: 0.5.0
|
|
73
73
|
- - "<"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.
|
|
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.
|
|
82
|
+
version: 0.5.0
|
|
83
83
|
- - "<"
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: '0.
|
|
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.
|
|
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.
|
|
102
|
+
version: 0.5.1
|
|
103
103
|
- - "<"
|
|
104
104
|
- !ruby/object:Gem::Version
|
|
105
105
|
version: '0.6'
|