oxidized 0.22.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b167d6b2d89382ddf8e5ad3cbcf503f10cf7224ef2d11c14123be2aa3caba5d3
4
- data.tar.gz: 4296fe19998d6f687fcd71acb3bac178a13241b417f13e28c6faa5e94ea0b619
3
+ metadata.gz: 82b0526060e394b00d65a0910bc943c6ab0e7d297e10af5bba036b98d69a592c
4
+ data.tar.gz: d3ff1a990a0cd666313e3027a59148e7e1e3dc5cef403205a136a74510655718
5
5
  SHA512:
6
- metadata.gz: 455ebad64a5b3decc7dacbb5a910e0a43a1227cce404a2cb8281a063bb73ad451d20d8a241b7bfb2334b9b2c58fa8955769c801d4246a4b81264d167e6fb6ecd
7
- data.tar.gz: 87ea00dfd830d8aa5c778a1060c389508e47e303f46c04983b1705c84e17aef7ee9c2f3ccf4386e8803a04166ee351c486319ee5f4cbaef36b95d7e0f43ea5a8
6
+ metadata.gz: 9ba909c41f9e35f02ba8c8429aaad7997c1837871d7d7c16097330c8f96a2d642106597a4289bdefb839540f17d080a7e3bfbd669c289f0bce693c24e4a58219
7
+ data.tar.gz: ffc0b7476888718ab44ee1372e247107c33092396478d0fcb91a7af7e3361f3de45f072184abd70f25f42d3a4ed658bf1d666c43d57c0a77dcf8e669ec7ab335
@@ -0,0 +1,12 @@
1
+ ## Pre-Request Checklist
2
+ <!-- Not all items apply to each PR, but a great PR addresses all applicable items. -->
3
+
4
+ - [ ] Passes rubocop code analysis (try `rubocop --auto-correct`)
5
+ - [ ] Tests added or adapted (try `rake test`)
6
+ - [ ] Changes are reflected in the documentation
7
+ - [ ] User-visible changes appended to [CHANGELOG.md](/CHANGELOG.md)
8
+
9
+ ## Description
10
+ <!-- Describe your changes here. -->
11
+
12
+ <!-- Add a text similar to "Closes issue #" if this PR relates to an existing issue. -->
data/.rubocop_todo.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  # This configuration was generated by
2
2
  # `rubocop --auto-gen-config`
3
- # on 2018-06-03 10:03:33 +0200 using RuboCop version 0.55.0.
3
+ # on 2018-06-08 09:41:49 +0200 using RuboCop version 0.57.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
@@ -19,7 +19,7 @@ Lint/AmbiguousBlockAssociation:
19
19
  - 'lib/oxidized/model/model.rb'
20
20
  - 'lib/oxidized/model/nos.rb'
21
21
 
22
- # Offense count: 681
22
+ # Offense count: 684
23
23
  Lint/AmbiguousRegexpLiteral:
24
24
  Enabled: false
25
25
 
@@ -68,11 +68,10 @@ Lint/ShadowingOuterLocalVariable:
68
68
  - 'lib/oxidized/model/fortios.rb'
69
69
  - 'lib/oxidized/model/planet.rb'
70
70
 
71
- # Offense count: 10
71
+ # Offense count: 7
72
72
  Lint/UnderscorePrefixedVariableName:
73
73
  Exclude:
74
74
  - 'lib/oxidized/input/cli.rb'
75
- - 'lib/oxidized/manager.rb'
76
75
  - 'lib/oxidized/model/model.rb'
77
76
  - 'lib/oxidized/nodes.rb'
78
77
 
@@ -115,7 +114,7 @@ Lint/Void:
115
114
  Exclude:
116
115
  - 'lib/oxidized/model/voss.rb'
117
116
 
118
- # Offense count: 63
117
+ # Offense count: 64
119
118
  Metrics/AbcSize:
120
119
  Max: 84
121
120
 
@@ -138,7 +137,7 @@ Metrics/ClassLength:
138
137
  Metrics/CyclomaticComplexity:
139
138
  Max: 28
140
139
 
141
- # Offense count: 56
140
+ # Offense count: 55
142
141
  # Configuration parameters: CountComments.
143
142
  Metrics/MethodLength:
144
143
  Max: 76
@@ -206,6 +205,12 @@ Performance/Casecmp:
206
205
  Exclude:
207
206
  - 'lib/oxidized/manager.rb'
208
207
 
208
+ # Offense count: 1
209
+ # Cop supports --auto-correct.
210
+ Performance/InefficientHashSearch:
211
+ Exclude:
212
+ - 'lib/oxidized/node.rb'
213
+
209
214
  # Offense count: 57
210
215
  # Cop supports --auto-correct.
211
216
  Performance/RedundantMatch:
@@ -257,7 +262,7 @@ Style/Alias:
257
262
  - 'lib/oxidized/node.rb'
258
263
  - 'lib/oxidized/nodes.rb'
259
264
 
260
- # Offense count: 46
265
+ # Offense count: 47
261
266
  # Cop supports --auto-correct.
262
267
  # Configuration parameters: EnforcedStyle.
263
268
  # SupportedStyles: always, conditionals
@@ -337,7 +342,7 @@ Style/ConditionalAssignment:
337
342
  - 'lib/oxidized/hook/githubrepo.rb'
338
343
  - 'lib/oxidized/model/model.rb'
339
344
 
340
- # Offense count: 150
345
+ # Offense count: 153
341
346
  Style/Documentation:
342
347
  Enabled: false
343
348
 
@@ -412,7 +417,7 @@ Style/LineEndConcatenation:
412
417
  Exclude:
413
418
  - 'lib/oxidized/hook.rb'
414
419
 
415
- # Offense count: 137
420
+ # Offense count: 142
416
421
  # Cop supports --auto-correct.
417
422
  # Configuration parameters: EnforcedStyle.
418
423
  # SupportedStyles: require_parentheses, require_no_parentheses, require_no_parentheses_except_multiline
@@ -485,7 +490,7 @@ Style/NumericPredicate:
485
490
  - 'lib/oxidized/nodes.rb'
486
491
  - 'lib/oxidized/worker.rb'
487
492
 
488
- # Offense count: 1
493
+ # Offense count: 2
489
494
  # Cop supports --auto-correct.
490
495
  Style/OrAssignment:
491
496
  Exclude:
@@ -503,7 +508,7 @@ Style/ParallelAssignment:
503
508
 
504
509
  # Offense count: 4
505
510
  # Cop supports --auto-correct.
506
- # Configuration parameters: AllowSafeAssignment.
511
+ # Configuration parameters: AllowSafeAssignment, AllowInMultilineConditions.
507
512
  Style/ParenthesesAroundCondition:
508
513
  Exclude:
509
514
  - 'lib/oxidized/model/ios.rb'
@@ -534,12 +539,11 @@ Style/Proc:
534
539
  Exclude:
535
540
  - 'lib/oxidized/hook/githubrepo.rb'
536
541
 
537
- # Offense count: 10
542
+ # Offense count: 9
538
543
  # Cop supports --auto-correct.
539
544
  Style/RedundantBegin:
540
545
  Exclude:
541
546
  - 'lib/oxidized/input/telnet.rb'
542
- - 'lib/oxidized/manager.rb'
543
547
  - 'lib/oxidized/output/git.rb'
544
548
  - 'lib/oxidized/output/gitcrypt.rb'
545
549
 
@@ -698,17 +702,16 @@ Style/WordArray:
698
702
  EnforcedStyle: percent
699
703
  MinSize: 3
700
704
 
701
- # Offense count: 4
705
+ # Offense count: 3
702
706
  # Cop supports --auto-correct.
703
707
  Style/ZeroLengthPredicate:
704
708
  Exclude:
705
709
  - 'lib/oxidized/core.rb'
706
- - 'lib/oxidized/input/telnet.rb'
707
710
  - 'lib/oxidized/model/ciscosmb.rb'
708
711
  - 'lib/oxidized/output/git.rb'
709
712
 
710
- # Offense count: 300
713
+ # Offense count: 306
711
714
  # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
712
715
  # URISchemes: http, https
713
716
  Metrics/LineLength:
714
- Max: 283
717
+ Max: 193
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## Master
4
+
5
+ * BUGFIX: model edgecos does not trigger falsepositives due to uptime and memory utilization
6
+ * BUGFIX: Use SECRET-DATA hints for hiding secrets in JunOS (@Zmegolaz)
7
+
3
8
  ## 0.22.0
4
9
 
5
10
  * FEATURE: openbsd model (@amarti2038)
data/Dockerfile CHANGED
@@ -23,7 +23,7 @@ LABEL maintainer="Samer Abdel-Hafez <sam@arahant.net>"
23
23
 
24
24
  # set up dependencies for the build process
25
25
  RUN apt-get -yq update && \
26
- apt-get -yq install ruby2.3 ruby2.3-dev libsqlite3-dev libssl-dev pkg-config make cmake libssh2-1-dev git g++ libffi-dev ruby-bundler
26
+ apt-get -yq install ruby2.3 ruby2.3-dev libsqlite3-dev libssl-dev pkg-config make cmake libssh2-1-dev git g++ libffi-dev ruby-bundler libicu-dev
27
27
 
28
28
  # upgrade libssh2 to self-built backport from stage 1
29
29
  COPY --from=libssh2-backport \
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Oxidized
2
2
  [![Build Status](https://api.travis-ci.com/ytti/oxidized.svg)](https://travis-ci.com/ytti/oxidized)
3
3
  [![codecov.io](https://codecov.io/gh/ytti/oxidized/coverage.svg?branch=master)](https://codecov.io/gh/ytti/oxidized?branch=master)
4
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/5a90cb22db6a4d5ea23ad0dfb53fe03a)](https://www.codacy.com/app/ytti/oxidized?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=ytti/oxidized&amp;utm_campaign=Badge_Grade)
4
5
  [![Code Climate](https://codeclimate.com/github/ytti/oxidized/badges/gpa.svg)](https://codeclimate.com/github/ytti/oxidized)
5
6
  [![Gem Version](https://badge.fury.io/rb/oxidized.svg)](http://badge.fury.io/rb/oxidized)
6
7
  [![Join the chat at https://gitter.im/oxidized/Lobby](https://badges.gitter.im/oxidized/Lobby.svg)](https://gitter.im/oxidized/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
@@ -78,7 +79,7 @@ Check out the [Oxidized TREX 2014 presentation](http://youtu.be/kBQ_CTUuqeU#t=3h
78
79
  Install all required packages and gems.
79
80
 
80
81
  ```shell
81
- apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev
82
+ apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev
82
83
  gem install oxidized
83
84
  gem install oxidized-script oxidized-web # if you don't install oxidized-web, make sure you remove "rest" from your config
84
85
  ```
@@ -88,13 +89,13 @@ gem install oxidized-script oxidized-web # if you don't install oxidized-web, ma
88
89
  On CentOS 6 / RHEL 6, install Ruby 2.0 or greater (for Ruby 2.1.2 installation instructions see [Installing Ruby 2.1.2 using RVM](#installing-ruby-212-using-rvm)), then install Oxidized dependencies
89
90
 
90
91
  ```shell
91
- yum install cmake sqlite-devel openssl-devel libssh2-devel
92
+ yum install cmake sqlite-devel openssl-devel libssh2-devel libicu-devel
92
93
  ```
93
94
 
94
95
  RHEL 7 / CentOS 7 will work out of the box with the following package list:
95
96
 
96
97
  ```shell
97
- yum install cmake sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel
98
+ yum install cmake sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel libicu-devel gcc-c++
98
99
  ```
99
100
 
100
101
  Now let's install oxidized via Rubygems:
@@ -76,6 +76,8 @@
76
76
  * [AOSW](/lib/oxidized/model/aosw.rb)
77
77
  * D-Link
78
78
  * [D-Link](/lib/oxidized/model/dlink.rb)
79
+ * EdgeCore
80
+ * [ES3528M](/lib/oxidized/model/edgecos.rb)
79
81
  * Ericsson/Redback
80
82
  * [IPOS (former SEOS)](/lib/oxidized/model/ipos.rb)
81
83
  * Extreme Networks
data/lib/oxidized/hook.rb CHANGED
@@ -37,7 +37,7 @@ module Oxidized
37
37
  "unknown event #{event}, available: #{Events.join ','}"
38
38
  end
39
39
 
40
- Oxidized.mgr.add_hook hook_type
40
+ Oxidized.mgr.add_hook(hook_type) or raise("cannot load hook '#{hook_type}', not found")
41
41
  begin
42
42
  hook = Oxidized.mgr.hook.fetch(hook_type).new
43
43
  rescue KeyError
@@ -49,7 +49,7 @@ class GithubRepo < Oxidized::Hook
49
49
  if cfg.has_key?('username')
50
50
  git_user = cfg.username
51
51
  else
52
- git_user = username_from_url ? username_from_url : 'git'
52
+ git_user = username_from_url || 'git'
53
53
  end
54
54
 
55
55
  if cfg.has_key?('password')
@@ -51,6 +51,17 @@ module Oxidized
51
51
  def password re = /^Password/
52
52
  @password or @password = re
53
53
  end
54
+
55
+ def login
56
+ match_re = [@node.prompt]
57
+ match_re << @username if @username
58
+ match_re << @password if @password
59
+ until (match = expect(match_re)) == @node.prompt
60
+ cmd(@node.auth[:username], nil) if match == @username
61
+ cmd(@node.auth[:password], nil) if match == @password
62
+ match_re.delete match
63
+ end
64
+ end
54
65
  end
55
66
  end
56
67
  end
@@ -118,19 +118,6 @@ module Oxidized
118
118
  end
119
119
  end
120
120
 
121
- # some models have SSH auth or terminal auth based on version of code
122
- # if SSH is configured for terminal auth, we'll still try to detect prompt
123
- def login
124
- match_re = [@node.prompt]
125
- match_re << @username if @username
126
- match_re << @password if @password
127
- until (match = expect(match_re)) == @node.prompt
128
- cmd(@node.auth[:username], nil) if match == @username
129
- cmd(@node.auth[:password], nil) if match == @password
130
- match_re.delete match
131
- end
132
- end
133
-
134
121
  def exec state = nil
135
122
  state == nil ? @exec : (@exec = state) unless vars :ssh_no_exec
136
123
  end
@@ -20,14 +20,8 @@ module Oxidized
20
20
  'Log' => @log }
21
21
 
22
22
  @telnet = Net::Telnet.new telnet_opts
23
- if @node.auth[:username] and @node.auth[:username].length > 0
24
- expect username
25
- @telnet.puts @node.auth[:username]
26
- end
27
- expect password
28
- @telnet.puts @node.auth[:password]
29
23
  begin
30
- expect @node.prompt
24
+ login
31
25
  rescue Timeout::Error
32
26
  raise PromptUndetect, ['unable to detect prompt:', @node.prompt].join(' ')
33
27
  end
@@ -6,66 +6,59 @@ module Oxidized
6
6
  class Manager
7
7
  class << self
8
8
  def load dir, file
9
- begin
10
- require File.join dir, file + '.rb'
11
- klass = nil
12
- [Oxidized, Object].each do |mod|
13
- klass = mod.constants.find { |const| const.to_s.downcase == file.downcase }
14
- klass = mod.constants.find { |const| const.to_s.downcase == 'oxidized' + file.downcase } unless klass
15
- klass = mod.const_get klass if klass
16
- break if klass
17
- end
18
- i = klass.new
19
- i.setup if i.respond_to? :setup
20
- { file => klass }
21
- rescue LoadError
22
- {}
9
+ require File.join dir, file + '.rb'
10
+ klass = nil
11
+ [Oxidized, Object].each do |mod|
12
+ klass = mod.constants.find { |const| const.to_s.downcase == file.downcase }
13
+ klass = mod.constants.find { |const| const.to_s.downcase == 'oxidized' + file.downcase } unless klass
14
+ klass = mod.const_get klass if klass
15
+ break if klass
23
16
  end
17
+ i = klass.new
18
+ i.setup if i.respond_to? :setup
19
+ { file => klass }
20
+ rescue LoadError
21
+ false
24
22
  end
25
23
  end
26
- attr_reader :input, :output, :model, :source, :hook
24
+
25
+ attr_reader :input, :output, :source, :model, :hook
27
26
  def initialize
28
27
  @input = {}
29
28
  @output = {}
30
- @model = {}
31
29
  @source = {}
32
- @hook = {}
30
+ @model = {}
31
+ @hook = {}
33
32
  end
34
33
 
35
- def add_input method
36
- method = Manager.load Config::InputDir, method
37
- return false if method.empty?
38
- @input.merge! method
34
+ def add_input name
35
+ loader @input, Config::InputDir, "input", name
39
36
  end
40
37
 
41
- def add_output method
42
- method = Manager.load Config::OutputDir, method
43
- return false if method.empty?
44
- @output.merge! method
38
+ def add_output name
39
+ loader @output, Config::OutputDir, "output", name
45
40
  end
46
41
 
47
- def add_model _model
48
- name = _model
49
- _model = Manager.load File.join(Config::Root, 'model'), name
50
- _model = Manager.load Config::ModelDir, name if _model.empty?
51
- return false if _model.empty?
52
- @model.merge! _model
42
+ def add_source name
43
+ loader @source, Config::SourceDir, "source", name
53
44
  end
54
45
 
55
- def add_source _source
56
- return nil if @source.has_key? _source
57
- _source = Manager.load Config::SourceDir, _source
58
- return false if _source.empty?
59
- @source.merge! _source
46
+ def add_model name
47
+ loader @model, Config::ModelDir, "model", name
60
48
  end
61
49
 
62
- def add_hook _hook
63
- return nil if @hook.has_key? _hook
64
- name = _hook
65
- _hook = Manager.load File.join(Config::Root, 'hook'), name
66
- _hook = Manager.load Config::HookDir, name if _hook.empty?
67
- return false if _hook.empty?
68
- @hook.merge! _hook
50
+ def add_hook name
51
+ loader @hook, Config::HookDir, "hook", name
52
+ end
53
+
54
+ private
55
+
56
+ # if local version of file exists, load it, else load global - return falsy value if nothing loaded
57
+ def loader hash, global_dir, local_dir, name
58
+ dir = File.join(Config::Root, local_dir)
59
+ map = Manager.load(dir, name) if File.exist? File.join(dir, name + ".rb")
60
+ map = Manager.load(global_dir, name) unless map
61
+ hash.merge!(map) if map
69
62
  end
70
63
  end
71
64
  end
@@ -1,4 +1,3 @@
1
-
2
1
  class BR6910 < Oxidized::Model
3
2
  prompt /^([\w.@()-]+[#>]\s?)$/
4
3
  comment '! '
@@ -38,6 +38,9 @@ class Comware < Oxidized::Model
38
38
  send "_cmdline-mode on\n"
39
39
  send "y\n"
40
40
  send vars(:comware_cmdline) + "\n"
41
+ send "xtd-cli-mode on\n"
42
+ send "y\n"
43
+ send vars(:comware_cmdline) + "\n"
41
44
  end
42
45
  end
43
46
 
@@ -13,15 +13,8 @@ class EdgeCOS < Oxidized::Model
13
13
 
14
14
  cmd 'show running-config'
15
15
 
16
- cmd 'show access-list tcam-utilization' do |cfg|
17
- comment cfg
18
- end
19
-
20
- cmd 'show memory' do |cfg|
21
- comment cfg
22
- end
23
-
24
16
  cmd 'show system' do |cfg|
17
+ cfg.gsub! /^\s*System Up Time\s*:.*\n/i, ''
25
18
  comment cfg
26
19
  end
27
20
 
@@ -12,11 +12,8 @@ class JunOS < Oxidized::Model
12
12
  end
13
13
 
14
14
  cmd :secret do |cfg|
15
- cfg.gsub!(/encrypted-password (\S+).*/, 'encrypted-password <secret removed>')
16
- cfg.gsub!(/pre-shared-key ascii-text (\S+).*/, 'pre-shared-key ascii-text <secret removed>')
17
- cfg.gsub!(/pre-shared-key hexadecimal (\S+).*/, 'pre-shared-key hexadecimal <secret removed>')
18
- cfg.gsub!(/authentication-key (\S+).*/, 'authentication-key <secret removed>')
19
15
  cfg.gsub!(/community (\S+) {/, 'community <hidden> {')
16
+ cfg.gsub!(/ "\$\d\$\S+; ## SECRET-DATA/, ' <secret removed>;')
20
17
  cfg
21
18
  end
22
19
 
data/lib/oxidized/node.rb CHANGED
@@ -15,13 +15,13 @@ module Oxidized
15
15
  ip_addr, _ = opt[:ip].to_s.split("/")
16
16
  Oxidized.logger.debug 'IPADDR %s' % ip_addr.to_s
17
17
  @name = opt[:name]
18
- @ip = @name unless Oxidized.config.resolve_dns?
19
- @ip ||= IPAddr.new(ip_addr).to_s rescue nil
20
- @ip ||= Resolv.new.getaddress @name
18
+ @ip = IPAddr.new(ip_addr).to_s rescue nil
19
+ @ip ||= Resolv.new.getaddress(@name) if Oxidized.config.resolve_dns?
20
+ @ip ||= @name
21
21
  @group = opt[:group]
22
+ @model = resolve_model opt
22
23
  @input = resolve_input opt
23
24
  @output = resolve_output opt
24
- @model = resolve_model opt
25
25
  @auth = resolve_auth opt
26
26
  @prompt = resolve_prompt opt
27
27
  @vars = opt[:vars]
@@ -95,6 +95,7 @@ module Oxidized
95
95
  :model => @model.class.to_s,
96
96
  :last => nil,
97
97
  :vars => @vars,
98
+ :mtime => @stats.mtime,
98
99
  }
99
100
  h[:full_name] = [@group, @name].join('/') if @group
100
101
  if @last
@@ -126,6 +127,10 @@ module Oxidized
126
127
  @retry = 0
127
128
  end
128
129
 
130
+ def modified
131
+ @stats.update_mtime
132
+ end
133
+
129
134
  private
130
135
 
131
136
  def resolve_prompt opt
@@ -219,7 +224,6 @@ module Oxidized
219
224
  end
220
225
 
221
226
  # model
222
- # FIXME: warning: instance variable @model not initialized
223
227
  if Oxidized.config.models.has_key?(@model.class.name.to_s.downcase)
224
228
  if Oxidized.config.models[@model.class.name.to_s.downcase].has_key?(key_str)
225
229
  value = Oxidized.config.models[@model.class.name.to_s.downcase][key_str]
@@ -1,6 +1,7 @@
1
1
  module Oxidized
2
2
  class Node
3
3
  class Stats
4
+ attr_accessor :mtime
4
5
  MAX_STAT = 10
5
6
 
6
7
  # @param [Job] job job whose information add to stats
@@ -35,9 +36,14 @@ module Oxidized
35
36
  @stats[:counter].reduce(0) { |m, h| h[0] == :success ? m : m + h[1] }
36
37
  end
37
38
 
39
+ def update_mtime
40
+ @mtime = Time.now.utc
41
+ end
42
+
38
43
  private
39
44
 
40
45
  def initialize
46
+ @mtime = "unknown"
41
47
  @stats = {}
42
48
  @stats[:counter] = Hash.new 0
43
49
  end
@@ -10,7 +10,7 @@ module Oxidized
10
10
  with_lock do
11
11
  new = []
12
12
  @source = Oxidized.config.source.default
13
- Oxidized.mgr.add_source @source
13
+ Oxidized.mgr.add_source(@source) or raise(MethodNotFound, "cannot load node source '#{@source}', not found")
14
14
  Oxidized.logger.info "lib/oxidized/nodes.rb: Loading nodes"
15
15
  nodes = Oxidized.mgr.source[@source].new.load node_want
16
16
  nodes.each do |node|
@@ -1,6 +1,6 @@
1
1
  module Oxidized
2
- VERSION = '0.22.0'
3
- VERSION_FULL = '0.22.0'
2
+ VERSION = '0.23.0'
3
+ VERSION_FULL = '0.23.0'
4
4
  def self.version_set
5
5
  version_full = %x(git describe --tags).chop rescue ""
6
6
  version = %x(git describe --tags --abbrev=0).chop rescue ""
@@ -53,6 +53,7 @@ module Oxidized
53
53
  output = node.output.new
54
54
  if output.store node.name, job.config,
55
55
  :msg => msg, :email => node.email, :user => node.user, :group => node.group
56
+ node.modified
56
57
  Oxidized.logger.info "Configuration updated for #{node.group}/#{node.name}"
57
58
  Oxidized.Hooks.handle :post_store, :node => node,
58
59
  :job => job,
data/oxidized.gemspec CHANGED
@@ -37,7 +37,6 @@ Gem::Specification.new do |s|
37
37
  s.add_development_dependency 'minitest', '~> 5.8'
38
38
  s.add_development_dependency 'mocha', '~> 1.1'
39
39
  s.add_development_dependency 'pry', '~> 0'
40
- s.add_development_dependency 'rails_best_practices', '~> 1.19'
41
40
  s.add_development_dependency 'rake', '~> 10.0'
42
- s.add_development_dependency 'rubocop', '~> 0.55.0'
41
+ s.add_development_dependency 'rubocop', '~> 0.57.1'
43
42
  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.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-06-03 00:00:00.000000000 Z
13
+ date: 2018-06-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
@@ -172,20 +172,6 @@ dependencies:
172
172
  - - "~>"
173
173
  - !ruby/object:Gem::Version
174
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
175
  - !ruby/object:Gem::Dependency
190
176
  name: rake
191
177
  requirement: !ruby/object:Gem::Requirement
@@ -206,14 +192,14 @@ dependencies:
206
192
  requirements:
207
193
  - - "~>"
208
194
  - !ruby/object:Gem::Version
209
- version: 0.55.0
195
+ version: 0.57.1
210
196
  type: :development
211
197
  prerelease: false
212
198
  version_requirements: !ruby/object:Gem::Requirement
213
199
  requirements:
214
200
  - - "~>"
215
201
  - !ruby/object:Gem::Version
216
- version: 0.55.0
202
+ version: 0.57.1
217
203
  description: software to fetch configuration from network devices and store them
218
204
  email:
219
205
  - saku@ytti.fi
@@ -224,6 +210,7 @@ executables:
224
210
  extensions: []
225
211
  extra_rdoc_files: []
226
212
  files:
213
+ - ".github/PULL_REQUEST_TEMPLATE.md"
227
214
  - ".github/no-response.yml"
228
215
  - ".gitignore"
229
216
  - ".rubocop.yml"