pampa 2.0.5 → 2.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pampa.rb +51 -8
- metadata +26 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69ee20e63e239cd70fb18bf3cc6a8425e9badce48360a31d1b7bdfc029765ade
|
4
|
+
data.tar.gz: a8f93a2fdd1bae37ce2f9427423f48f64259079086509e52fbd201b8e567bf03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a81ace1a17588363728f70b705455ede1a2bc970ae5ebba80be9a41ae51e745a1947fc66fdd69ecf577c267e885d4dbad167da593cceba34eb79f1dcaef6df6c
|
7
|
+
data.tar.gz: fe314f7ef5414680473f5710bf0fd4ff3eb670eb2d85e613099e43149de1d7598e3cabee0bff81274550badeea77219ee5920c211f176b5cac2947b382421a3a
|
data/lib/pampa.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'sequel'
|
2
2
|
require 'blackstack-core'
|
3
3
|
require 'blackstack-nodes'
|
4
|
+
require 'blackstack-deployer'
|
4
5
|
require 'simple_command_line_parser'
|
5
6
|
require 'simple_cloud_logging'
|
6
7
|
|
@@ -26,6 +27,10 @@ module BlackStack
|
|
26
27
|
@@logger
|
27
28
|
end
|
28
29
|
|
30
|
+
def self.set_logger(l)
|
31
|
+
@@logger = l
|
32
|
+
end
|
33
|
+
|
29
34
|
# return the log filename.
|
30
35
|
def self.log_filename()
|
31
36
|
@@log_filename
|
@@ -44,6 +49,8 @@ module BlackStack
|
|
44
49
|
# add a node to the cluster.
|
45
50
|
def self.add_node(h)
|
46
51
|
@@nodes << BlackStack::Pampa::Node.new(h)
|
52
|
+
# add to deployer too, in order to run deployment.
|
53
|
+
BlackStack::Deployer.add_nodes(h)
|
47
54
|
end # def self.add_node(h)
|
48
55
|
|
49
56
|
# add an array of nodes to the cluster.
|
@@ -333,14 +340,7 @@ module BlackStack
|
|
333
340
|
# run the worker
|
334
341
|
# add these parameters for debug: debug=yes pampa=~/code/pampa/lib/pampa.rb
|
335
342
|
l.logs "Running worker #{worker.id}... "
|
336
|
-
s = "
|
337
|
-
source /home/#{node.ssh_username}/.rvm/scripts/rvm >/dev/null 2>&1;
|
338
|
-
rvm install 3.1.2 >/dev/null 2>&1;
|
339
|
-
rvm --default use 3.1.2 >/dev/null 2>&1;
|
340
|
-
cd /home/#{node.ssh_username}/pampa >/dev/null 2>&1;
|
341
|
-
export RUBYLIB=/home/#{node.ssh_username}/pampa >/dev/null 2>&1;
|
342
|
-
nohup ruby worker.rb id=#{worker.id} config=~/pampa/config.rb >/dev/null 2>&1 &
|
343
|
-
"
|
343
|
+
s = "nohup ruby worker.rb id=#{worker.id} config=~/pampa/config.rb >/dev/null 2>&1 &"
|
344
344
|
node.exec(s, false)
|
345
345
|
l.done
|
346
346
|
}
|
@@ -352,6 +352,48 @@ module BlackStack
|
|
352
352
|
} # @@nodes.each do |node|
|
353
353
|
end
|
354
354
|
|
355
|
+
# connect the nodes via ssh.
|
356
|
+
# kill all Ruby processes except this one.
|
357
|
+
# run the number of workers specified in the configuration of the Pampa module.
|
358
|
+
# return an array with the IDs of the workers.
|
359
|
+
#
|
360
|
+
def self.start()
|
361
|
+
# validate: the connection string is not nil
|
362
|
+
raise "The connection string is nil" if @@connection_string.nil?
|
363
|
+
# validate: the connection string is not empty
|
364
|
+
raise "The connection string is empty" if @@connection_string.empty?
|
365
|
+
# validate: the connection string is not blank
|
366
|
+
raise "The connection string is blank" if @@connection_string.strip.empty?
|
367
|
+
# getting logger
|
368
|
+
l = self.logger()
|
369
|
+
# iterate the nodes
|
370
|
+
@@nodes.each { |node|
|
371
|
+
l.logs("node:#{node.name()}... ")
|
372
|
+
# connect the node
|
373
|
+
l.logs("Connecting... ")
|
374
|
+
node.connect()
|
375
|
+
l.done
|
376
|
+
# kill all ruby processes except this one
|
377
|
+
l.logs("Killing all Ruby processes except this one... ")
|
378
|
+
node.exec("ps ax | grep ruby | grep -v grep | grep -v #{Process.pid} | cut -b3-7 | xargs -t kill;", false)
|
379
|
+
l.done
|
380
|
+
# run the number of workers specified in the configuration of the Pampa module.
|
381
|
+
node.workers.each { |worker|
|
382
|
+
# run the worker
|
383
|
+
# add these parameters for debug: debug=yes pampa=~/code/pampa/lib/pampa.rb
|
384
|
+
l.logs "Running worker #{worker.id}... "
|
385
|
+
s = "nohup ruby worker.rb id=#{worker.id} config=~/pampa/config.rb >/dev/null 2>&1 &"
|
386
|
+
node.exec(s, false)
|
387
|
+
l.done
|
388
|
+
}
|
389
|
+
# disconnect the node
|
390
|
+
l.logs("Disconnecting... ")
|
391
|
+
node.disconnect()
|
392
|
+
l.done
|
393
|
+
l.done
|
394
|
+
} # @@nodes.each do |node|
|
395
|
+
end
|
396
|
+
|
355
397
|
# connect the nodes via ssh.
|
356
398
|
# kill all Ruby processes except this one.
|
357
399
|
#
|
@@ -645,6 +687,7 @@ module BlackStack
|
|
645
687
|
AND #{self.field_time.to_s} < CURRENT_TIMESTAMP() - INTERVAL '#{self.max_job_duration_minutes.to_i} minutes'
|
646
688
|
AND #{self.field_id.to_s} IS NOT NULL
|
647
689
|
AND #{self.field_end_time.to_s} IS NULL
|
690
|
+
AND COALESCE(#{self.field_times.to_s},0) < #{self.max_try_times.to_i}
|
648
691
|
LIMIT #{n}
|
649
692
|
"
|
650
693
|
DB[q].all
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pampa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.6
|
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-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -56,20 +56,40 @@ dependencies:
|
|
56
56
|
requirements:
|
57
57
|
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
|
-
version: 1.2.
|
59
|
+
version: 1.2.11
|
60
60
|
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: 1.2.
|
62
|
+
version: 1.2.11
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: 1.2.
|
69
|
+
version: 1.2.11
|
70
70
|
- - ">="
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version: 1.2.
|
72
|
+
version: 1.2.11
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: blackstack-deployer
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.2.24
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.2.24
|
83
|
+
type: :runtime
|
84
|
+
prerelease: false
|
85
|
+
version_requirements: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.2.24
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: 1.2.24
|
73
93
|
- !ruby/object:Gem::Dependency
|
74
94
|
name: simple_command_line_parser
|
75
95
|
requirement: !ruby/object:Gem::Requirement
|