blackstack-deployer 1.2.15 → 1.2.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/blackstack-deployer.rb +53 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7466aeed2f2ea365d7db6a32c0ce631f003250d0be94c57a7622ed25ae7089b
|
4
|
+
data.tar.gz: 95ec5407f0e0a90b48fa586c51d9c4e22b35cd54343d6d937ce5377f12f6c657
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b803e9242d6b063f3a77b4185e027bb6e242bf7ec1ea711b7c6ed838a3420688f53a8074ea6e8ac8d11dc1c645c566ec434c2c4b748b471014e68783a86e3f6
|
7
|
+
data.tar.gz: c1435b21e31e84d11b1bb9d193672423706a0342bfb6434fa1f64689eb89a8d33f5d40ce6f42313c19cff736082c4a03f49d76414116a8b14ad7ff06f647ee51
|
data/lib/blackstack-deployer.rb
CHANGED
@@ -5,14 +5,25 @@ module BlackStack
|
|
5
5
|
# Deployer is a library that can be used to deploy a cluster of nodes.
|
6
6
|
module Deployer
|
7
7
|
@@logger = BlackStack::BaseLogger.new(nil)
|
8
|
+
@@show_output = false
|
8
9
|
@@nodes = []
|
9
10
|
@@routines = []
|
10
11
|
|
12
|
+
# set show_output
|
13
|
+
def self.set_show_output(value)
|
14
|
+
@@show_output = value
|
15
|
+
end
|
16
|
+
|
11
17
|
# set the logger
|
12
18
|
def self.set_logger(i_logger)
|
13
19
|
@@logger = i_logger
|
14
20
|
end
|
15
21
|
|
22
|
+
# get show_output
|
23
|
+
def self.show_output
|
24
|
+
@@show_output
|
25
|
+
end
|
26
|
+
|
16
27
|
# get the logger assigned to the module
|
17
28
|
def self.logger
|
18
29
|
@@logger
|
@@ -165,8 +176,8 @@ module BlackStack
|
|
165
176
|
if h[:errors].size == 0
|
166
177
|
#BlackStack::Deployer.logger.done
|
167
178
|
else
|
168
|
-
BlackStack::Deployer.logger.logf('error: ' + h.to_s)
|
169
|
-
raise "Error running command
|
179
|
+
#BlackStack::Deployer.logger.logf('error: ' + h.to_s)
|
180
|
+
raise "Error running command:\n#{h[:errors].uniq.join("\n")}"
|
170
181
|
end
|
171
182
|
end
|
172
183
|
ret
|
@@ -175,7 +186,7 @@ module BlackStack
|
|
175
186
|
|
176
187
|
# define attributes and methods of a routine's command
|
177
188
|
module CommandModule
|
178
|
-
attr_accessor :command, :matches, :nomatches, :sudo
|
189
|
+
attr_accessor :command, :matches, :nomatches, :sudo, :background
|
179
190
|
|
180
191
|
def self.descriptor_errors(c)
|
181
192
|
errors = []
|
@@ -229,6 +240,12 @@ module BlackStack
|
|
229
240
|
end # each
|
230
241
|
end # if c[:matches].is_a?(Array)
|
231
242
|
end # if :matches exists
|
243
|
+
|
244
|
+
# if c[:background] exists, it must be a boolean
|
245
|
+
if c.has_key?(:background)
|
246
|
+
errors << "The value of the key :background is not a boolean" unless c[:background].is_a?(TrueClass) || c[:background].is_a?(FalseClass)
|
247
|
+
end
|
248
|
+
|
232
249
|
#
|
233
250
|
errors.uniq
|
234
251
|
end # def self.descriptor_error(h)
|
@@ -257,7 +274,12 @@ module BlackStack
|
|
257
274
|
self.nomatches << BlackStack::Deployer::NoMatch.new(m)
|
258
275
|
end
|
259
276
|
end
|
260
|
-
end
|
277
|
+
end
|
278
|
+
if h.has_key?(:background)
|
279
|
+
self.background = h[:background]
|
280
|
+
else
|
281
|
+
self.background = false
|
282
|
+
end
|
261
283
|
end # def initialize(h)
|
262
284
|
|
263
285
|
def to_hash
|
@@ -276,6 +298,7 @@ module BlackStack
|
|
276
298
|
end # def to_hash
|
277
299
|
|
278
300
|
def run(node)
|
301
|
+
l = BlackStack::Deployer.logger
|
279
302
|
errors = []
|
280
303
|
code = self.command
|
281
304
|
output = nil
|
@@ -316,8 +339,28 @@ module BlackStack
|
|
316
339
|
end
|
317
340
|
end
|
318
341
|
|
342
|
+
# if the command is configured to run in background, and the flag show_ouput is off, then modify the code to run in background
|
343
|
+
if self.background && !BlackStack::Deployer.show_output
|
344
|
+
lines = code.strip.lines
|
345
|
+
total = lines.size
|
346
|
+
i = 0
|
347
|
+
lines.each { |l|
|
348
|
+
i += 1
|
349
|
+
if i == total
|
350
|
+
l.gsub!(/;$/, '> /dev/null 2>&1 &')
|
351
|
+
else
|
352
|
+
l.gsub!(/;$/, '> /dev/null 2>&1;')
|
353
|
+
end
|
354
|
+
}
|
355
|
+
code = lines.join("\n")
|
356
|
+
end
|
357
|
+
|
319
358
|
# running the command
|
359
|
+
l.logs "Show command output... " if BlackStack::Deployer.show_output
|
360
|
+
l.log "\n\nCommand:\n--------\n\n#{code} " if BlackStack::Deployer.show_output
|
320
361
|
output = node.exec(code, self.sudo)
|
362
|
+
l.log "\n\nOutput:\n-------\n\n#{output}" if BlackStack::Deployer.show_output
|
363
|
+
l.logf('done tracing.') if BlackStack::Deployer.show_output
|
321
364
|
|
322
365
|
# validation: at least one of the matches should happen
|
323
366
|
if self.matches.size > 0
|
@@ -514,19 +557,19 @@ module BlackStack
|
|
514
557
|
raise "The routine #{routine_name} cannot be run on the node #{node_name}: #{errors.uniq.join(".\n")}" if errors.length > 0
|
515
558
|
|
516
559
|
# connect the node
|
517
|
-
self.logger.logs "Connecting to node #{n.name}... "
|
560
|
+
#self.logger.logs "Connecting to node #{n.name}... "
|
518
561
|
n.connect
|
519
|
-
self.logger.done
|
562
|
+
#self.logger.done
|
520
563
|
|
521
564
|
# run the routine
|
522
|
-
self.logger.logs "Running routine #{r.name}... "
|
565
|
+
#self.logger.logs "Running routine #{r.name}... "
|
523
566
|
r.run(n)
|
524
|
-
self.logger.done
|
567
|
+
#self.logger.done
|
525
568
|
|
526
569
|
# disconnect the node
|
527
|
-
self.logger.logs "Disconnecting from node #{n.name}... "
|
570
|
+
#self.logger.logs "Disconnecting from node #{n.name}... "
|
528
571
|
n.disconnect
|
529
|
-
self.logger.done
|
572
|
+
#self.logger.done
|
530
573
|
|
531
574
|
end # def
|
532
575
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blackstack-deployer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leandro Daniel Sardi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blackstack-nodes
|