splunk-sdk-ruby 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/CHANGELOG.md +160 -0
  2. data/Gemfile +8 -0
  3. data/LICENSE +177 -0
  4. data/README.md +310 -0
  5. data/Rakefile +40 -0
  6. data/examples/1_connect.rb +51 -0
  7. data/examples/2_manage.rb +103 -0
  8. data/examples/3_blocking_searches.rb +82 -0
  9. data/examples/4_asynchronous_searches.rb +79 -0
  10. data/examples/5_stream_data_to_splunk.rb +79 -0
  11. data/lib/splunk-sdk-ruby.rb +47 -0
  12. data/lib/splunk-sdk-ruby/ambiguous_entity_reference.rb +28 -0
  13. data/lib/splunk-sdk-ruby/atomfeed.rb +323 -0
  14. data/lib/splunk-sdk-ruby/collection.rb +417 -0
  15. data/lib/splunk-sdk-ruby/collection/apps.rb +35 -0
  16. data/lib/splunk-sdk-ruby/collection/case_insensitive_collection.rb +58 -0
  17. data/lib/splunk-sdk-ruby/collection/configuration_file.rb +50 -0
  18. data/lib/splunk-sdk-ruby/collection/configurations.rb +80 -0
  19. data/lib/splunk-sdk-ruby/collection/jobs.rb +136 -0
  20. data/lib/splunk-sdk-ruby/collection/messages.rb +51 -0
  21. data/lib/splunk-sdk-ruby/context.rb +522 -0
  22. data/lib/splunk-sdk-ruby/entity.rb +260 -0
  23. data/lib/splunk-sdk-ruby/entity/index.rb +191 -0
  24. data/lib/splunk-sdk-ruby/entity/job.rb +339 -0
  25. data/lib/splunk-sdk-ruby/entity/message.rb +36 -0
  26. data/lib/splunk-sdk-ruby/entity/saved_search.rb +71 -0
  27. data/lib/splunk-sdk-ruby/entity/stanza.rb +45 -0
  28. data/lib/splunk-sdk-ruby/entity_not_ready.rb +26 -0
  29. data/lib/splunk-sdk-ruby/illegal_operation.rb +27 -0
  30. data/lib/splunk-sdk-ruby/namespace.rb +239 -0
  31. data/lib/splunk-sdk-ruby/resultsreader.rb +716 -0
  32. data/lib/splunk-sdk-ruby/service.rb +339 -0
  33. data/lib/splunk-sdk-ruby/splunk_http_error.rb +49 -0
  34. data/lib/splunk-sdk-ruby/synonyms.rb +50 -0
  35. data/lib/splunk-sdk-ruby/version.rb +27 -0
  36. data/lib/splunk-sdk-ruby/xml_shim.rb +117 -0
  37. data/splunk-sdk-ruby.gemspec +27 -0
  38. data/test/atom_test_data.rb +472 -0
  39. data/test/data/atom/atom_feed_with_message.xml +19 -0
  40. data/test/data/atom/atom_with_feed.xml +99 -0
  41. data/test/data/atom/atom_with_several_entries.xml +101 -0
  42. data/test/data/atom/atom_with_simple_entries.xml +30 -0
  43. data/test/data/atom/atom_without_feed.xml +248 -0
  44. data/test/data/export/4.2.5/export_results.xml +88 -0
  45. data/test/data/export/4.3.5/export_results.xml +87 -0
  46. data/test/data/export/5.0.1/export_results.xml +78 -0
  47. data/test/data/export/5.0.1/nonreporting.xml +232 -0
  48. data/test/data/results/4.2.5/results-empty.xml +0 -0
  49. data/test/data/results/4.2.5/results-preview.xml +255 -0
  50. data/test/data/results/4.2.5/results.xml +336 -0
  51. data/test/data/results/4.3.5/results-empty.xml +0 -0
  52. data/test/data/results/4.3.5/results-preview.xml +1057 -0
  53. data/test/data/results/4.3.5/results.xml +626 -0
  54. data/test/data/results/5.0.2/results-empty.xml +1 -0
  55. data/test/data/results/5.0.2/results-empty_preview.xml +1 -0
  56. data/test/data/results/5.0.2/results-preview.xml +448 -0
  57. data/test/data/results/5.0.2/results.xml +501 -0
  58. data/test/export_test_data.json +360 -0
  59. data/test/resultsreader_test_data.json +1119 -0
  60. data/test/services.server.info.xml +43 -0
  61. data/test/services.xml +111 -0
  62. data/test/test_atomfeed.rb +71 -0
  63. data/test/test_collection.rb +278 -0
  64. data/test/test_configuration_file.rb +124 -0
  65. data/test/test_context.rb +119 -0
  66. data/test/test_entity.rb +95 -0
  67. data/test/test_helper.rb +250 -0
  68. data/test/test_http_error.rb +52 -0
  69. data/test/test_index.rb +91 -0
  70. data/test/test_jobs.rb +319 -0
  71. data/test/test_messages.rb +17 -0
  72. data/test/test_namespace.rb +188 -0
  73. data/test/test_restarts.rb +49 -0
  74. data/test/test_resultsreader.rb +106 -0
  75. data/test/test_roles.rb +41 -0
  76. data/test/test_saved_searches.rb +119 -0
  77. data/test/test_service.rb +65 -0
  78. data/test/test_users.rb +33 -0
  79. data/test/test_xml_shim.rb +28 -0
  80. data/test/testfile.txt +1 -0
  81. 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
@@ -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 &amp; 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 &amp; 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