oxidized 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +5 -5
  2. data/.github/no-response.yml +13 -0
  3. data/.gitignore +3 -0
  4. data/.rubocop.yml +37 -0
  5. data/.rubocop_todo.yml +714 -0
  6. data/.travis.yml +7 -1
  7. data/CHANGELOG.md +341 -243
  8. data/Dockerfile +44 -16
  9. data/LICENSE +201 -0
  10. data/README.md +114 -82
  11. data/Rakefile +19 -0
  12. data/TODO.md +29 -23
  13. data/bin/oxidized +1 -2
  14. data/docs/Configuration.md +71 -31
  15. data/docs/Creating-Models.md +78 -0
  16. data/docs/Hooks.md +145 -41
  17. data/docs/Model-Notes/AireOS.md +12 -0
  18. data/docs/Model-Notes/ArbOS.md +12 -0
  19. data/docs/Model-Notes/Comware.md +14 -0
  20. data/docs/Model-Notes/EOS.md +9 -0
  21. data/docs/Model-Notes/JunOS.md +34 -0
  22. data/docs/Model-Notes/Netgear.md +68 -0
  23. data/docs/Model-Notes/README.md +19 -0
  24. data/docs/{VRP-Huawei.md → Model-Notes/VRP-Huawei.md} +10 -2
  25. data/docs/Model-Notes/XGS4600-Zyxel.md +39 -0
  26. data/docs/Outputs.md +27 -28
  27. data/docs/Ruby-API.md +38 -18
  28. data/docs/Sources.md +78 -16
  29. data/docs/Supported-OS-Types.md +171 -148
  30. data/extra/oxidized.logrotate +7 -0
  31. data/extra/oxidized.service +1 -1
  32. data/extra/rest_client.rb +4 -5
  33. data/extra/syslog.rb +16 -16
  34. data/lib/oxidized/cli.rb +3 -3
  35. data/lib/oxidized/config.rb +7 -4
  36. data/lib/oxidized/core.rb +3 -3
  37. data/lib/oxidized/hook.rb +64 -65
  38. data/lib/oxidized/hook/awssns.rb +2 -3
  39. data/lib/oxidized/hook/ciscosparkdiff.rb +49 -0
  40. data/lib/oxidized/hook/exec.rb +5 -5
  41. data/lib/oxidized/hook/githubrepo.rb +20 -14
  42. data/lib/oxidized/hook/slackdiff.rb +38 -19
  43. data/lib/oxidized/hook/xmppdiff.rb +58 -0
  44. data/lib/oxidized/input/cli.rb +5 -6
  45. data/lib/oxidized/input/ftp.rb +8 -7
  46. data/lib/oxidized/input/http.rb +39 -0
  47. data/lib/oxidized/input/ssh.rb +24 -22
  48. data/lib/oxidized/input/telnet.rb +38 -32
  49. data/lib/oxidized/jobs.rb +3 -4
  50. data/lib/oxidized/manager.rb +9 -4
  51. data/lib/oxidized/model/acos.rb +15 -16
  52. data/lib/oxidized/model/acsw.rb +3 -8
  53. data/lib/oxidized/model/aen.rb +1 -2
  54. data/lib/oxidized/model/aireos.rb +3 -5
  55. data/lib/oxidized/model/alteonos.rb +16 -18
  56. data/lib/oxidized/model/alvarion.rb +0 -4
  57. data/lib/oxidized/model/aos.rb +2 -4
  58. data/lib/oxidized/model/aos7.rb +2 -3
  59. data/lib/oxidized/model/aosw.rb +13 -15
  60. data/lib/oxidized/model/apc_aos.rb +0 -3
  61. data/lib/oxidized/model/arbos.rb +26 -0
  62. data/lib/oxidized/model/aricentiss.rb +51 -0
  63. data/lib/oxidized/model/asa.rb +33 -35
  64. data/lib/oxidized/model/asyncos.rb +41 -44
  65. data/lib/oxidized/model/audiocodes.rb +4 -8
  66. data/lib/oxidized/model/awplus.rb +84 -0
  67. data/lib/oxidized/model/boss.rb +6 -5
  68. data/lib/oxidized/model/br6910.rb +43 -45
  69. data/lib/oxidized/model/c4cmts.rb +3 -5
  70. data/lib/oxidized/model/cambium.rb +22 -0
  71. data/lib/oxidized/model/catos.rb +0 -2
  72. data/lib/oxidized/model/cisconga.rb +1 -3
  73. data/lib/oxidized/model/ciscosma.rb +37 -40
  74. data/lib/oxidized/model/ciscosmb.rb +7 -4
  75. data/lib/oxidized/model/comnetms.rb +43 -0
  76. data/lib/oxidized/model/comware.rb +9 -9
  77. data/lib/oxidized/model/coriant8600.rb +3 -5
  78. data/lib/oxidized/model/coriantgroove.rb +3 -5
  79. data/lib/oxidized/model/corianttmos.rb +1 -3
  80. data/lib/oxidized/model/cumulus.rb +26 -32
  81. data/lib/oxidized/model/datacom.rb +0 -2
  82. data/lib/oxidized/model/dcnos.rb +46 -0
  83. data/lib/oxidized/model/dlink.rb +1 -1
  84. data/lib/oxidized/model/dnos.rb +9 -5
  85. data/lib/oxidized/model/edgecos.rb +45 -0
  86. data/lib/oxidized/model/edgeos.rb +5 -3
  87. data/lib/oxidized/model/edgeswitch.rb +1 -3
  88. data/lib/oxidized/model/enterasys.rb +1 -3
  89. data/lib/oxidized/model/eos.rb +6 -8
  90. data/lib/oxidized/model/fabricos.rb +3 -5
  91. data/lib/oxidized/model/firewareos.rb +2 -5
  92. data/lib/oxidized/model/fortios.rb +21 -17
  93. data/lib/oxidized/model/ftos.rb +2 -4
  94. data/lib/oxidized/model/fujitsupy.rb +2 -4
  95. data/lib/oxidized/model/gaiaos.rb +6 -10
  96. data/lib/oxidized/model/gcombnps.rb +82 -0
  97. data/lib/oxidized/model/hatteras.rb +8 -5
  98. data/lib/oxidized/model/hirschmann.rb +8 -10
  99. data/lib/oxidized/model/hpebladesystem.rb +19 -17
  100. data/lib/oxidized/model/hpemsa.rb +0 -3
  101. data/lib/oxidized/model/ios.rb +54 -55
  102. data/lib/oxidized/model/iosxe.rb +5 -0
  103. data/lib/oxidized/model/iosxr.rb +1 -3
  104. data/lib/oxidized/model/ipos.rb +1 -3
  105. data/lib/oxidized/model/ironware.rb +12 -15
  106. data/lib/oxidized/model/isam.rb +4 -5
  107. data/lib/oxidized/model/junos.rb +8 -7
  108. data/lib/oxidized/model/masteros.rb +1 -3
  109. data/lib/oxidized/model/mlnxos.rb +3 -4
  110. data/lib/oxidized/model/model.rb +15 -7
  111. data/lib/oxidized/model/mtrlrfs.rb +1 -4
  112. data/lib/oxidized/model/ndms.rb +24 -0
  113. data/lib/oxidized/model/netgear.rb +3 -4
  114. data/lib/oxidized/model/netscaler.rb +0 -2
  115. data/lib/oxidized/model/nos.rb +1 -3
  116. data/lib/oxidized/model/nxos.rb +13 -3
  117. data/lib/oxidized/model/oneos.rb +6 -8
  118. data/lib/oxidized/model/openbsd.rb +76 -0
  119. data/lib/oxidized/model/opengear.rb +3 -5
  120. data/lib/oxidized/model/openwrt.rb +77 -0
  121. data/lib/oxidized/model/opnsense.rb +19 -0
  122. data/lib/oxidized/model/outputs.rb +1 -3
  123. data/lib/oxidized/model/panos.rb +1 -2
  124. data/lib/oxidized/model/pfsense.rb +9 -5
  125. data/lib/oxidized/model/planet.rb +8 -12
  126. data/lib/oxidized/model/powerconnect.rb +6 -9
  127. data/lib/oxidized/model/procurve.rb +18 -4
  128. data/lib/oxidized/model/quantaos.rb +3 -5
  129. data/lib/oxidized/model/routeros.rb +3 -2
  130. data/lib/oxidized/model/saos.rb +0 -1
  131. data/lib/oxidized/model/screenos.rb +3 -5
  132. data/lib/oxidized/model/sgos.rb +2 -3
  133. data/lib/oxidized/model/siklu.rb +0 -2
  134. data/lib/oxidized/model/slxos.rb +59 -0
  135. data/lib/oxidized/model/sros.rb +117 -0
  136. data/lib/oxidized/model/stoneos.rb +32 -0
  137. data/lib/oxidized/model/supermicro.rb +6 -41
  138. data/lib/oxidized/model/timos.rb +6 -114
  139. data/lib/oxidized/model/tmos.rb +1 -3
  140. data/lib/oxidized/model/tplink.rb +7 -11
  141. data/lib/oxidized/model/trango.rb +6 -7
  142. data/lib/oxidized/model/ucs.rb +0 -1
  143. data/lib/oxidized/model/voltaire.rb +3 -6
  144. data/lib/oxidized/model/voss.rb +1 -2
  145. data/lib/oxidized/model/vrp.rb +4 -5
  146. data/lib/oxidized/model/vyatta.rb +6 -4
  147. data/lib/oxidized/model/weos.rb +1 -3
  148. data/lib/oxidized/model/xos.rb +6 -5
  149. data/lib/oxidized/model/zhoneolt.rb +2 -2
  150. data/lib/oxidized/model/zynos.rb +1 -3
  151. data/lib/oxidized/model/zynoscli.rb +36 -0
  152. data/lib/oxidized/node.rb +11 -11
  153. data/lib/oxidized/node/stats.rb +15 -2
  154. data/lib/oxidized/nodes.rb +8 -8
  155. data/lib/oxidized/output/file.rb +41 -42
  156. data/lib/oxidized/output/git.rb +113 -115
  157. data/lib/oxidized/output/gitcrypt.rb +241 -242
  158. data/lib/oxidized/output/http.rb +23 -27
  159. data/lib/oxidized/output/output.rb +1 -2
  160. data/lib/oxidized/source/csv.rb +44 -45
  161. data/lib/oxidized/source/http.rb +52 -49
  162. data/lib/oxidized/source/source.rb +6 -7
  163. data/lib/oxidized/source/sql.rb +55 -51
  164. data/lib/oxidized/string.rb +3 -4
  165. data/lib/oxidized/version.rb +17 -1
  166. data/lib/oxidized/worker.rb +12 -3
  167. data/oxidized.gemspec +19 -13
  168. metadata +139 -51
  169. data/.ruby-version +0 -1
  170. data/Gemfile.lock +0 -44
@@ -1,3 +1,19 @@
1
1
  module Oxidized
2
- VERSION = '0.21.0'
2
+ VERSION = '0.22.0'
3
+ VERSION_FULL = '0.22.0'
4
+ def self.version_set
5
+ version_full = %x(git describe --tags).chop rescue ""
6
+ version = %x(git describe --tags --abbrev=0).chop rescue ""
7
+
8
+ return false unless [version, version_full].none?(&:empty?)
9
+
10
+ Oxidized.send(:remove_const, :VERSION)
11
+ Oxidized.send(:remove_const, :VERSION_FULL)
12
+ const_set(:VERSION, version)
13
+ const_set(:VERSION_FULL, version_full)
14
+ file = File.readlines(__FILE__)
15
+ file[1] = " VERSION = '%s'\n" % VERSION
16
+ file[2] = " VERSION_FULL = '%s'\n" % VERSION_FULL
17
+ File.write(__FILE__, file.join)
18
+ end
3
19
  end
@@ -42,9 +42,9 @@ module Oxidized
42
42
  node.stats.add job
43
43
  @jobs.duration job.time
44
44
  node.running = false
45
- @jobs_done += 1 # needed for worker_done event
46
45
 
47
46
  if job.status == :success
47
+ @jobs_done += 1 # needed for :nodes_done hook
48
48
  Oxidized.Hooks.handle :node_success, :node => node,
49
49
  :job => job
50
50
  msg = "update #{node.name}"
@@ -52,7 +52,7 @@ module Oxidized
52
52
  msg += " with message '#{node.msg}'" if node.msg
53
53
  output = node.output.new
54
54
  if output.store node.name, job.config,
55
- :msg => msg, :email => node.email, :user => node.user, :group => node.group
55
+ :msg => msg, :email => node.email, :user => node.user, :group => node.group
56
56
  Oxidized.logger.info "Configuration updated for #{node.group}/#{node.name}"
57
57
  Oxidized.Hooks.handle :post_store, :node => node,
58
58
  :job => job,
@@ -66,6 +66,11 @@ module Oxidized
66
66
  msg += ", retry attempt #{node.retry}"
67
67
  @nodes.next node.name
68
68
  else
69
+ # Only increment the @jobs_done when we give up retries for a node (or success).
70
+ # As it would otherwise cause @jobs_done to be incremented with generic retries.
71
+ # This would cause :nodes_done hook to desync from running at the end of the nodelist and
72
+ # be fired when the @jobs_done > @nodes.count (could be mid-cycle on the next cycle).
73
+ @jobs_done += 1
69
74
  msg += ", retries exhausted, giving up"
70
75
  node.retry = 0
71
76
  Oxidized.Hooks.handle :node_fail, :node => node,
@@ -80,7 +85,11 @@ module Oxidized
80
85
  private
81
86
 
82
87
  def is_cycle_finished?
83
- @jobs_done > 0 && @jobs_done % @nodes.count == 0
88
+ if @jobs_done > @nodes.count
89
+ true
90
+ else
91
+ @jobs_done > 0 && @jobs_done % @nodes.count == 0
92
+ end
84
93
  end
85
94
 
86
95
  def run_done_hook
@@ -1,37 +1,43 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
3
  require 'oxidized/version'
5
4
 
6
5
  Gem::Specification.new do |s|
7
6
  s.name = 'oxidized'
8
7
  s.version = Oxidized::VERSION
9
- s.licenses = %w( Apache-2.0 )
8
+ s.licenses = %w[Apache-2.0]
10
9
  s.platform = Gem::Platform::RUBY
11
- s.authors = [ 'Saku Ytti', 'Samer Abdel-Hafez', 'Anton Aksola' ]
12
- s.email = %w( saku@ytti.fi sam@arahant.net aakso@iki.fi)
10
+ s.authors = ['Saku Ytti', 'Samer Abdel-Hafez', 'Anton Aksola']
11
+ s.email = %w[saku@ytti.fi sam@arahant.net aakso@iki.fi]
13
12
  s.homepage = 'http://github.com/ytti/oxidized'
14
13
  s.summary = 'feeble attempt at rancid'
15
14
  s.description = 'software to fetch configuration from network devices and store them'
16
15
  s.rubyforge_project = s.name
17
- s.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- s.executables = %w( oxidized )
16
+ s.files = %x(git ls-files -z).split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
17
+ s.executables = %w[oxidized]
19
18
  s.require_path = 'lib'
20
19
 
21
20
  s.required_ruby_version = '>= 2.0.0'
22
21
  s.add_runtime_dependency 'asetus', '~> 0.1'
23
- s.add_runtime_dependency 'slop', '~> 3.5'
24
22
  s.add_runtime_dependency 'net-ssh', '~> 4.1.0'
25
- s.add_runtime_dependency 'rugged', '~> 0.21', '>= 0.21.4'
23
+ s.add_runtime_dependency 'rugged', '~> 0.21', '>= 0.21.4'
24
+ s.add_runtime_dependency 'slop', '~> 3.5'
26
25
 
27
26
  if defined?(RUBY_VERSION) && RUBY_VERSION > '2.3'
28
- s.add_runtime_dependency 'net-telnet', '~> 0'
27
+ s.add_runtime_dependency 'net-telnet', '~> 0'
28
+ end
29
+
30
+ s.add_development_dependency 'simplecov'
31
+ if ENV['CI'] == 'true'
32
+ s.add_development_dependency 'codecov'
29
33
  end
30
34
 
31
- s.add_development_dependency 'pry', '~> 0'
32
35
  s.add_development_dependency 'bundler', '~> 1.10'
33
- s.add_development_dependency 'rake', '~> 10.0'
36
+ s.add_development_dependency 'git', '~> 1'
34
37
  s.add_development_dependency 'minitest', '~> 5.8'
35
38
  s.add_development_dependency 'mocha', '~> 1.1'
36
- s.add_development_dependency 'git', '~> 1'
39
+ s.add_development_dependency 'pry', '~> 0'
40
+ s.add_development_dependency 'rails_best_practices', '~> 1.19'
41
+ s.add_development_dependency 'rake', '~> 10.0'
42
+ s.add_development_dependency 'rubocop', '~> 0.55.0'
37
43
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxidized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -10,154 +10,210 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-11-01 00:00:00.000000000 Z
13
+ date: 2018-06-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
28
  version: '0.1'
29
- - !ruby/object:Gem::Dependency
30
- name: slop
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ~>
34
- - !ruby/object:Gem::Version
35
- version: '3.5'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ~>
41
- - !ruby/object:Gem::Version
42
- version: '3.5'
43
29
  - !ruby/object:Gem::Dependency
44
30
  name: net-ssh
45
31
  requirement: !ruby/object:Gem::Requirement
46
32
  requirements:
47
- - - ~>
33
+ - - "~>"
48
34
  - !ruby/object:Gem::Version
49
35
  version: 4.1.0
50
36
  type: :runtime
51
37
  prerelease: false
52
38
  version_requirements: !ruby/object:Gem::Requirement
53
39
  requirements:
54
- - - ~>
40
+ - - "~>"
55
41
  - !ruby/object:Gem::Version
56
42
  version: 4.1.0
57
43
  - !ruby/object:Gem::Dependency
58
44
  name: rugged
59
45
  requirement: !ruby/object:Gem::Requirement
60
46
  requirements:
61
- - - ~>
47
+ - - "~>"
62
48
  - !ruby/object:Gem::Version
63
49
  version: '0.21'
64
- - - '>='
50
+ - - ">="
65
51
  - !ruby/object:Gem::Version
66
52
  version: 0.21.4
67
53
  type: :runtime
68
54
  prerelease: false
69
55
  version_requirements: !ruby/object:Gem::Requirement
70
56
  requirements:
71
- - - ~>
57
+ - - "~>"
72
58
  - !ruby/object:Gem::Version
73
59
  version: '0.21'
74
- - - '>='
60
+ - - ">="
75
61
  - !ruby/object:Gem::Version
76
62
  version: 0.21.4
77
63
  - !ruby/object:Gem::Dependency
78
- name: pry
64
+ name: slop
79
65
  requirement: !ruby/object:Gem::Requirement
80
66
  requirements:
81
- - - ~>
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '3.5'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '3.5'
77
+ - !ruby/object:Gem::Dependency
78
+ name: net-telnet
79
+ requirement: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ type: :runtime
85
+ prerelease: false
86
+ version_requirements: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ - !ruby/object:Gem::Dependency
92
+ name: simplecov
93
+ requirement: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
82
96
  - !ruby/object:Gem::Version
83
97
  version: '0'
84
98
  type: :development
85
99
  prerelease: false
86
100
  version_requirements: !ruby/object:Gem::Requirement
87
101
  requirements:
88
- - - ~>
102
+ - - ">="
89
103
  - !ruby/object:Gem::Version
90
104
  version: '0'
91
105
  - !ruby/object:Gem::Dependency
92
106
  name: bundler
93
107
  requirement: !ruby/object:Gem::Requirement
94
108
  requirements:
95
- - - ~>
109
+ - - "~>"
96
110
  - !ruby/object:Gem::Version
97
111
  version: '1.10'
98
112
  type: :development
99
113
  prerelease: false
100
114
  version_requirements: !ruby/object:Gem::Requirement
101
115
  requirements:
102
- - - ~>
116
+ - - "~>"
103
117
  - !ruby/object:Gem::Version
104
118
  version: '1.10'
105
119
  - !ruby/object:Gem::Dependency
106
- name: rake
120
+ name: git
107
121
  requirement: !ruby/object:Gem::Requirement
108
122
  requirements:
109
- - - ~>
123
+ - - "~>"
110
124
  - !ruby/object:Gem::Version
111
- version: '10.0'
125
+ version: '1'
112
126
  type: :development
113
127
  prerelease: false
114
128
  version_requirements: !ruby/object:Gem::Requirement
115
129
  requirements:
116
- - - ~>
130
+ - - "~>"
117
131
  - !ruby/object:Gem::Version
118
- version: '10.0'
132
+ version: '1'
119
133
  - !ruby/object:Gem::Dependency
120
134
  name: minitest
121
135
  requirement: !ruby/object:Gem::Requirement
122
136
  requirements:
123
- - - ~>
137
+ - - "~>"
124
138
  - !ruby/object:Gem::Version
125
139
  version: '5.8'
126
140
  type: :development
127
141
  prerelease: false
128
142
  version_requirements: !ruby/object:Gem::Requirement
129
143
  requirements:
130
- - - ~>
144
+ - - "~>"
131
145
  - !ruby/object:Gem::Version
132
146
  version: '5.8'
133
147
  - !ruby/object:Gem::Dependency
134
148
  name: mocha
135
149
  requirement: !ruby/object:Gem::Requirement
136
150
  requirements:
137
- - - ~>
151
+ - - "~>"
138
152
  - !ruby/object:Gem::Version
139
153
  version: '1.1'
140
154
  type: :development
141
155
  prerelease: false
142
156
  version_requirements: !ruby/object:Gem::Requirement
143
157
  requirements:
144
- - - ~>
158
+ - - "~>"
145
159
  - !ruby/object:Gem::Version
146
160
  version: '1.1'
147
161
  - !ruby/object:Gem::Dependency
148
- name: git
162
+ name: pry
149
163
  requirement: !ruby/object:Gem::Requirement
150
164
  requirements:
151
- - - ~>
165
+ - - "~>"
152
166
  - !ruby/object:Gem::Version
153
- version: '1'
167
+ version: '0'
154
168
  type: :development
155
169
  prerelease: false
156
170
  version_requirements: !ruby/object:Gem::Requirement
157
171
  requirements:
158
- - - ~>
172
+ - - "~>"
159
173
  - !ruby/object:Gem::Version
160
- version: '1'
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: rails_best_practices
177
+ requirement: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - "~>"
180
+ - !ruby/object:Gem::Version
181
+ version: '1.19'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - "~>"
187
+ - !ruby/object:Gem::Version
188
+ version: '1.19'
189
+ - !ruby/object:Gem::Dependency
190
+ name: rake
191
+ requirement: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - "~>"
194
+ - !ruby/object:Gem::Version
195
+ version: '10.0'
196
+ type: :development
197
+ prerelease: false
198
+ version_requirements: !ruby/object:Gem::Requirement
199
+ requirements:
200
+ - - "~>"
201
+ - !ruby/object:Gem::Version
202
+ version: '10.0'
203
+ - !ruby/object:Gem::Dependency
204
+ name: rubocop
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: 0.55.0
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: 0.55.0
161
217
  description: software to fetch configuration from network devices and store them
162
218
  email:
163
219
  - saku@ytti.fi
@@ -168,25 +224,36 @@ executables:
168
224
  extensions: []
169
225
  extra_rdoc_files: []
170
226
  files:
171
- - .gitignore
172
- - .ruby-version
173
- - .travis.yml
227
+ - ".github/no-response.yml"
228
+ - ".gitignore"
229
+ - ".rubocop.yml"
230
+ - ".rubocop_todo.yml"
231
+ - ".travis.yml"
174
232
  - CHANGELOG.md
175
233
  - Dockerfile
176
234
  - Gemfile
177
- - Gemfile.lock
235
+ - LICENSE
178
236
  - README.md
179
237
  - Rakefile
180
238
  - TODO.md
181
239
  - bin/console
182
240
  - bin/oxidized
183
241
  - docs/Configuration.md
242
+ - docs/Creating-Models.md
184
243
  - docs/Hooks.md
244
+ - docs/Model-Notes/AireOS.md
245
+ - docs/Model-Notes/ArbOS.md
246
+ - docs/Model-Notes/Comware.md
247
+ - docs/Model-Notes/EOS.md
248
+ - docs/Model-Notes/JunOS.md
249
+ - docs/Model-Notes/Netgear.md
250
+ - docs/Model-Notes/README.md
251
+ - docs/Model-Notes/VRP-Huawei.md
252
+ - docs/Model-Notes/XGS4600-Zyxel.md
185
253
  - docs/Outputs.md
186
254
  - docs/Ruby-API.md
187
255
  - docs/Sources.md
188
256
  - docs/Supported-OS-Types.md
189
- - docs/VRP-Huawei.md
190
257
  - extra/auto-reload-config.runit
191
258
  - extra/nagios_check_failing_nodes.rb
192
259
  - extra/oxidized-report-git-commits
@@ -194,6 +261,7 @@ files:
194
261
  - extra/oxidized.apache2
195
262
  - extra/oxidized.init
196
263
  - extra/oxidized.init.d
264
+ - extra/oxidized.logrotate
197
265
  - extra/oxidized.nginx
198
266
  - extra/oxidized.runit
199
267
  - extra/oxidized.service
@@ -210,12 +278,15 @@ files:
210
278
  - lib/oxidized/core.rb
211
279
  - lib/oxidized/hook.rb
212
280
  - lib/oxidized/hook/awssns.rb
281
+ - lib/oxidized/hook/ciscosparkdiff.rb
213
282
  - lib/oxidized/hook/exec.rb
214
283
  - lib/oxidized/hook/githubrepo.rb
215
284
  - lib/oxidized/hook/noophook.rb
216
285
  - lib/oxidized/hook/slackdiff.rb
286
+ - lib/oxidized/hook/xmppdiff.rb
217
287
  - lib/oxidized/input/cli.rb
218
288
  - lib/oxidized/input/ftp.rb
289
+ - lib/oxidized/input/http.rb
219
290
  - lib/oxidized/input/input.rb
220
291
  - lib/oxidized/input/ssh.rb
221
292
  - lib/oxidized/input/telnet.rb
@@ -234,25 +305,32 @@ files:
234
305
  - lib/oxidized/model/aos7.rb
235
306
  - lib/oxidized/model/aosw.rb
236
307
  - lib/oxidized/model/apc_aos.rb
308
+ - lib/oxidized/model/arbos.rb
309
+ - lib/oxidized/model/aricentiss.rb
237
310
  - lib/oxidized/model/asa.rb
238
311
  - lib/oxidized/model/asyncos.rb
239
312
  - lib/oxidized/model/audiocodes.rb
313
+ - lib/oxidized/model/awplus.rb
240
314
  - lib/oxidized/model/boss.rb
241
315
  - lib/oxidized/model/br6910.rb
242
316
  - lib/oxidized/model/c4cmts.rb
317
+ - lib/oxidized/model/cambium.rb
243
318
  - lib/oxidized/model/casa.rb
244
319
  - lib/oxidized/model/catos.rb
245
320
  - lib/oxidized/model/cisconga.rb
246
321
  - lib/oxidized/model/ciscosma.rb
247
322
  - lib/oxidized/model/ciscosmb.rb
323
+ - lib/oxidized/model/comnetms.rb
248
324
  - lib/oxidized/model/comware.rb
249
325
  - lib/oxidized/model/coriant8600.rb
250
326
  - lib/oxidized/model/coriantgroove.rb
251
327
  - lib/oxidized/model/corianttmos.rb
252
328
  - lib/oxidized/model/cumulus.rb
253
329
  - lib/oxidized/model/datacom.rb
330
+ - lib/oxidized/model/dcnos.rb
254
331
  - lib/oxidized/model/dlink.rb
255
332
  - lib/oxidized/model/dnos.rb
333
+ - lib/oxidized/model/edgecos.rb
256
334
  - lib/oxidized/model/edgeos.rb
257
335
  - lib/oxidized/model/edgeswitch.rb
258
336
  - lib/oxidized/model/enterasys.rb
@@ -264,11 +342,13 @@ files:
264
342
  - lib/oxidized/model/ftos.rb
265
343
  - lib/oxidized/model/fujitsupy.rb
266
344
  - lib/oxidized/model/gaiaos.rb
345
+ - lib/oxidized/model/gcombnps.rb
267
346
  - lib/oxidized/model/hatteras.rb
268
347
  - lib/oxidized/model/hirschmann.rb
269
348
  - lib/oxidized/model/hpebladesystem.rb
270
349
  - lib/oxidized/model/hpemsa.rb
271
350
  - lib/oxidized/model/ios.rb
351
+ - lib/oxidized/model/iosxe.rb
272
352
  - lib/oxidized/model/iosxr.rb
273
353
  - lib/oxidized/model/ipos.rb
274
354
  - lib/oxidized/model/ironware.rb
@@ -278,13 +358,17 @@ files:
278
358
  - lib/oxidized/model/mlnxos.rb
279
359
  - lib/oxidized/model/model.rb
280
360
  - lib/oxidized/model/mtrlrfs.rb
361
+ - lib/oxidized/model/ndms.rb
281
362
  - lib/oxidized/model/netgear.rb
282
363
  - lib/oxidized/model/netonix.rb
283
364
  - lib/oxidized/model/netscaler.rb
284
365
  - lib/oxidized/model/nos.rb
285
366
  - lib/oxidized/model/nxos.rb
286
367
  - lib/oxidized/model/oneos.rb
368
+ - lib/oxidized/model/openbsd.rb
287
369
  - lib/oxidized/model/opengear.rb
370
+ - lib/oxidized/model/openwrt.rb
371
+ - lib/oxidized/model/opnsense.rb
288
372
  - lib/oxidized/model/outputs.rb
289
373
  - lib/oxidized/model/panos.rb
290
374
  - lib/oxidized/model/pfsense.rb
@@ -297,6 +381,9 @@ files:
297
381
  - lib/oxidized/model/screenos.rb
298
382
  - lib/oxidized/model/sgos.rb
299
383
  - lib/oxidized/model/siklu.rb
384
+ - lib/oxidized/model/slxos.rb
385
+ - lib/oxidized/model/sros.rb
386
+ - lib/oxidized/model/stoneos.rb
300
387
  - lib/oxidized/model/supermicro.rb
301
388
  - lib/oxidized/model/timos.rb
302
389
  - lib/oxidized/model/tmos.rb
@@ -311,6 +398,7 @@ files:
311
398
  - lib/oxidized/model/xos.rb
312
399
  - lib/oxidized/model/zhoneolt.rb
313
400
  - lib/oxidized/model/zynos.rb
401
+ - lib/oxidized/model/zynoscli.rb
314
402
  - lib/oxidized/node.rb
315
403
  - lib/oxidized/node/stats.rb
316
404
  - lib/oxidized/nodes.rb
@@ -337,17 +425,17 @@ require_paths:
337
425
  - lib
338
426
  required_ruby_version: !ruby/object:Gem::Requirement
339
427
  requirements:
340
- - - '>='
428
+ - - ">="
341
429
  - !ruby/object:Gem::Version
342
430
  version: 2.0.0
343
431
  required_rubygems_version: !ruby/object:Gem::Requirement
344
432
  requirements:
345
- - - '>='
433
+ - - ">="
346
434
  - !ruby/object:Gem::Version
347
435
  version: '0'
348
436
  requirements: []
349
437
  rubyforge_project: oxidized
350
- rubygems_version: 2.0.14.1
438
+ rubygems_version: 2.7.6
351
439
  signing_key:
352
440
  specification_version: 4
353
441
  summary: feeble attempt at rancid