logstash-input-netldap 1.0.3 → 1.0.4

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: 2807fe04012d88dc5dc6e0acb531f146699a2f331f9f5f9b4241745d3793d2f4
4
- data.tar.gz: 9ab52574c928c23fd98c5d8db6e07b7ed6416f66ebc6f5087b0ad3ae0d0250c3
3
+ metadata.gz: 637cea3d2175940f42682ba1ff42787bd861a0fcf54ab4d278c2f135bde72e16
4
+ data.tar.gz: 2afec45c1756ed32102b7af24fe97cf9bea368c0b37afb2f1957f9ab8a5a98f6
5
5
  SHA512:
6
- metadata.gz: 34815de8abf3eced4e309c39f4cfc9a717e419209ceae680dd724bcb0c4e3c2313d98b5530df6a2e7ec722b819e2db4a09ce90f8a6f7612f2fea7579b81b6b73
7
- data.tar.gz: 89c3bc81a6b8181aae0d60e102a1d7f81cb7d24eaa2dc4d9015c9bad9147cd1f6625ca12276aee13eb92d44b61053f9e8535ec591714e7305238ac76350bda9b
6
+ metadata.gz: c2d45d6ca2c1f37919a9dd7dcd2185fae016a9c8ad261663d0ada6435c6874b0b0c880a7c4f4a44d122716d1e5cd95afb4b2e568ca535811fcd41c9b210c8770
7
+ data.tar.gz: 8f1c031c0eb234a6e94dc39224c063c7ae80d2c02deee52c9e723e75a64547bc0e4062a472ab8bd8d8d6d16f39e825bbe27367a0e2d195a3be84906140100f5a
@@ -1,3 +1,7 @@
1
+ ## 1.0.4
2
+
3
+ * Add the rufus-scheduler dependency to make search schedulable
4
+
1
5
  ## 1.0.0
2
6
 
3
7
  * First release of the plugin
@@ -5,7 +5,7 @@ require "stud/interval"
5
5
  require "socket" # for Socket.gethostname
6
6
  require "base64"
7
7
  require "rubygems"
8
- require "net/ldap"
8
+
9
9
 
10
10
  # Performs a LDAP search using net-ldap.
11
11
  #
@@ -56,8 +56,13 @@ class LogStash::Inputs::NetLdap < LogStash::Inputs::Base
56
56
  # Specify the attributes you wanna get for each entry
57
57
  config :attrs, :validate => :array, :default => ["uid", "mail"]
58
58
 
59
+ # Use of rufus-scheduler
60
+ config :schedule, :validate => :string
61
+
59
62
  public
60
63
  def register
64
+ require "net/ldap"
65
+ require "rufus/scheduler"
61
66
  @host = Socket.gethostname
62
67
 
63
68
  if @anonymous
@@ -78,7 +83,19 @@ class LogStash::Inputs::NetLdap < LogStash::Inputs::Base
78
83
  end
79
84
 
80
85
  def run(queue)
81
- # Filters def
86
+ if @schedule
87
+ @scheduler = Rufus::Scheduler.new(:max_work_threds => 1)
88
+ @scheduler.cron @schedule do
89
+ execute_search(queue)
90
+ end
91
+ @scheduler.join
92
+ else
93
+ execute_search(queue)
94
+ end
95
+ end
96
+
97
+ def execute_search(queue)
98
+ # Filters def
82
99
  finalFilter = "" # need to initialize this outside the each
83
100
  @filters.each.with_index do |hashFilter, index|
84
101
  tmpFilter = Net::LDAP::Filter.eq(hashFilter['field'], hashFilter['value'])
@@ -104,5 +121,9 @@ class LogStash::Inputs::NetLdap < LogStash::Inputs::Base
104
121
  end
105
122
  queue << event
106
123
  end
107
- end
124
+ end
125
+
126
+ def stop
127
+ @scheduler.shutdown(:wait) if @scheduler
128
+ end
108
129
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-netldap'
3
- s.version = '1.0.3'
3
+ s.version = '1.0.4'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = "Logstash input plugin that performs an LDAP search."
6
6
  s.description = "This gem is a Logstash input plugin allowing to retrieve entries from a LDAP directory. This gem has to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -16,12 +16,13 @@ Gem::Specification.new do |s|
16
16
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
17
17
 
18
18
  # Special flag to let us know this is actually a logstash plugin
19
- s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input" }
19
+ s.metadata = { "logstash_plugin" => "true", "logstash_group" => "input", "documentation_uri" => "https://github.com/damterroba/logstash-input-netldap/blob/master/docs/index.asciidoc" }
20
20
 
21
21
  # Gem dependencies
22
22
  s.add_runtime_dependency "logstash-core-plugin-api", ">= 1.60", "<= 2.99"
23
23
  s.add_runtime_dependency 'logstash-codec-plain'
24
24
  s.add_runtime_dependency 'stud', '>= 0.0.22'
25
25
  s.add_runtime_dependency 'net-ldap', '>= 0.16.1'
26
+ s.add_runtime_dependency 'rufus-scheduler'
26
27
  s.add_development_dependency 'logstash-devutils'
27
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-netldap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - damterroba
@@ -72,6 +72,20 @@ dependencies:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: 0.16.1
75
+ - !ruby/object:Gem::Dependency
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ name: rufus-scheduler
82
+ prerelease: false
83
+ type: :runtime
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
75
89
  - !ruby/object:Gem::Dependency
76
90
  requirement: !ruby/object:Gem::Requirement
77
91
  requirements:
@@ -109,6 +123,7 @@ licenses:
109
123
  metadata:
110
124
  logstash_plugin: 'true'
111
125
  logstash_group: input
126
+ documentation_uri: https://github.com/damterroba/logstash-input-netldap/blob/master/docs/index.asciidoc
112
127
  post_install_message:
113
128
  rdoc_options: []
114
129
  require_paths: