ood_core 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/lib/ood_core/cluster.rb +1 -1
- data/lib/ood_core/job/adapters/slurm.rb +22 -11
- data/lib/ood_core/job/script.rb +3 -2
- data/lib/ood_core/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13f67ce37546552c1f3b8849dca41458b066cb36
|
4
|
+
data.tar.gz: 56142c67e2210211d4525982abb5254999306b6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56cfa06bd1d20bb00bc1362a1dbc484c03c600c7f30525fe51b483bfe6fe950b81c33fcd6ec214815cf538670525a46c423aea5a4e3a23aa44d2cc11ff31b115
|
7
|
+
data.tar.gz: 03d29f9582ae5609c159fad74825f16f96de0ff091aa150ad6f9cdf8a4b8899148ab8f0220fb8f6bbe18d438ec15784a9f95d6432883d658d13ee21781cd8cf7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
## Unreleased
|
2
2
|
|
3
|
+
## 0.0.3 (2017-04-28)
|
4
|
+
|
5
|
+
Features:
|
6
|
+
|
7
|
+
- provide support for slurm conf file
|
8
|
+
|
9
|
+
Bugfixes:
|
10
|
+
|
11
|
+
- correct code documentation for `Script#min_phys_memory`
|
12
|
+
- fix for login feature being allowed on all clusters even if not defined
|
13
|
+
|
3
14
|
## 0.0.2 (2017-04-27)
|
4
15
|
|
5
16
|
Features:
|
data/lib/ood_core/cluster.rb
CHANGED
@@ -8,13 +8,15 @@ module OodCore
|
|
8
8
|
|
9
9
|
# Build the Slurm adapter from a configuration
|
10
10
|
# @param config [#to_h] the configuration for job adapter
|
11
|
-
# @option config [
|
12
|
-
# @option config [
|
11
|
+
# @option config [Object] :cluster (nil) The cluster to communicate with
|
12
|
+
# @option config [Object] :conf (nil) Path to the slurm conf
|
13
|
+
# @option config [Object] :bin (nil) Path to slurm client binaries
|
13
14
|
def self.build_slurm(config)
|
14
15
|
c = config.to_h.symbolize_keys
|
15
|
-
cluster = c.fetch(:cluster,
|
16
|
-
|
17
|
-
|
16
|
+
cluster = c.fetch(:cluster, nil)
|
17
|
+
conf = c.fetch(:conf, nil)
|
18
|
+
bin = c.fetch(:bin, nil)
|
19
|
+
slurm = Adapters::Slurm::Batch.new(cluster: cluster, conf: conf, bin: bin)
|
18
20
|
Adapters::Slurm.new(slurm: slurm)
|
19
21
|
end
|
20
22
|
end
|
@@ -31,9 +33,15 @@ module OodCore
|
|
31
33
|
# The cluster of the Slurm batch server
|
32
34
|
# @example CHPC's kingspeak cluster
|
33
35
|
# my_batch.cluster #=> "kingspeak"
|
34
|
-
# @return [String] the cluster name
|
36
|
+
# @return [String, nil] the cluster name
|
35
37
|
attr_reader :cluster
|
36
38
|
|
39
|
+
# The path to the Slurm configuration file
|
40
|
+
# @example For Slurm 10.0.0
|
41
|
+
# my_batch.conf.to_s #=> "/usr/local/slurm/10.0.0/etc/slurm.conf
|
42
|
+
# @return [Pathname, nil] path to slurm conf
|
43
|
+
attr_reader :conf
|
44
|
+
|
37
45
|
# The path to the Slurm client installation binaries
|
38
46
|
# @example For Slurm 10.0.0
|
39
47
|
# my_batch.bin.to_s #=> "/usr/local/slurm/10.0.0/bin
|
@@ -44,10 +52,12 @@ module OodCore
|
|
44
52
|
# from
|
45
53
|
class Error < StandardError; end
|
46
54
|
|
47
|
-
# @param cluster [#to_s] the cluster name
|
55
|
+
# @param cluster [#to_s, nil] the cluster name
|
56
|
+
# @param conf [#to_s, nil] path to the slurm conf
|
48
57
|
# @param bin [#to_s] path to slurm installation binaries
|
49
|
-
def initialize(cluster:
|
50
|
-
@cluster = cluster.to_s
|
58
|
+
def initialize(cluster: nil, bin: nil, conf: nil)
|
59
|
+
@cluster = cluster && cluster.to_s
|
60
|
+
@conf = conf && Pathname.new(conf.to_s)
|
51
61
|
@bin = Pathname.new(bin.to_s)
|
52
62
|
end
|
53
63
|
|
@@ -80,7 +90,7 @@ module OodCore
|
|
80
90
|
args += ["-j", id.to_s] unless id.to_s.empty?
|
81
91
|
lines = call("squeue", *args).split("\n").map(&:strip)
|
82
92
|
|
83
|
-
lines.drop(cluster
|
93
|
+
lines.drop(cluster ? 2 : 1).map do |line|
|
84
94
|
Hash[options.keys.zip(line.split(delim))]
|
85
95
|
end
|
86
96
|
end
|
@@ -132,8 +142,9 @@ module OodCore
|
|
132
142
|
def call(cmd, *args, env: {}, stdin: "")
|
133
143
|
cmd = bin.join(cmd.to_s).to_s
|
134
144
|
args = args.map(&:to_s)
|
135
|
-
args += ["-M", cluster]
|
145
|
+
args += ["-M", cluster] if cluster
|
136
146
|
env = env.to_h
|
147
|
+
env["SLURM_CONF"] = conf.to_s if conf
|
137
148
|
o, e, s = Open3.capture3(env, cmd, *args, stdin_data: stdin.to_s)
|
138
149
|
s.success? ? o : raise(Error, e)
|
139
150
|
end
|
data/lib/ood_core/job/script.rb
CHANGED
@@ -82,8 +82,9 @@ module OodCore
|
|
82
82
|
# @return [Fixnum, nil] scheduling priority
|
83
83
|
attr_reader :priority
|
84
84
|
|
85
|
-
# The
|
86
|
-
#
|
85
|
+
# The minimum amount of physical memory in kilobyte for all nodes or per
|
86
|
+
# node (dependent upon the resource manager) that should be available for
|
87
|
+
# the job
|
87
88
|
# @return [Fixnum, nil] minimum physical memory
|
88
89
|
attr_reader :min_phys_memory
|
89
90
|
|
data/lib/ood_core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ood_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Nicklas
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ood_support
|