rbbt-util 5.31.0 → 5.31.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbbt/hpc/batch.rb +13 -10
- data/lib/rbbt/hpc/lsf.rb +2 -1
- data/lib/rbbt/workflow/integration/ansible.rb +7 -3
- data/lib/rbbt/workflow/step/accessor.rb +13 -8
- data/share/install/software/lib/install_helpers +6 -0
- 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: 4a455f72e89c6996a19cea23673b6c49f99ffd891bf04b6d0d239fbf79a1897a
|
|
4
|
+
data.tar.gz: d8dd575e2869c014508eaeebe52ef20cc29b6baed79a6d3e7559c9fdd1d8da19
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8613bbffa085f4899e64a5cb71071a061d20f08b479f95d8bc95e9c5abfd5735539a87ee4dddb6ed4822f3acc65d4bac787704e98213b99e4c7922d6ca8a0645
|
|
7
|
+
data.tar.gz: 231dc925d3ae454cadacd5f60f0d7f40d3646df2f7dc00949a7ae5f3e7480f372df06c4c59a3a85d36151d898511eee4c604315aaa2cbae92cf36ffbb1378e7d
|
data/lib/rbbt/hpc/batch.rb
CHANGED
|
@@ -11,7 +11,11 @@ module HPC
|
|
|
11
11
|
env_cmd = Misc.process_options options, :env_cmd
|
|
12
12
|
development = Misc.process_options options, :development
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
if contain = options[:contain]
|
|
15
|
+
contain = File.expand_path(contain)
|
|
16
|
+
env_cmd ||= ""
|
|
17
|
+
env_cmd << " TMPDIR='#{contain}/.rbbt/tmp' "
|
|
18
|
+
end
|
|
15
19
|
|
|
16
20
|
if options[:singularity]
|
|
17
21
|
|
|
@@ -19,24 +23,23 @@ module HPC
|
|
|
19
23
|
|
|
20
24
|
singularity_img, singularity_opt_dir, singularity_ruby_inline = options.values_at :singularity_img, :singularity_opt_dir, :singularity_ruby_inline
|
|
21
25
|
|
|
22
|
-
singularity_cmd = %(singularity exec -e -B #{singularity_opt_dir}:/singularity_opt/ -B
|
|
26
|
+
singularity_cmd = %(singularity exec -e -B #{singularity_opt_dir}:/singularity_opt/ -B "#{singularity_ruby_inline}":"/.singularity_ruby_inline":rw )
|
|
23
27
|
|
|
24
|
-
if contain
|
|
25
|
-
contain = File.expand_path(contain)
|
|
28
|
+
if contain && options[:hardened]
|
|
26
29
|
singularity_cmd << %( -C -H "#{contain}" \
|
|
30
|
+
-B "/.singularity_ruby_inline":"#{contain}/.singularity_ruby_inline":rw
|
|
27
31
|
-B "#{options[:batch_dir]}" \
|
|
28
32
|
-B /scratch/tmp \
|
|
29
33
|
#{ group != user_group ? "-B /gpfs/projects/#{user_group}" : "" } \
|
|
30
34
|
-B #{scratch_group_dir} \
|
|
31
35
|
-B #{projects_group_dir} \
|
|
32
|
-
-B
|
|
36
|
+
-B /apps/ \
|
|
33
37
|
-B ~/git:"#{contain}/git":ro \
|
|
34
38
|
#{Open.exists?('~/.rbbt/software/opt/')? '-B ~/.rbbt/software/opt/:"/opt/":ro' : '' } \
|
|
35
39
|
-B ~/.rbbt:"#{contain}/home/":ro)
|
|
36
|
-
singularity_cmd << " #{singularity_img} "
|
|
37
40
|
end
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
|
|
42
|
+
singularity_cmd << " #{singularity_img} "
|
|
40
43
|
end
|
|
41
44
|
|
|
42
45
|
if env_cmd
|
|
@@ -172,7 +175,7 @@ EOF
|
|
|
172
175
|
batch_options[:wipe_container] ||= 'post'
|
|
173
176
|
end
|
|
174
177
|
|
|
175
|
-
if batch_options[:contain] && ! batch_options[:
|
|
178
|
+
if batch_options[:contain] && ! batch_options[:hardened]
|
|
176
179
|
options[:workdir_all] = batch_options[:contain]
|
|
177
180
|
end
|
|
178
181
|
|
|
@@ -306,7 +309,7 @@ module load singularity
|
|
|
306
309
|
mkdir -p "#{singularity_opt_dir}"
|
|
307
310
|
EOF
|
|
308
311
|
|
|
309
|
-
if contain
|
|
312
|
+
if contain && options[:hardened]
|
|
310
313
|
|
|
311
314
|
prepare_environment +=<<-EOF
|
|
312
315
|
# Prepare container for singularity
|
data/lib/rbbt/hpc/lsf.rb
CHANGED
|
@@ -7,7 +7,8 @@ module HPC
|
|
|
7
7
|
|
|
8
8
|
def self.batch_system_variables
|
|
9
9
|
<<-EOF
|
|
10
|
-
|
|
10
|
+
[[ -z $LSB_MAX_MEM_RUSAGE ]] || MAX_MEMORY=$LSB_MAX_MEM_RUSAGE
|
|
11
|
+
[[ -z $MAX_MEMORY ]] && let MAX_MEMORY="$(grep MemTotal /proc/meminfo|grep -o "[[:digit:]]*") / 1024"
|
|
11
12
|
BATCH_JOB_ID=$LSF_JOBID
|
|
12
13
|
BATCH_SYSTEM=LSF
|
|
13
14
|
EOF
|
|
@@ -2,7 +2,7 @@ require_relative 'ansible/workflow'
|
|
|
2
2
|
require 'rbbt/workflow/usage'
|
|
3
3
|
|
|
4
4
|
module Ansible
|
|
5
|
-
def self.play(playbook, inventory = nil)
|
|
5
|
+
def self.play(playbook, inventory = nil, verbose = false)
|
|
6
6
|
inventory = Rbbt.etc.ansible_inventory.find
|
|
7
7
|
Log.with_severity 0 do
|
|
8
8
|
TmpFile.with_file do |tmp|
|
|
@@ -10,7 +10,11 @@ module Ansible
|
|
|
10
10
|
Open.write(tmp, [playbook].to_yaml)
|
|
11
11
|
playbook = tmp
|
|
12
12
|
end
|
|
13
|
-
|
|
13
|
+
if verbose
|
|
14
|
+
CMD.cmd_log("ansible-playbook -i #{inventory} -v #{playbook}")
|
|
15
|
+
else
|
|
16
|
+
CMD.cmd_log("ansible-playbook -i #{inventory} #{playbook}")
|
|
17
|
+
end
|
|
14
18
|
end
|
|
15
19
|
end
|
|
16
20
|
end
|
|
@@ -46,7 +50,7 @@ module Ansible
|
|
|
46
50
|
def self.playbook(file, task = nil, options = {})
|
|
47
51
|
task = 'default' if task.nil?
|
|
48
52
|
|
|
49
|
-
workflow = Workflow.require_workflow
|
|
53
|
+
workflow = Workflow === file ? file : Workflow.require_workflow(file)
|
|
50
54
|
task = workflow.tasks.keys.last if workflow.tasks[task].nil?
|
|
51
55
|
workflow2playbook workflow, task, options
|
|
52
56
|
end
|
|
@@ -99,7 +99,9 @@ class Step
|
|
|
99
99
|
if String === value && File.exists?(value)
|
|
100
100
|
Open.ln_s(value, path)
|
|
101
101
|
else
|
|
102
|
-
|
|
102
|
+
value = value.collect{|v| v = "#{v}" if Path === v; v }if Array === value
|
|
103
|
+
value = "#{value}" if Path === value
|
|
104
|
+
Open.write(path + '.yaml', value.to_yaml)
|
|
103
105
|
end
|
|
104
106
|
when Array === value
|
|
105
107
|
Open.write(path, value.collect{|v| Step === v ? v.path : v.to_s} * "\n")
|
|
@@ -122,15 +124,18 @@ class Step
|
|
|
122
124
|
workflow = job.workflow
|
|
123
125
|
workflow = Kernel.const_get workflow if String === workflow
|
|
124
126
|
if workflow
|
|
125
|
-
task_info = workflow.task_info(task_name)
|
|
126
|
-
input_types = task_info[:input_types]
|
|
127
|
-
task_inputs = task_info[:inputs]
|
|
128
|
-
input_defaults = task_info[:input_defaults]
|
|
127
|
+
task_info = IndiferentHash.setup(workflow.task_info(task_name))
|
|
128
|
+
input_types = IndiferentHash.setup(task_info[:input_types])
|
|
129
|
+
task_inputs = IndiferentHash.setup(task_info[:inputs])
|
|
130
|
+
input_defaults = IndiferentHash.setup(task_info[:input_defaults])
|
|
129
131
|
else
|
|
130
|
-
task_info =
|
|
132
|
+
task_info = IndiferentHash.setup({})
|
|
133
|
+
input_types = IndiferentHash.setup({})
|
|
134
|
+
task_inputs = IndiferentHash.setup({})
|
|
135
|
+
input_defaults = IndiferentHash.setup({})
|
|
131
136
|
end
|
|
132
137
|
|
|
133
|
-
inputs = {}
|
|
138
|
+
inputs = IndiferentHash.setup({})
|
|
134
139
|
real_inputs = job.real_inputs || job.info[:real_inputs]
|
|
135
140
|
job.recursive_inputs.zip(job.recursive_inputs.fields).each do |value,name|
|
|
136
141
|
next unless task_inputs.include? name.to_sym
|
|
@@ -545,7 +550,7 @@ class Step
|
|
|
545
550
|
|
|
546
551
|
def aborted?
|
|
547
552
|
status = self.status
|
|
548
|
-
status == :aborted || ((status != :cleaned && status != :noinfo && status != :setup && status != :noinfo) && nopid?)
|
|
553
|
+
status == :aborted || ((status != :dependencies && status != :cleaned && status != :noinfo && status != :setup && status != :noinfo) && nopid?)
|
|
549
554
|
end
|
|
550
555
|
|
|
551
556
|
# {{{ INFO
|
|
@@ -147,6 +147,8 @@ get_git(){
|
|
|
147
147
|
git pull origin master
|
|
148
148
|
git rebase master
|
|
149
149
|
git stash apply
|
|
150
|
+
git submodule init
|
|
151
|
+
git submodule update
|
|
150
152
|
fi
|
|
151
153
|
else
|
|
152
154
|
if [ $version == 'none' ];then
|
|
@@ -154,6 +156,10 @@ get_git(){
|
|
|
154
156
|
else
|
|
155
157
|
git clone --recursive "$url" "$name" -b $version
|
|
156
158
|
fi
|
|
159
|
+
|
|
160
|
+
cd "$name"
|
|
161
|
+
git submodule init
|
|
162
|
+
git submodule update
|
|
157
163
|
fi
|
|
158
164
|
|
|
159
165
|
clean_build
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rbbt-util
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.31.
|
|
4
|
+
version: 5.31.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miguel Vazquez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-03-
|
|
11
|
+
date: 2021-03-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|