splunk-sdk-ruby 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +160 -0
- data/Gemfile +8 -0
- data/LICENSE +177 -0
- data/README.md +310 -0
- data/Rakefile +40 -0
- data/examples/1_connect.rb +51 -0
- data/examples/2_manage.rb +103 -0
- data/examples/3_blocking_searches.rb +82 -0
- data/examples/4_asynchronous_searches.rb +79 -0
- data/examples/5_stream_data_to_splunk.rb +79 -0
- data/lib/splunk-sdk-ruby.rb +47 -0
- data/lib/splunk-sdk-ruby/ambiguous_entity_reference.rb +28 -0
- data/lib/splunk-sdk-ruby/atomfeed.rb +323 -0
- data/lib/splunk-sdk-ruby/collection.rb +417 -0
- data/lib/splunk-sdk-ruby/collection/apps.rb +35 -0
- data/lib/splunk-sdk-ruby/collection/case_insensitive_collection.rb +58 -0
- data/lib/splunk-sdk-ruby/collection/configuration_file.rb +50 -0
- data/lib/splunk-sdk-ruby/collection/configurations.rb +80 -0
- data/lib/splunk-sdk-ruby/collection/jobs.rb +136 -0
- data/lib/splunk-sdk-ruby/collection/messages.rb +51 -0
- data/lib/splunk-sdk-ruby/context.rb +522 -0
- data/lib/splunk-sdk-ruby/entity.rb +260 -0
- data/lib/splunk-sdk-ruby/entity/index.rb +191 -0
- data/lib/splunk-sdk-ruby/entity/job.rb +339 -0
- data/lib/splunk-sdk-ruby/entity/message.rb +36 -0
- data/lib/splunk-sdk-ruby/entity/saved_search.rb +71 -0
- data/lib/splunk-sdk-ruby/entity/stanza.rb +45 -0
- data/lib/splunk-sdk-ruby/entity_not_ready.rb +26 -0
- data/lib/splunk-sdk-ruby/illegal_operation.rb +27 -0
- data/lib/splunk-sdk-ruby/namespace.rb +239 -0
- data/lib/splunk-sdk-ruby/resultsreader.rb +716 -0
- data/lib/splunk-sdk-ruby/service.rb +339 -0
- data/lib/splunk-sdk-ruby/splunk_http_error.rb +49 -0
- data/lib/splunk-sdk-ruby/synonyms.rb +50 -0
- data/lib/splunk-sdk-ruby/version.rb +27 -0
- data/lib/splunk-sdk-ruby/xml_shim.rb +117 -0
- data/splunk-sdk-ruby.gemspec +27 -0
- data/test/atom_test_data.rb +472 -0
- data/test/data/atom/atom_feed_with_message.xml +19 -0
- data/test/data/atom/atom_with_feed.xml +99 -0
- data/test/data/atom/atom_with_several_entries.xml +101 -0
- data/test/data/atom/atom_with_simple_entries.xml +30 -0
- data/test/data/atom/atom_without_feed.xml +248 -0
- data/test/data/export/4.2.5/export_results.xml +88 -0
- data/test/data/export/4.3.5/export_results.xml +87 -0
- data/test/data/export/5.0.1/export_results.xml +78 -0
- data/test/data/export/5.0.1/nonreporting.xml +232 -0
- data/test/data/results/4.2.5/results-empty.xml +0 -0
- data/test/data/results/4.2.5/results-preview.xml +255 -0
- data/test/data/results/4.2.5/results.xml +336 -0
- data/test/data/results/4.3.5/results-empty.xml +0 -0
- data/test/data/results/4.3.5/results-preview.xml +1057 -0
- data/test/data/results/4.3.5/results.xml +626 -0
- data/test/data/results/5.0.2/results-empty.xml +1 -0
- data/test/data/results/5.0.2/results-empty_preview.xml +1 -0
- data/test/data/results/5.0.2/results-preview.xml +448 -0
- data/test/data/results/5.0.2/results.xml +501 -0
- data/test/export_test_data.json +360 -0
- data/test/resultsreader_test_data.json +1119 -0
- data/test/services.server.info.xml +43 -0
- data/test/services.xml +111 -0
- data/test/test_atomfeed.rb +71 -0
- data/test/test_collection.rb +278 -0
- data/test/test_configuration_file.rb +124 -0
- data/test/test_context.rb +119 -0
- data/test/test_entity.rb +95 -0
- data/test/test_helper.rb +250 -0
- data/test/test_http_error.rb +52 -0
- data/test/test_index.rb +91 -0
- data/test/test_jobs.rb +319 -0
- data/test/test_messages.rb +17 -0
- data/test/test_namespace.rb +188 -0
- data/test/test_restarts.rb +49 -0
- data/test/test_resultsreader.rb +106 -0
- data/test/test_roles.rb +41 -0
- data/test/test_saved_searches.rb +119 -0
- data/test/test_service.rb +65 -0
- data/test/test_users.rb +33 -0
- data/test/test_xml_shim.rb +28 -0
- data/test/testfile.txt +1 -0
- metadata +200 -0
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
require 'splunk-sdk-ruby'
|
3
|
+
|
4
|
+
include Splunk
|
5
|
+
|
6
|
+
class ServiceTestCase < TestCaseWithSplunkConnection
|
7
|
+
def test_connect
|
8
|
+
service = Splunk::connect(@splunkrc)
|
9
|
+
assert_true(service.apps.length() > 0)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_loggers
|
13
|
+
assert_false(@service.loggers.empty?)
|
14
|
+
assert_equal(@service.loggers.length, @service.loggers.values.length)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_settings
|
18
|
+
assert_not_nil(@service.settings.fetch("SPLUNK_HOME"))
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_info
|
22
|
+
keys = [
|
23
|
+
"build", "cpu_arch", "guid", "isFree", "isTrial", "licenseKeys",
|
24
|
+
"licenseSignature", "licenseState", "master_guid", "mode",
|
25
|
+
"os_build", "os_name", "os_version", "serverName", "version" ]
|
26
|
+
@service.info.keys {|key| assert(key.include? keys)}
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_info_with_namespace
|
30
|
+
service_args = @splunkrc.clone()
|
31
|
+
custom_namespace = Splunk::namespace(:sharing => "user",
|
32
|
+
:app => "search",
|
33
|
+
:owner => service_args[:username])
|
34
|
+
service_args[:namespace] = custom_namespace
|
35
|
+
service = Splunk::connect(service_args)
|
36
|
+
assert_equal(custom_namespace, service.namespace)
|
37
|
+
keys = [
|
38
|
+
"build", "cpu_arch", "guid", "isFree", "isTrial", "licenseKeys",
|
39
|
+
"licenseSignature", "licenseState", "master_guid", "mode",
|
40
|
+
"os_build", "os_name", "os_version", "serverName", "version" ]
|
41
|
+
service.info.keys {|key| assert(key.include? keys)}
|
42
|
+
end
|
43
|
+
|
44
|
+
def test_capabilities
|
45
|
+
expected = [
|
46
|
+
"admin_all_objects", "change_authentication",
|
47
|
+
"change_own_password", "delete_by_keyword",
|
48
|
+
"edit_deployment_client", "edit_deployment_server",
|
49
|
+
"edit_dist_peer", "edit_forwarders", "edit_httpauths",
|
50
|
+
"edit_input_defaults", "edit_monitor", "edit_roles",
|
51
|
+
"edit_scripted", "edit_search_server", "edit_server",
|
52
|
+
"edit_splunktcp", "edit_splunktcp_ssl", "edit_tcp",
|
53
|
+
"edit_udp", "edit_user", "edit_web_settings", "get_metadata",
|
54
|
+
"get_typeahead", "indexes_edit", "license_edit", "license_tab",
|
55
|
+
"list_deployment_client", "list_forwarders", "list_httpauths",
|
56
|
+
"list_inputs", "request_remote_tok", "rest_apps_management",
|
57
|
+
"rest_apps_view", "rest_properties_get", "rest_properties_set",
|
58
|
+
"restart_splunkd", "rtsearch", "schedule_search", "search",
|
59
|
+
"use_file_operator" ]
|
60
|
+
capabilities = @service.capabilities
|
61
|
+
expected.each do |item|
|
62
|
+
assert(capabilities.include?(item))
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/test/test_users.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
require 'splunk-sdk-ruby'
|
3
|
+
|
4
|
+
include Splunk
|
5
|
+
|
6
|
+
class UserTestCase < TestCaseWithSplunkConnection
|
7
|
+
def teardown
|
8
|
+
@service.users.each do |user|
|
9
|
+
if user.name.start_with?("delete-me")
|
10
|
+
@service.users.delete(user.name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
super
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_create_and_delete
|
18
|
+
name = temporary_name()
|
19
|
+
user = @service.users.create(name, :password => "abc", :roles => ["power"])
|
20
|
+
assert_true(@service.users.has_key?(name))
|
21
|
+
assert_equal(name, user.name)
|
22
|
+
assert_equal(["power"], user["roles"])
|
23
|
+
|
24
|
+
@service.users.delete(name)
|
25
|
+
assert_false(@service.users.has_key?(name))
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_case_insensitive
|
29
|
+
name = temporary_name() + "UPCASE"
|
30
|
+
user = @service.users.create(name, :password => "abc", :roles => ["power"])
|
31
|
+
assert_true(@service.users.has_key?(name.downcase()))
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative 'test_helper'
|
2
|
+
require 'splunk-sdk-ruby'
|
3
|
+
|
4
|
+
include Splunk
|
5
|
+
|
6
|
+
class TestXMLShim < Test::Unit::TestCase
|
7
|
+
def test_no_matches_with_rexml
|
8
|
+
Splunk::require_xml_library(:rexml)
|
9
|
+
assert_nil(Splunk::text_at_xpath("//msg", "<html>Hi</html>"))
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_no_matches_with_nokogiri
|
13
|
+
Splunk::require_xml_library(:nokogiri)
|
14
|
+
assert_nil(Splunk::text_at_xpath("//msg", "<html>Hi</html>"))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_matches_with_nokogiri
|
18
|
+
Splunk::require_xml_library(:nokogiri)
|
19
|
+
m = Splunk::text_at_xpath("//msg", "<response><msg>Boris & Natasha</msg></response>")
|
20
|
+
assert_equal("Boris & Natasha", m)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_matches_with_rexml
|
24
|
+
Splunk::require_xml_library(:rexml)
|
25
|
+
m = Splunk::text_at_xpath("//msg", "<response><msg>Boris & Natasha</msg></response>")
|
26
|
+
assert_equal("Boris & Natasha", m)
|
27
|
+
end
|
28
|
+
end
|
data/test/testfile.txt
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
metadata
ADDED
@@ -0,0 +1,200 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: splunk-sdk-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Splunk
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-02-22 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '10'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '10'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: test-unit
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Splunk SDK for Ruby
|
47
|
+
email:
|
48
|
+
- devinfo@splunk.com
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- lib/splunk-sdk-ruby/atomfeed.rb
|
54
|
+
- lib/splunk-sdk-ruby/version.rb
|
55
|
+
- lib/splunk-sdk-ruby/splunk_http_error.rb
|
56
|
+
- lib/splunk-sdk-ruby/entity_not_ready.rb
|
57
|
+
- lib/splunk-sdk-ruby/resultsreader.rb
|
58
|
+
- lib/splunk-sdk-ruby/context.rb
|
59
|
+
- lib/splunk-sdk-ruby/service.rb
|
60
|
+
- lib/splunk-sdk-ruby/illegal_operation.rb
|
61
|
+
- lib/splunk-sdk-ruby/entity.rb
|
62
|
+
- lib/splunk-sdk-ruby/entity/stanza.rb
|
63
|
+
- lib/splunk-sdk-ruby/entity/index.rb
|
64
|
+
- lib/splunk-sdk-ruby/entity/message.rb
|
65
|
+
- lib/splunk-sdk-ruby/entity/saved_search.rb
|
66
|
+
- lib/splunk-sdk-ruby/entity/job.rb
|
67
|
+
- lib/splunk-sdk-ruby/collection/configuration_file.rb
|
68
|
+
- lib/splunk-sdk-ruby/collection/configurations.rb
|
69
|
+
- lib/splunk-sdk-ruby/collection/apps.rb
|
70
|
+
- lib/splunk-sdk-ruby/collection/messages.rb
|
71
|
+
- lib/splunk-sdk-ruby/collection/jobs.rb
|
72
|
+
- lib/splunk-sdk-ruby/collection/case_insensitive_collection.rb
|
73
|
+
- lib/splunk-sdk-ruby/ambiguous_entity_reference.rb
|
74
|
+
- lib/splunk-sdk-ruby/collection.rb
|
75
|
+
- lib/splunk-sdk-ruby/namespace.rb
|
76
|
+
- lib/splunk-sdk-ruby/synonyms.rb
|
77
|
+
- lib/splunk-sdk-ruby/xml_shim.rb
|
78
|
+
- lib/splunk-sdk-ruby.rb
|
79
|
+
- examples/5_stream_data_to_splunk.rb
|
80
|
+
- examples/4_asynchronous_searches.rb
|
81
|
+
- examples/3_blocking_searches.rb
|
82
|
+
- examples/1_connect.rb
|
83
|
+
- examples/2_manage.rb
|
84
|
+
- test/test_atomfeed.rb
|
85
|
+
- test/test_resultsreader.rb
|
86
|
+
- test/test_configuration_file.rb
|
87
|
+
- test/test_users.rb
|
88
|
+
- test/resultsreader_test_data.json
|
89
|
+
- test/export_test_data.json
|
90
|
+
- test/test_roles.rb
|
91
|
+
- test/test_index.rb
|
92
|
+
- test/test_restarts.rb
|
93
|
+
- test/services.xml
|
94
|
+
- test/test_namespace.rb
|
95
|
+
- test/test_messages.rb
|
96
|
+
- test/test_service.rb
|
97
|
+
- test/test_http_error.rb
|
98
|
+
- test/atom_test_data.rb
|
99
|
+
- test/data/results/4.2.5/results.xml
|
100
|
+
- test/data/results/4.2.5/results-empty.xml
|
101
|
+
- test/data/results/4.2.5/results-preview.xml
|
102
|
+
- test/data/results/5.0.2/results.xml
|
103
|
+
- test/data/results/5.0.2/results-empty.xml
|
104
|
+
- test/data/results/5.0.2/results-empty_preview.xml
|
105
|
+
- test/data/results/5.0.2/results-preview.xml
|
106
|
+
- test/data/results/4.3.5/results.xml
|
107
|
+
- test/data/results/4.3.5/results-empty.xml
|
108
|
+
- test/data/results/4.3.5/results-preview.xml
|
109
|
+
- test/data/export/4.2.5/export_results.xml
|
110
|
+
- test/data/export/5.0.1/export_results.xml
|
111
|
+
- test/data/export/5.0.1/nonreporting.xml
|
112
|
+
- test/data/export/4.3.5/export_results.xml
|
113
|
+
- test/data/atom/atom_with_feed.xml
|
114
|
+
- test/data/atom/atom_with_simple_entries.xml
|
115
|
+
- test/data/atom/atom_with_several_entries.xml
|
116
|
+
- test/data/atom/atom_feed_with_message.xml
|
117
|
+
- test/data/atom/atom_without_feed.xml
|
118
|
+
- test/test_context.rb
|
119
|
+
- test/testfile.txt
|
120
|
+
- test/test_saved_searches.rb
|
121
|
+
- test/test_collection.rb
|
122
|
+
- test/test_entity.rb
|
123
|
+
- test/test_jobs.rb
|
124
|
+
- test/test_helper.rb
|
125
|
+
- test/services.server.info.xml
|
126
|
+
- test/test_xml_shim.rb
|
127
|
+
- CHANGELOG.md
|
128
|
+
- LICENSE
|
129
|
+
- README.md
|
130
|
+
- Gemfile
|
131
|
+
- Rakefile
|
132
|
+
- splunk-sdk-ruby.gemspec
|
133
|
+
homepage: http://dev.splunk.com
|
134
|
+
licenses: []
|
135
|
+
post_install_message:
|
136
|
+
rdoc_options: []
|
137
|
+
require_paths:
|
138
|
+
- lib
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 1.9.2
|
145
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: '0'
|
151
|
+
requirements: []
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 1.8.25
|
154
|
+
signing_key:
|
155
|
+
specification_version: 3
|
156
|
+
summary: Ruby bindings to Splunk REST layer
|
157
|
+
test_files:
|
158
|
+
- test/test_atomfeed.rb
|
159
|
+
- test/test_resultsreader.rb
|
160
|
+
- test/test_configuration_file.rb
|
161
|
+
- test/test_users.rb
|
162
|
+
- test/resultsreader_test_data.json
|
163
|
+
- test/export_test_data.json
|
164
|
+
- test/test_roles.rb
|
165
|
+
- test/test_index.rb
|
166
|
+
- test/test_restarts.rb
|
167
|
+
- test/services.xml
|
168
|
+
- test/test_namespace.rb
|
169
|
+
- test/test_messages.rb
|
170
|
+
- test/test_service.rb
|
171
|
+
- test/test_http_error.rb
|
172
|
+
- test/atom_test_data.rb
|
173
|
+
- test/data/results/4.2.5/results.xml
|
174
|
+
- test/data/results/4.2.5/results-empty.xml
|
175
|
+
- test/data/results/4.2.5/results-preview.xml
|
176
|
+
- test/data/results/5.0.2/results.xml
|
177
|
+
- test/data/results/5.0.2/results-empty.xml
|
178
|
+
- test/data/results/5.0.2/results-empty_preview.xml
|
179
|
+
- test/data/results/5.0.2/results-preview.xml
|
180
|
+
- test/data/results/4.3.5/results.xml
|
181
|
+
- test/data/results/4.3.5/results-empty.xml
|
182
|
+
- test/data/results/4.3.5/results-preview.xml
|
183
|
+
- test/data/export/4.2.5/export_results.xml
|
184
|
+
- test/data/export/5.0.1/export_results.xml
|
185
|
+
- test/data/export/5.0.1/nonreporting.xml
|
186
|
+
- test/data/export/4.3.5/export_results.xml
|
187
|
+
- test/data/atom/atom_with_feed.xml
|
188
|
+
- test/data/atom/atom_with_simple_entries.xml
|
189
|
+
- test/data/atom/atom_with_several_entries.xml
|
190
|
+
- test/data/atom/atom_feed_with_message.xml
|
191
|
+
- test/data/atom/atom_without_feed.xml
|
192
|
+
- test/test_context.rb
|
193
|
+
- test/testfile.txt
|
194
|
+
- test/test_saved_searches.rb
|
195
|
+
- test/test_collection.rb
|
196
|
+
- test/test_entity.rb
|
197
|
+
- test/test_jobs.rb
|
198
|
+
- test/test_helper.rb
|
199
|
+
- test/services.server.info.xml
|
200
|
+
- test/test_xml_shim.rb
|