net-connector 0.6.0 → 0.7.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.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +52 -0
  3. data/CONTRIBUTING.md +20 -0
  4. data/README.md +112 -50
  5. data/docs/VERIFICATION.md +42 -1
  6. data/docs/architecture.md +15 -2
  7. data/examples/backup.yml +40 -0
  8. data/lib/net/connector/device/base.rb +30 -38
  9. data/lib/net/connector/device/profile/builder.rb +8 -8
  10. data/lib/net/connector/device/profile.rb +2 -2
  11. data/lib/net/connector/device/running_config.rb +2 -2
  12. data/lib/net/connector/device/tftp/receipt.rb +12 -3
  13. data/lib/net/connector/device/tftp.rb +7 -7
  14. data/lib/net/connector/device/topology.rb +4 -4
  15. data/lib/net/connector/engine/command.rb +2 -2
  16. data/lib/net/connector/engine/configuration.rb +5 -2
  17. data/lib/net/connector/engine/execution.rb +25 -14
  18. data/lib/net/connector/engine/known_hosts.rb +112 -0
  19. data/lib/net/connector/engine/log.rb +10 -7
  20. data/lib/net/connector/engine/session.rb +117 -128
  21. data/lib/net/connector/engine/transport.rb +32 -7
  22. data/lib/net/connector/netdisco/backup_run.rb +132 -0
  23. data/lib/net/connector/netdisco/batch.rb +1 -1
  24. data/lib/net/connector/netdisco/cli/options.rb +139 -0
  25. data/lib/net/connector/netdisco/cli.rb +13 -26
  26. data/lib/net/connector/netdisco/client.rb +6 -6
  27. data/lib/net/connector/netdisco/config_file.rb +20 -19
  28. data/lib/net/connector/netdisco/connection.rb +38 -0
  29. data/lib/net/connector/netdisco/database_client.rb +2 -2
  30. data/lib/net/connector/netdisco/device.rb +11 -1
  31. data/lib/net/connector/netdisco/fleet.rb +68 -47
  32. data/lib/net/connector/netdisco/inventory_budget.rb +4 -4
  33. data/lib/net/connector/netdisco/plan.rb +14 -9
  34. data/lib/net/connector/netdisco/planner.rb +18 -14
  35. data/lib/net/connector/netdisco/progress.rb +253 -0
  36. data/lib/net/connector/netdisco/report/files.rb +41 -0
  37. data/lib/net/connector/netdisco/report/text.rb +45 -0
  38. data/lib/net/connector/netdisco/report.rb +53 -31
  39. data/lib/net/connector/netdisco/result_store.rb +3 -1
  40. data/lib/net/connector/netdisco/rules.rb +10 -2
  41. data/lib/net/connector/netdisco/settings.rb +118 -68
  42. data/lib/net/connector/netdisco/tftp_archive.rb +175 -0
  43. data/lib/net/connector/netdisco/tftp_history.rb +16 -0
  44. data/lib/net/connector/netdisco/tftp_verification.rb +58 -0
  45. data/lib/net/connector/netdisco/worker.rb +8 -3
  46. data/lib/net/connector/netdisco.rb +10 -0
  47. data/lib/net/connector/storage/backup_lock.rb +1 -1
  48. data/lib/net/connector/storage/batch_directory.rb +29 -0
  49. data/lib/net/connector/storage.rb +1 -0
  50. data/lib/net/connector/vendor/h3c.rb +2 -1
  51. data/lib/net/connector/vendor/hillstone/tftp_backup.rb +3 -3
  52. data/lib/net/connector/vendor/palo_alto/tftp_backup.rb +3 -3
  53. data/lib/net/connector/vendor/radware/running_config.rb +19 -0
  54. data/lib/net/connector/vendor/radware.rb +4 -3
  55. data/lib/net/connector/version.rb +1 -1
  56. data/lib/net/connector.rb +2 -2
  57. metadata +42 -111
  58. /data/examples/{netdisco_database.yml → inventory_sql.yml} +0 -0
@@ -12,9 +12,9 @@ module Net
12
12
  # 在连接前拒绝源文件及远端目录;未指定文件名时仍由设备生成。
13
13
  def validate_options!(target, source_file:, **)
14
14
  raise ArgumentError, "Hillstone TFTP export does not use source_file" unless source_file.nil?
15
- if target.explicit_path? && target.path.include?("/")
16
- raise ArgumentError, "Hillstone TFTP filename cannot contain a directory"
17
- end
15
+ return unless target.explicit_path? && target.path.include?("/")
16
+
17
+ raise ArgumentError, "Hillstone TFTP filename cannot contain a directory"
18
18
  end
19
19
 
20
20
  def receipt_metadata(target, **)
@@ -15,9 +15,9 @@ module Net
15
15
  def validate_options!(target, source_file:, vrf: nil)
16
16
  raise ArgumentError, "PAN-OS does not use source_file" unless source_file.nil?
17
17
  raise ArgumentError, "PAN-OS TFTP backup does not use vrf" unless vrf.nil?
18
- if target.explicit_path? && target.path != FILENAME
19
- raise ArgumentError, "PAN-OS TFTP export uses the fixed filename #{FILENAME}"
20
- end
18
+ return unless target.explicit_path? && target.path != FILENAME
19
+
20
+ raise ArgumentError, "PAN-OS TFTP export uses the fixed filename #{FILENAME}"
21
21
  end
22
22
 
23
23
  def receipt_metadata(_target, **)
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../device/running_config/strategy"
4
+
5
+ module Net
6
+ module Connector
7
+ module Radware
8
+ class RunningConfig < Net::Connector::RunningConfig::Rendered
9
+ # /cfg/dump 进入 Configuration 菜单;保留设备前缀,只替换菜单名称。
10
+ def prompt_text(command)
11
+ prompt = super
12
+ return prompt unless command.text == "/cfg/dump"
13
+
14
+ prompt.sub(/\A(>>[ \t]+(?:.* - )?)[^\r\n#]+#\z/, '\1Configuration#')
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../device/base"
4
+ require_relative "radware/running_config"
4
5
  require_relative "radware/tftp_backup"
5
6
  require_relative "radware/topology"
6
7
 
@@ -12,7 +13,7 @@ module Net
12
13
  vendor :radware
13
14
  # 声明菜单式 CLI 的命令、提示、超时、诊断和确认规则。
14
15
  profile do
15
- running_config_strategy Net::Connector::RunningConfig::Rendered
16
+ running_config_strategy Net::Connector::Radware::RunningConfig
16
17
  tftp_strategy Net::Connector::Radware::TftpBackup
17
18
  topology_strategy Net::Connector::Radware::Topology
18
19
  commands do
@@ -21,8 +22,8 @@ module Net
21
22
  end
22
23
 
23
24
  prompts do
24
- login(/(?:\A|(?<=[\r\n]))(?:>>[^\r\n]*|[^\r\n]+[>#])\s*\z/)
25
- command(/(?:\A|(?<=[\r\n]))(?:>>[^\r\n]*|[^\r\n]+#)\s*\z/)
25
+ login(/(?:\A|(?<=[\r\n]))(?:>>[^\r\n]*#|(?!>>)[^\r\n]+[>#])\s*\z/)
26
+ command(/(?:\A|(?<=[\r\n]))[^\r\n]+#\s*\z/)
26
27
  end
27
28
 
28
29
  errors do
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Net
4
4
  module Connector
5
- VERSION = "0.6.0"
5
+ VERSION = "0.7.0"
6
6
  end
7
7
  end
data/lib/net/connector.rb CHANGED
@@ -34,10 +34,10 @@ module Net
34
34
  end
35
35
 
36
36
  # 在代码块内连接设备并确保会话关闭。
37
- def self.open(vendor, **settings)
37
+ def self.open(vendor, **settings, &)
38
38
  raise ArgumentError, "open requires a block" unless block_given?
39
39
 
40
- vendor_class(vendor).open(**settings) { |device| yield device }
40
+ vendor_class(vendor).open(**settings, &)
41
41
  end
42
42
  end
43
43
  end
metadata CHANGED
@@ -1,40 +1,40 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-connector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - net-connector contributors
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-09-27 00:00:00.000000000 Z
10
+ date: 2026-09-28 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: expect-pty
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - "~>"
16
+ - - ">="
17
17
  - !ruby/object:Gem::Version
18
18
  version: 0.5.0
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - "~>"
23
+ - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: 0.5.0
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: textfsm
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 0.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 0.2.0
40
40
  - !ruby/object:Gem::Dependency
@@ -44,9 +44,6 @@ dependencies:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '1.5'
47
- - - "<"
48
- - !ruby/object:Gem::Version
49
- version: '2.0'
50
47
  type: :runtime
51
48
  prerelease: false
52
49
  version_requirements: !ruby/object:Gem::Requirement
@@ -54,9 +51,6 @@ dependencies:
54
51
  - - ">="
55
52
  - !ruby/object:Gem::Version
56
53
  version: '1.5'
57
- - - "<"
58
- - !ruby/object:Gem::Version
59
- version: '2.0'
60
54
  - !ruby/object:Gem::Dependency
61
55
  name: digest
62
56
  requirement: !ruby/object:Gem::Requirement
@@ -64,9 +58,6 @@ dependencies:
64
58
  - - ">="
65
59
  - !ruby/object:Gem::Version
66
60
  version: '3.1'
67
- - - "<"
68
- - !ruby/object:Gem::Version
69
- version: '4.0'
70
61
  type: :runtime
71
62
  prerelease: false
72
63
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,9 +65,6 @@ dependencies:
74
65
  - - ">="
75
66
  - !ruby/object:Gem::Version
76
67
  version: '3.1'
77
- - - "<"
78
- - !ruby/object:Gem::Version
79
- version: '4.0'
80
68
  - !ruby/object:Gem::Dependency
81
69
  name: english
82
70
  requirement: !ruby/object:Gem::Requirement
@@ -84,9 +72,6 @@ dependencies:
84
72
  - - ">="
85
73
  - !ruby/object:Gem::Version
86
74
  version: '0.7'
87
- - - "<"
88
- - !ruby/object:Gem::Version
89
- version: '1.0'
90
75
  type: :runtime
91
76
  prerelease: false
92
77
  version_requirements: !ruby/object:Gem::Requirement
@@ -94,9 +79,6 @@ dependencies:
94
79
  - - ">="
95
80
  - !ruby/object:Gem::Version
96
81
  version: '0.7'
97
- - - "<"
98
- - !ruby/object:Gem::Version
99
- version: '1.0'
100
82
  - !ruby/object:Gem::Dependency
101
83
  name: fileutils
102
84
  requirement: !ruby/object:Gem::Requirement
@@ -104,9 +86,6 @@ dependencies:
104
86
  - - ">="
105
87
  - !ruby/object:Gem::Version
106
88
  version: '1.6'
107
- - - "<"
108
- - !ruby/object:Gem::Version
109
- version: '2.0'
110
89
  type: :runtime
111
90
  prerelease: false
112
91
  version_requirements: !ruby/object:Gem::Requirement
@@ -114,49 +93,60 @@ dependencies:
114
93
  - - ">="
115
94
  - !ruby/object:Gem::Version
116
95
  version: '1.6'
117
- - - "<"
118
- - !ruby/object:Gem::Version
119
- version: '2.0'
120
96
  - !ruby/object:Gem::Dependency
121
97
  name: forwardable
122
98
  requirement: !ruby/object:Gem::Requirement
123
99
  requirements:
124
- - - "~>"
100
+ - - ">="
125
101
  - !ruby/object:Gem::Version
126
102
  version: '1.3'
127
103
  type: :runtime
128
104
  prerelease: false
129
105
  version_requirements: !ruby/object:Gem::Requirement
130
106
  requirements:
131
- - - "~>"
107
+ - - ">="
132
108
  - !ruby/object:Gem::Version
133
109
  version: '1.3'
110
+ - !ruby/object:Gem::Dependency
111
+ name: io-console
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0.6'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0.6'
134
124
  - !ruby/object:Gem::Dependency
135
125
  name: ipaddr
136
126
  requirement: !ruby/object:Gem::Requirement
137
127
  requirements:
138
- - - "~>"
128
+ - - ">="
139
129
  - !ruby/object:Gem::Version
140
130
  version: '1.2'
141
131
  type: :runtime
142
132
  prerelease: false
143
133
  version_requirements: !ruby/object:Gem::Requirement
144
134
  requirements:
145
- - - "~>"
135
+ - - ">="
146
136
  - !ruby/object:Gem::Version
147
137
  version: '1.2'
148
138
  - !ruby/object:Gem::Dependency
149
139
  name: json
150
140
  requirement: !ruby/object:Gem::Requirement
151
141
  requirements:
152
- - - "~>"
142
+ - - ">="
153
143
  - !ruby/object:Gem::Version
154
144
  version: '2.0'
155
145
  type: :runtime
156
146
  prerelease: false
157
147
  version_requirements: !ruby/object:Gem::Requirement
158
148
  requirements:
159
- - - "~>"
149
+ - - ">="
160
150
  - !ruby/object:Gem::Version
161
151
  version: '2.0'
162
152
  - !ruby/object:Gem::Dependency
@@ -166,9 +156,6 @@ dependencies:
166
156
  - - ">="
167
157
  - !ruby/object:Gem::Version
168
158
  version: '1.5'
169
- - - "<"
170
- - !ruby/object:Gem::Version
171
- version: '2.0'
172
159
  type: :runtime
173
160
  prerelease: false
174
161
  version_requirements: !ruby/object:Gem::Requirement
@@ -176,9 +163,6 @@ dependencies:
176
163
  - - ">="
177
164
  - !ruby/object:Gem::Version
178
165
  version: '1.5'
179
- - - "<"
180
- - !ruby/object:Gem::Version
181
- version: '2.0'
182
166
  - !ruby/object:Gem::Dependency
183
167
  name: net-http
184
168
  requirement: !ruby/object:Gem::Requirement
@@ -186,9 +170,6 @@ dependencies:
186
170
  - - ">="
187
171
  - !ruby/object:Gem::Version
188
172
  version: '0.3'
189
- - - "<"
190
- - !ruby/object:Gem::Version
191
- version: '1.0'
192
173
  type: :runtime
193
174
  prerelease: false
194
175
  version_requirements: !ruby/object:Gem::Requirement
@@ -196,9 +177,6 @@ dependencies:
196
177
  - - ">="
197
178
  - !ruby/object:Gem::Version
198
179
  version: '0.3'
199
- - - "<"
200
- - !ruby/object:Gem::Version
201
- version: '1.0'
202
180
  - !ruby/object:Gem::Dependency
203
181
  name: open3
204
182
  requirement: !ruby/object:Gem::Requirement
@@ -206,9 +184,6 @@ dependencies:
206
184
  - - ">="
207
185
  - !ruby/object:Gem::Version
208
186
  version: '0.1'
209
- - - "<"
210
- - !ruby/object:Gem::Version
211
- version: '1.0'
212
187
  type: :runtime
213
188
  prerelease: false
214
189
  version_requirements: !ruby/object:Gem::Requirement
@@ -216,9 +191,6 @@ dependencies:
216
191
  - - ">="
217
192
  - !ruby/object:Gem::Version
218
193
  version: '0.1'
219
- - - "<"
220
- - !ruby/object:Gem::Version
221
- version: '1.0'
222
194
  - !ruby/object:Gem::Dependency
223
195
  name: openssl
224
196
  requirement: !ruby/object:Gem::Requirement
@@ -226,9 +198,6 @@ dependencies:
226
198
  - - ">="
227
199
  - !ruby/object:Gem::Version
228
200
  version: '3.0'
229
- - - "<"
230
- - !ruby/object:Gem::Version
231
- version: '5.0'
232
201
  type: :runtime
233
202
  prerelease: false
234
203
  version_requirements: !ruby/object:Gem::Requirement
@@ -236,9 +205,6 @@ dependencies:
236
205
  - - ">="
237
206
  - !ruby/object:Gem::Version
238
207
  version: '3.0'
239
- - - "<"
240
- - !ruby/object:Gem::Version
241
- version: '5.0'
242
208
  - !ruby/object:Gem::Dependency
243
209
  name: optparse
244
210
  requirement: !ruby/object:Gem::Requirement
@@ -246,9 +212,6 @@ dependencies:
246
212
  - - ">="
247
213
  - !ruby/object:Gem::Version
248
214
  version: '0.3'
249
- - - "<"
250
- - !ruby/object:Gem::Version
251
- version: '1.0'
252
215
  type: :runtime
253
216
  prerelease: false
254
217
  version_requirements: !ruby/object:Gem::Requirement
@@ -256,9 +219,6 @@ dependencies:
256
219
  - - ">="
257
220
  - !ruby/object:Gem::Version
258
221
  version: '0.3'
259
- - - "<"
260
- - !ruby/object:Gem::Version
261
- version: '1.0'
262
222
  - !ruby/object:Gem::Dependency
263
223
  name: securerandom
264
224
  requirement: !ruby/object:Gem::Requirement
@@ -266,9 +226,6 @@ dependencies:
266
226
  - - ">="
267
227
  - !ruby/object:Gem::Version
268
228
  version: '0.2'
269
- - - "<"
270
- - !ruby/object:Gem::Version
271
- version: '1.0'
272
229
  type: :runtime
273
230
  prerelease: false
274
231
  version_requirements: !ruby/object:Gem::Requirement
@@ -276,9 +233,6 @@ dependencies:
276
233
  - - ">="
277
234
  - !ruby/object:Gem::Version
278
235
  version: '0.2'
279
- - - "<"
280
- - !ruby/object:Gem::Version
281
- version: '1.0'
282
236
  - !ruby/object:Gem::Dependency
283
237
  name: shellwords
284
238
  requirement: !ruby/object:Gem::Requirement
@@ -286,9 +240,6 @@ dependencies:
286
240
  - - ">="
287
241
  - !ruby/object:Gem::Version
288
242
  version: '0.1'
289
- - - "<"
290
- - !ruby/object:Gem::Version
291
- version: '1.0'
292
243
  type: :runtime
293
244
  prerelease: false
294
245
  version_requirements: !ruby/object:Gem::Requirement
@@ -296,21 +247,18 @@ dependencies:
296
247
  - - ">="
297
248
  - !ruby/object:Gem::Version
298
249
  version: '0.1'
299
- - - "<"
300
- - !ruby/object:Gem::Version
301
- version: '1.0'
302
250
  - !ruby/object:Gem::Dependency
303
251
  name: stringio
304
252
  requirement: !ruby/object:Gem::Requirement
305
253
  requirements:
306
- - - "~>"
254
+ - - ">="
307
255
  - !ruby/object:Gem::Version
308
256
  version: '3.0'
309
257
  type: :runtime
310
258
  prerelease: false
311
259
  version_requirements: !ruby/object:Gem::Requirement
312
260
  requirements:
313
- - - "~>"
261
+ - - ">="
314
262
  - !ruby/object:Gem::Version
315
263
  version: '3.0'
316
264
  - !ruby/object:Gem::Dependency
@@ -320,9 +268,6 @@ dependencies:
320
268
  - - ">="
321
269
  - !ruby/object:Gem::Version
322
270
  version: '0.1'
323
- - - "<"
324
- - !ruby/object:Gem::Version
325
- version: '1.0'
326
271
  type: :runtime
327
272
  prerelease: false
328
273
  version_requirements: !ruby/object:Gem::Requirement
@@ -330,9 +275,6 @@ dependencies:
330
275
  - - ">="
331
276
  - !ruby/object:Gem::Version
332
277
  version: '0.1'
333
- - - "<"
334
- - !ruby/object:Gem::Version
335
- version: '1.0'
336
278
  - !ruby/object:Gem::Dependency
337
279
  name: time
338
280
  requirement: !ruby/object:Gem::Requirement
@@ -340,9 +282,6 @@ dependencies:
340
282
  - - ">="
341
283
  - !ruby/object:Gem::Version
342
284
  version: '0.2'
343
- - - "<"
344
- - !ruby/object:Gem::Version
345
- version: '1.0'
346
285
  type: :runtime
347
286
  prerelease: false
348
287
  version_requirements: !ruby/object:Gem::Requirement
@@ -350,9 +289,6 @@ dependencies:
350
289
  - - ">="
351
290
  - !ruby/object:Gem::Version
352
291
  version: '0.2'
353
- - - "<"
354
- - !ruby/object:Gem::Version
355
- version: '1.0'
356
292
  - !ruby/object:Gem::Dependency
357
293
  name: timeout
358
294
  requirement: !ruby/object:Gem::Requirement
@@ -360,9 +296,6 @@ dependencies:
360
296
  - - ">="
361
297
  - !ruby/object:Gem::Version
362
298
  version: '0.3'
363
- - - "<"
364
- - !ruby/object:Gem::Version
365
- version: '1.0'
366
299
  type: :runtime
367
300
  prerelease: false
368
301
  version_requirements: !ruby/object:Gem::Requirement
@@ -370,9 +303,6 @@ dependencies:
370
303
  - - ">="
371
304
  - !ruby/object:Gem::Version
372
305
  version: '0.3'
373
- - - "<"
374
- - !ruby/object:Gem::Version
375
- version: '1.0'
376
306
  - !ruby/object:Gem::Dependency
377
307
  name: uri
378
308
  requirement: !ruby/object:Gem::Requirement
@@ -380,9 +310,6 @@ dependencies:
380
310
  - - ">="
381
311
  - !ruby/object:Gem::Version
382
312
  version: '0.12'
383
- - - "<"
384
- - !ruby/object:Gem::Version
385
- version: '2.0'
386
313
  type: :runtime
387
314
  prerelease: false
388
315
  version_requirements: !ruby/object:Gem::Requirement
@@ -390,9 +317,6 @@ dependencies:
390
317
  - - ">="
391
318
  - !ruby/object:Gem::Version
392
319
  version: '0.12'
393
- - - "<"
394
- - !ruby/object:Gem::Version
395
- version: '2.0'
396
320
  - !ruby/object:Gem::Dependency
397
321
  name: yaml
398
322
  requirement: !ruby/object:Gem::Requirement
@@ -400,9 +324,6 @@ dependencies:
400
324
  - - ">="
401
325
  - !ruby/object:Gem::Version
402
326
  version: '0.2'
403
- - - "<"
404
- - !ruby/object:Gem::Version
405
- version: '1.0'
406
327
  type: :runtime
407
328
  prerelease: false
408
329
  version_requirements: !ruby/object:Gem::Requirement
@@ -410,9 +331,6 @@ dependencies:
410
331
  - - ">="
411
332
  - !ruby/object:Gem::Version
412
333
  version: '0.2'
413
- - - "<"
414
- - !ruby/object:Gem::Version
415
- version: '1.0'
416
334
  description: 通过 SSH 或 Telnet 登录网络设备,采集配置、执行命令脚本、处理交互提示,并提供脱敏日志与基于 Netdisco 清单的批量备份。
417
335
  executables:
418
336
  - net-connector-backup
@@ -427,7 +345,8 @@ files:
427
345
  - docs/RELEASING.md
428
346
  - docs/VERIFICATION.md
429
347
  - docs/architecture.md
430
- - examples/netdisco_database.yml
348
+ - examples/backup.yml
349
+ - examples/inventory_sql.yml
431
350
  - exe/net-connector-backup
432
351
  - lib/net-connector.rb
433
352
  - lib/net/connector.rb
@@ -456,6 +375,7 @@ files:
456
375
  - lib/net/connector/engine/error_metadata.rb
457
376
  - lib/net/connector/engine/errors.rb
458
377
  - lib/net/connector/engine/execution.rb
378
+ - lib/net/connector/engine/known_hosts.rb
459
379
  - lib/net/connector/engine/log.rb
460
380
  - lib/net/connector/engine/log/event.rb
461
381
  - lib/net/connector/engine/log/formatter.rb
@@ -468,10 +388,13 @@ files:
468
388
  - lib/net/connector/engine/terminal_text.rb
469
389
  - lib/net/connector/engine/transport.rb
470
390
  - lib/net/connector/netdisco.rb
391
+ - lib/net/connector/netdisco/backup_run.rb
471
392
  - lib/net/connector/netdisco/batch.rb
472
393
  - lib/net/connector/netdisco/cli.rb
394
+ - lib/net/connector/netdisco/cli/options.rb
473
395
  - lib/net/connector/netdisco/client.rb
474
396
  - lib/net/connector/netdisco/config_file.rb
397
+ - lib/net/connector/netdisco/connection.rb
475
398
  - lib/net/connector/netdisco/database_client.rb
476
399
  - lib/net/connector/netdisco/device.rb
477
400
  - lib/net/connector/netdisco/diagnostic.rb
@@ -479,13 +402,20 @@ files:
479
402
  - lib/net/connector/netdisco/inventory_budget.rb
480
403
  - lib/net/connector/netdisco/plan.rb
481
404
  - lib/net/connector/netdisco/planner.rb
405
+ - lib/net/connector/netdisco/progress.rb
482
406
  - lib/net/connector/netdisco/report.rb
407
+ - lib/net/connector/netdisco/report/files.rb
408
+ - lib/net/connector/netdisco/report/text.rb
483
409
  - lib/net/connector/netdisco/result_store.rb
484
410
  - lib/net/connector/netdisco/rules.rb
485
411
  - lib/net/connector/netdisco/settings.rb
412
+ - lib/net/connector/netdisco/tftp_archive.rb
413
+ - lib/net/connector/netdisco/tftp_history.rb
414
+ - lib/net/connector/netdisco/tftp_verification.rb
486
415
  - lib/net/connector/netdisco/worker.rb
487
416
  - lib/net/connector/storage.rb
488
417
  - lib/net/connector/storage/backup_lock.rb
418
+ - lib/net/connector/storage/batch_directory.rb
489
419
  - lib/net/connector/storage/private_file.rb
490
420
  - lib/net/connector/storage/safe_file.rb
491
421
  - lib/net/connector/storage/saved_config.rb
@@ -524,6 +454,7 @@ files:
524
454
  - lib/net/connector/vendor/palo_alto/tftp_backup.rb
525
455
  - lib/net/connector/vendor/palo_alto/topology.rb
526
456
  - lib/net/connector/vendor/radware.rb
457
+ - lib/net/connector/vendor/radware/running_config.rb
527
458
  - lib/net/connector/vendor/radware/tftp_backup.rb
528
459
  - lib/net/connector/vendor/radware/topology.rb
529
460
  - lib/net/connector/version.rb