splunk-pickaxe 2.6.0 → 2.7.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: 5aa55d18be3bf8e837799f9749d4600fd31c18d97dd2d55047dcec589bce63a5
4
- data.tar.gz: 47e31586bd3b61c81696be2dca691930d1146bde858f928a20c72d1296057c41
3
+ metadata.gz: f7898620b6ba1c671085b79b5f22d767066dd23b0efe44f3286a8cecd34df1f5
4
+ data.tar.gz: 8677d479c6a7552f6c82a23a5b58a04ee5ba944c8fd2cb6a6085f6e9979e1bbd
5
5
  SHA512:
6
- metadata.gz: dad90b3e6d3bd034872edbaa92efc3a93e7031407e71809d3817889229e165d35be331583df6dc2bab06cf8a0d491bf06c0a7f8047de495da77b1bf55b87019b
7
- data.tar.gz: 63f9959588456ef9679aa24c0b85afd292f7722a1426e06b41f3544722b087c8db7f3be27289f8aa6c817e3e99c7d1f8a66d393113f105bdfc1e4b2d757962ad
6
+ metadata.gz: e8c1c83a771dcc15ebe686c8130f3764ef2ccccb26fa3e00689b2888489a76540900281c8c0a242611b6f52c7556cd09670d3a3dc3b5d5cf4e3045afcdfb479e
7
+ data.tar.gz: 5a0258fb8382a92d505fbf97fb0b0cdeb1a9f68fdb4735c852428ec71e9c7c544c123b303d3bf7164a42f16d69bf41831195d19cece8dca4269f072c9db069b9
@@ -61,6 +61,7 @@ module Splunk
61
61
  option :password, type: :string, desc: 'The password to login to splunk with. If this is not provided it will ask for a password'
62
62
  option :repo_path, type: :string, desc: 'The path to the repo. If this is not specified it is assumed you are executing from within the repo'
63
63
  option :overwrite, type: :boolean, desc: 'Overwrite any local Splunk objects which differ from remote objects with the same name.'
64
+ option :local_save, type: :boolean, desc: 'Only retrieve local Splunk objects from remote'
64
65
  def save(environment)
65
66
  cli = HighLine.new
66
67
 
@@ -38,14 +38,15 @@ module Splunk
38
38
 
39
39
  def save_all
40
40
  overwrite = @args.fetch(:overwrite, false)
41
+ local_save = @args.fetch(:local_save, false)
41
42
 
42
- @alerts.save overwrite
43
- @dashboards.save overwrite
44
- @eventtypes.save overwrite
45
- @macros.save overwrite
46
- @reports.save overwrite
43
+ @alerts.save overwrite, local_save
44
+ @dashboards.save overwrite, local_save
45
+ @eventtypes.save overwrite, local_save
46
+ @macros.save overwrite, local_save
47
+ @reports.save overwrite, local_save
47
48
  # splunk-sdk doesn't seem to support iterating tags
48
- @field_extractions.save overwrite
49
+ @field_extractions.save overwrite, local_save
49
50
  end
50
51
  end
51
52
  end
@@ -89,32 +89,27 @@ module Splunk
89
89
  end
90
90
  end
91
91
 
92
- def save(overwrite)
92
+ def save(overwrite, local_save)
93
93
  puts "Saving all #{entity_dir.capitalize}"
94
94
 
95
95
  dir = File.join(pickaxe_config.execution_path, entity_dir)
96
96
  Dir.mkdir dir unless Dir.exist? dir
97
97
 
98
98
  Splunk::Collection.new(service, splunk_resource)
99
- .map { |e| save_config e, overwrite }
99
+ .map { |e| save_config e, overwrite, local_save }
100
100
  end
101
101
 
102
- def save_config(splunk_entity, overwrite)
102
+ def save_config(splunk_entity, overwrite, local_save)
103
103
  file_path = entity_file_path splunk_entity
104
104
 
105
- puts "- #{splunk_entity.name}"
106
- if overwrite || !File.exist?(file_path)
107
- overwritten = overwrite && File.exist?(file_path)
108
-
109
- File.write(file_path, {
110
- 'name' => splunk_entity.name,
111
- 'config' => splunk_entity_keys
112
- .map { |k| { k => splunk_entity.fetch(k) } }
113
- .reduce({}) { |memo, setting| memo.update(setting) }
114
- }.to_yaml)
115
- puts overwritten ? ' Overwritten' : ' Created'
105
+ if local_save
106
+ if File.exist?(file_path)
107
+ puts "- #{splunk_entity.name}"
108
+ write_to_file(file_path, overwrite, splunk_entity)
109
+ end
116
110
  else
117
- puts ' Already exists'
111
+ puts "- #{splunk_entity.name}"
112
+ write_to_file(file_path, overwrite, splunk_entity)
118
113
  end
119
114
  end
120
115
 
@@ -171,6 +166,22 @@ module Splunk
171
166
  # Must be implemented by child class
172
167
  nil
173
168
  end
169
+
170
+ def write_to_file(file_path, overwrite, splunk_entity)
171
+ if overwrite || !File.exist?(file_path)
172
+ overwritten = overwrite && File.exist?(file_path)
173
+
174
+ File.write(file_path, {
175
+ 'name' => splunk_entity.name,
176
+ 'config' => splunk_entity_keys
177
+ .map { |k| { k => splunk_entity.fetch(k) } }
178
+ .reduce({}) { |memo, setting| memo.update(setting) }
179
+ }.to_yaml)
180
+ puts overwritten ? ' Overwritten' : ' Created'
181
+ else
182
+ puts ' Already exists'
183
+ end
184
+ end
174
185
  end
175
186
  end
176
187
  end
@@ -44,10 +44,21 @@ module Splunk
44
44
  ['.xml']
45
45
  end
46
46
 
47
- def save_config(splunk_entity, overwrite)
47
+ def save_config(splunk_entity, overwrite, local_save)
48
48
  file_path = entity_file_path splunk_entity
49
49
 
50
- puts "- #{splunk_entity['label']}"
50
+ if local_save
51
+ if File.exist?(file_path)
52
+ puts "- #{splunk_entity['label']}"
53
+ write_to_file(file_path, overwrite, splunk_entity)
54
+ end
55
+ else
56
+ puts "- #{splunk_entity['label']}"
57
+ write_to_file(file_path, overwrite, splunk_entity)
58
+ end
59
+ end
60
+
61
+ def write_to_file(file_path, overwrite, splunk_entity)
51
62
  if overwrite || !File.exist?(file_path)
52
63
  overwritten = overwrite && File.exist?(file_path)
53
64
 
@@ -47,10 +47,21 @@ module Splunk
47
47
  splunk_entity['value'] != splunk_config(entity)['value']
48
48
  end
49
49
 
50
- def save_config(splunk_entity, overwrite)
50
+ def save_config(splunk_entity, overwrite, local_save)
51
51
  file_path = entity_file_path splunk_entity
52
52
 
53
- puts "- #{splunk_entity.name}"
53
+ if local_save
54
+ if File.exist?(file_path)
55
+ puts "- #{splunk_entity.name}"
56
+ write_to_file(file_path, overwrite, splunk_entity)
57
+ end
58
+ else
59
+ puts "- #{splunk_entity.name}"
60
+ write_to_file(file_path, overwrite, splunk_entity)
61
+ end
62
+ end
63
+
64
+ def write_to_file(file_path, overwrite, splunk_entity)
54
65
  if overwrite || !File.exist?(file_path)
55
66
  config = splunk_entity_keys
56
67
  .map { |k| { k => splunk_entity.fetch(k) } }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Splunk
4
4
  module Pickaxe
5
- VERSION = '2.6.0'
5
+ VERSION = '2.7.0'
6
6
  end
7
- end
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splunk-pickaxe
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Baugher
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-24 00:00:00.000000000 Z
11
+ date: 2019-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: splunk-sdk-ruby