splunkman 0.0.1
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.
- data/Gemfile +3 -0
- data/Gemfile.lock +34 -0
- data/README.md +4 -0
- data/Rakefile +1 -0
- data/lib/splunkman.rb +2 -0
- data/lib/splunkman/search.rb +41 -0
- data/lib/splunkman/version.rb +3 -0
- data/pkg/splunkman-0.0.1.gem +0 -0
- data/splunkman.gemspec +29 -0
- metadata +129 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
splunkman (0.0.1)
|
5
|
+
json
|
6
|
+
rake
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
addressable (2.3.2)
|
12
|
+
crack (0.3.1)
|
13
|
+
diff-lcs (1.1.3)
|
14
|
+
json (1.7.4)
|
15
|
+
rake (0.9.2.2)
|
16
|
+
rspec (2.11.0)
|
17
|
+
rspec-core (~> 2.11.0)
|
18
|
+
rspec-expectations (~> 2.11.0)
|
19
|
+
rspec-mocks (~> 2.11.0)
|
20
|
+
rspec-core (2.11.1)
|
21
|
+
rspec-expectations (2.11.2)
|
22
|
+
diff-lcs (~> 1.1.3)
|
23
|
+
rspec-mocks (2.11.2)
|
24
|
+
webmock (1.8.9)
|
25
|
+
addressable (>= 2.2.7)
|
26
|
+
crack (>= 0.1.7)
|
27
|
+
|
28
|
+
PLATFORMS
|
29
|
+
ruby
|
30
|
+
|
31
|
+
DEPENDENCIES
|
32
|
+
rspec
|
33
|
+
splunkman!
|
34
|
+
webmock
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/lib/splunkman.rb
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
module SplunkMan
|
2
|
+
class Search
|
3
|
+
|
4
|
+
def initialize(splunk_server, user, password, splunk_search)
|
5
|
+
@splunk_search = splunk_search
|
6
|
+
@splunk_server = splunk_server
|
7
|
+
@user = user
|
8
|
+
@password = password
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
search_id = initiate_splunk_search @splunk_search
|
13
|
+
wait_for_splunk_search(search_id)
|
14
|
+
get_splunk_search_result search_id
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def initiate_splunk_search(splunk_search)
|
20
|
+
filter_command = "egrep -o '<sid>.*</sid>' | sed -e 's/<sid>//;s/<\\/sid>//"
|
21
|
+
splunk_search_request = "curl -k -s -u #{@user}:#{@password} #{@splunk_server}/search/jobs -d #{splunk_search} | #{filter_command} '"
|
22
|
+
`#{splunk_search_request}`.chomp
|
23
|
+
end
|
24
|
+
|
25
|
+
def wait_for_splunk_search(search_id)
|
26
|
+
puts "waiting for result for search id #{search_id}"
|
27
|
+
|
28
|
+
done = ''
|
29
|
+
while done.empty? do
|
30
|
+
filter_command = "grep -e isDone..1"
|
31
|
+
done=`curl -k -s -u #{@user}:#{@password} #{@splunk_server}/search/jobs/#{search_id} | #{filter_command}`
|
32
|
+
print "."
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_splunk_search_result(search_id)
|
37
|
+
splunk_search_result = "curl -k -s -u #{@user}:#{@password} #{@splunk_server}/search/jobs/#{search_id}/results --get -d output_mode=json"
|
38
|
+
JSON.parse(`#{splunk_search_result}`)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
Binary file
|
data/splunkman.gemspec
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
#-*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
$LOAD_PATH.push File.expand_path("../lib", __FILE__)
|
4
|
+
require "splunkman/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "splunkman"
|
8
|
+
gem.version = SplunkMan::VERSION
|
9
|
+
gem.authors = ["Chris Tracey"]
|
10
|
+
gem.email = [""]
|
11
|
+
gem.homepage = "https://github.com/ctracey/splunkman"
|
12
|
+
gem.summary = %q{SplunkMan provides a simple API to execute saved searches on Splunk}
|
13
|
+
|
14
|
+
# gem.description = %q{}
|
15
|
+
# gem.rubyforge_project = "packbot"
|
16
|
+
|
17
|
+
gem.files = Dir.glob("**/*")
|
18
|
+
gem.test_files = Dir.glob("{spec}/**/*")
|
19
|
+
gem.executables = Dir.glob("{bin}/*").map{ |f| file.basename(f) }
|
20
|
+
gem.require_paths = ["lib"]
|
21
|
+
|
22
|
+
gem.add_runtime_dependency "rake"
|
23
|
+
gem.add_runtime_dependency "json"
|
24
|
+
|
25
|
+
gem.add_development_dependency "rspec"
|
26
|
+
gem.add_development_dependency "webmock"
|
27
|
+
end
|
28
|
+
|
29
|
+
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: splunkman
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Chris Tracey
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2012-08-17 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rake
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: json
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :runtime
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rspec
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: webmock
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
description:
|
77
|
+
email:
|
78
|
+
- ""
|
79
|
+
executables: []
|
80
|
+
|
81
|
+
extensions: []
|
82
|
+
|
83
|
+
extra_rdoc_files: []
|
84
|
+
|
85
|
+
files:
|
86
|
+
- Gemfile
|
87
|
+
- Gemfile.lock
|
88
|
+
- lib/splunkman/search.rb
|
89
|
+
- lib/splunkman/version.rb
|
90
|
+
- lib/splunkman.rb
|
91
|
+
- pkg/splunkman-0.0.1.gem
|
92
|
+
- Rakefile
|
93
|
+
- README.md
|
94
|
+
- splunkman.gemspec
|
95
|
+
homepage: https://github.com/ctracey/splunkman
|
96
|
+
licenses: []
|
97
|
+
|
98
|
+
post_install_message:
|
99
|
+
rdoc_options: []
|
100
|
+
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.8.21
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: SplunkMan provides a simple API to execute saved searches on Splunk
|
128
|
+
test_files: []
|
129
|
+
|