pbs 1.1.4 → 2.0.0
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/CHANGELOG.md +8 -0
- data/README.md +197 -13
- data/lib/pbs.rb +2 -31
- data/lib/pbs/attributes.rb +7 -8
- data/lib/pbs/batch.rb +334 -0
- data/lib/pbs/torque.rb +180 -62
- data/lib/pbs/version.rb +2 -1
- data/pbs.gemspec +3 -2
- metadata +12 -16
- data/config/batch.yml +0 -24
- data/config/websvcs02.osc.edu.yml +0 -24
- data/config/websvcs08.osc.edu.yml +0 -18
- data/examples/simplejob.rb +0 -66
- data/lib/pbs/conn.rb +0 -75
- data/lib/pbs/job.rb +0 -189
- data/lib/pbs/query.rb +0 -103
data/lib/pbs/torque.rb
CHANGED
@@ -1,73 +1,190 @@
|
|
1
|
-
require
|
1
|
+
require 'ffi'
|
2
2
|
|
3
3
|
module PBS
|
4
|
+
# An interface to the C-library of Torque
|
4
5
|
module Torque
|
5
6
|
extend FFI::Library
|
6
7
|
|
7
|
-
#
|
8
|
-
|
9
|
-
|
8
|
+
# @!attribute [rw] self.pbs_errno
|
9
|
+
# The internal PBS error number
|
10
|
+
# int pbs_errno
|
11
|
+
# @return [Fixnum] pbs error number
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
+
# @!attribute [r] self.pbs_server
|
14
|
+
# The PBS server name
|
15
|
+
# char *pbs_server
|
16
|
+
# @return [String] pbs server name
|
13
17
|
|
14
|
-
|
15
|
-
|
18
|
+
# @!method self.pbs_strerror(errno)
|
19
|
+
# Generates PBS error string from given error number
|
20
|
+
# char *pbs_strerror(int errno)
|
21
|
+
# @param errno [Fixnum] pbs error number
|
22
|
+
# @return [String] pbs error string
|
16
23
|
|
17
|
-
|
18
|
-
|
24
|
+
# @!method self.pbs_default
|
25
|
+
# Default PBS server name
|
26
|
+
# char *pbs_default(void)
|
27
|
+
# @see http://linux.die.net/man/3/pbs_default
|
28
|
+
# @return [String] default pbs server name
|
19
29
|
|
20
|
-
|
21
|
-
|
30
|
+
# @!method self.pbs_connect(server)
|
31
|
+
# Connect to PBS batch server
|
32
|
+
# int pbs_connect(char *server)
|
33
|
+
# @see http://linux.die.net/man/3/pbs_connect
|
34
|
+
# @param server [String] name of pbs server
|
35
|
+
# @return [Fixnum] connection identifier
|
22
36
|
|
23
|
-
|
24
|
-
|
37
|
+
# @!method self.pbs_disconnect(connect)
|
38
|
+
# Disconnect from a PBS batch server
|
39
|
+
# int pbs_disconnect(int connect)
|
40
|
+
# @see http://linux.die.net/man/3/pbs_disconnect
|
41
|
+
# @param connect [Fixnum] connection identifier
|
42
|
+
# @return [Fixnum] exit status code
|
25
43
|
|
26
|
-
|
27
|
-
|
44
|
+
# @!method self.pbs_deljob(connect, job_id, extend)
|
45
|
+
# Delete a PBS batch job
|
46
|
+
# int pbs_deljob(int connect, char *job_id, char *extend)
|
47
|
+
# @see http://linux.die.net/man/3/pbs_deljob
|
48
|
+
# @param connect [Fixnum] connection identifier
|
49
|
+
# @param job_id [String] the job id
|
50
|
+
# @param extend [String] implementation defined extensions
|
51
|
+
# @return [Fixnum] exit status code
|
28
52
|
|
29
|
-
|
30
|
-
|
53
|
+
# @!method self.pbs_holdjob(connect, job_id, hold_type, extend)
|
54
|
+
# Place a hold on a PBS batch job
|
55
|
+
# int pbs_holdjob(int connect, char *job_id, char *hold_type, char *extend)
|
56
|
+
# @see http://linux.die.net/man/3/pbs_holdjob
|
57
|
+
# @param connect [Fixnum] connection identifier
|
58
|
+
# @param job_id [String] the job id
|
59
|
+
# @param hold_type [String] type of hold to be applied
|
60
|
+
# @param extend [String] implementation defined extensions
|
61
|
+
# @return [Fixnum] exit status code
|
31
62
|
|
32
|
-
|
33
|
-
|
63
|
+
# @!method self.pbs_rlsjob(connect, job_id, hold_type, extend)
|
64
|
+
# Release a hold on a PBS batch job
|
65
|
+
# int pbs_rlsjob(int connect, char *job_id, char *hold_type, char *extend)
|
66
|
+
# @see http://linux.die.net/man/3/pbs_rlsjob
|
67
|
+
# @param connect [Fixnum] connection identifier
|
68
|
+
# @param job_id [String] the job id
|
69
|
+
# @param hold_type [String] type of hold to be released
|
70
|
+
# @param extend [String] implementation defined extensions
|
71
|
+
# @return [Fixnum] exit status code
|
34
72
|
|
35
|
-
|
36
|
-
|
73
|
+
# @!method self.pbs_statfree(stat)
|
74
|
+
# Free the memory allocated by {BatchStatus} object
|
75
|
+
# void pbs_statfree(struct batch_status *stat)
|
76
|
+
# @param stat [BatchStatus] the batch status object
|
77
|
+
# @return [void]
|
37
78
|
|
38
|
-
|
39
|
-
|
79
|
+
# @!method self.pbs_statjob(connect, id, attrib, extend)
|
80
|
+
# Obtain status of PBS batch jobs
|
81
|
+
# batch_status * pbs_statjob(int connect, char *id, struct attrl *attrib, char *extend)
|
82
|
+
# @see http://linux.die.net/man/3/pbs_statjob
|
83
|
+
# @param connect [Fixnum] connection identifier
|
84
|
+
# @param id [String] job or destination identifier
|
85
|
+
# @param attrib [Attrl] the attribute c-linked list object
|
86
|
+
# @param extend [String] implementation defined extensions
|
87
|
+
# @return [BatchStatus] c-linked list of batch status objects
|
88
|
+
# @note It is up to the user to free the space of the batch status objects
|
40
89
|
|
41
|
-
|
42
|
-
|
90
|
+
# @!method self.pbs_statnode(connect, id, attrib, extend)
|
91
|
+
# Obtain status of PBS nodes
|
92
|
+
# batch_status * pbs_statnode(int connect, char *id, struct attrl *attrib, char *extend)
|
93
|
+
# @see http://linux.die.net/man/3/pbs_statnode
|
94
|
+
# @param connect [Fixnum] connection identifier
|
95
|
+
# @param id [String] name of a node or null string
|
96
|
+
# @param attrib [Attrl] the attribute c-linked list object
|
97
|
+
# @param extend [String] implementation defined extensions
|
98
|
+
# @return [BatchStatus] c-linked list of batch status objects
|
99
|
+
# @note It is up to the user to free the space of the batch status objects
|
43
100
|
|
44
|
-
|
45
|
-
|
101
|
+
# @!method self.pbs_statque(connect, id, attrib, extend)
|
102
|
+
# Obtain status of PBS batch queues
|
103
|
+
# batch_status * pbs_statque(int connect, char *id, struct attrl *attrib, char *extend)
|
104
|
+
# @see http://linux.die.net/man/3/pbs_statque
|
105
|
+
# @param connect [Fixnum] connection identifier
|
106
|
+
# @param id [String] name of a queue or null string
|
107
|
+
# @param attrib [Attrl] the attribute c-linked list object
|
108
|
+
# @param extend [String] implementation defined extensions
|
109
|
+
# @return [BatchStatus] c-linked list of batch status objects
|
110
|
+
# @note It is up to the user to free the space of the batch status objects
|
46
111
|
|
47
|
-
|
48
|
-
|
112
|
+
# @!method self.pbs_statserver(connect, attrib, extend)
|
113
|
+
# Obtain status of a PBS batch server
|
114
|
+
# batch_status * pbs_statserver(int connect, struct attrl *attrib, char *extend)
|
115
|
+
# @see http://linux.die.net/man/3/pbs_statserver
|
116
|
+
# @param connect [Fixnum] connection identifier
|
117
|
+
# @param attrib [Attrl] the attribute c-linked list object
|
118
|
+
# @param extend [String] implementation defined extensions
|
119
|
+
# @return [BatchStatus] c-linked list of batch status objects
|
120
|
+
# @note It is up to the user to free the space of the batch status objects
|
49
121
|
|
50
|
-
|
51
|
-
|
122
|
+
# @!method self.pbs_submit(connect, attrib, script, destination, extend)
|
123
|
+
# Submit a PBS batch job
|
124
|
+
# char *pbs_submit(int connect, struct attropl *attrib, char *script, char *destination, char *extend)
|
125
|
+
# @see http://linux.die.net/man/3/pbs_submit
|
126
|
+
# @param connect [Fixnum] connection identifier
|
127
|
+
# @param attrib [Attropl] the attribute operation c-linked list object
|
128
|
+
# @param script [String] the path to the script
|
129
|
+
# @param destination [String] the queue to send job to
|
130
|
+
# @param extend [String] implementation defined extensions
|
131
|
+
# @return [String] the job id
|
52
132
|
|
53
|
-
|
54
|
-
|
133
|
+
# The path to the torque library file
|
134
|
+
# @return [String] path to torque library
|
135
|
+
def self.lib
|
136
|
+
@lib
|
137
|
+
end
|
138
|
+
|
139
|
+
# Define torque methods using a supplied library
|
140
|
+
# @param lib [#to_s, nil] path to library file
|
141
|
+
# @return [void]
|
142
|
+
def self.lib=(lib)
|
143
|
+
@lib = lib ? lib.to_s : 'torque'
|
55
144
|
|
56
|
-
#
|
57
|
-
|
145
|
+
# Set up FFI to use this library
|
146
|
+
ffi_lib @lib
|
147
|
+
|
148
|
+
attach_variable :pbs_errno, :int
|
149
|
+
attach_variable :pbs_server, :string
|
150
|
+
attach_function :pbs_strerror, [ :int ], :string
|
151
|
+
attach_function :pbs_default, [], :string
|
152
|
+
attach_function :pbs_connect, [ :string ], :int
|
153
|
+
attach_function :pbs_disconnect, [ :int ], :int
|
154
|
+
attach_function :pbs_deljob, [ :int, :string, :string ], :int
|
155
|
+
attach_function :pbs_holdjob, [ :int, :string, :string, :string ], :int
|
156
|
+
attach_function :pbs_rlsjob, [ :int, :string, :string, :string ], :int
|
157
|
+
attach_function :pbs_statfree, [ BatchStatus.ptr ], :void
|
158
|
+
attach_function :pbs_statjob, [ :int, :string, Attrl.ptr, :string ], BatchStatus.ptr
|
159
|
+
attach_function :pbs_statnode, [ :int, :string, Attrl.ptr, :string ], BatchStatus.ptr
|
160
|
+
attach_function :pbs_statque, [ :int, :string, Attrl.ptr, :string ], BatchStatus.ptr
|
161
|
+
attach_function :pbs_statserver, [ :int, Attrl.ptr, :string ], BatchStatus.ptr
|
162
|
+
|
163
|
+
# FIXME: The space for the job_identifier string is allocated by
|
164
|
+
# pbs_submit() and should be released via a call to free() when no longer
|
165
|
+
# needed
|
166
|
+
attach_function :pbs_submit, [ :int, Attropl.ptr, :string, :string, :string ], :string
|
58
167
|
end
|
59
168
|
|
169
|
+
# Check for any errors set in the errno
|
170
|
+
# @return [void]
|
60
171
|
def self.check_for_error
|
61
172
|
errno = pbs_errno
|
62
173
|
self.pbs_errno = 0 # reset error number
|
63
174
|
raise_error(errno) if errno > 0
|
64
175
|
end
|
65
176
|
|
177
|
+
# For a given errno, raise the corresponding error with error message
|
178
|
+
# @param errno [Fixnum] the error number
|
179
|
+
# @raise [Error] if errno is not 0
|
180
|
+
# @return [void]
|
66
181
|
def self.raise_error(errno)
|
67
182
|
raise (ERROR_CODES[errno] || PBS::Error), "#{pbs_strerror(errno)}"
|
68
183
|
end
|
69
184
|
|
185
|
+
#
|
70
186
|
# Data structures defined in pbs_ifl.h
|
187
|
+
#
|
71
188
|
|
72
189
|
# Enum for Batch Operation
|
73
190
|
BatchOp = enum(:set, :unset, :incr, :decr, :eq, :ne, :ge, :gt, :le, :lt, :dflt, :merge, :incr_old)
|
@@ -80,34 +197,31 @@ module PBS
|
|
80
197
|
:value, :pointer, # string for value of attribute
|
81
198
|
:op, BatchOp # not used in an Attrl object
|
82
199
|
|
200
|
+
# Given an array of attribute names convert it to {Attrl} C-linked list
|
201
|
+
# @param list [Array<Symbol>] list of attribute names
|
202
|
+
# @return [Attrl] generated attribute c-linked list object
|
83
203
|
def self.from_list(list)
|
84
204
|
attrl = nil
|
85
205
|
prev = Attrl.new(FFI::Pointer::NULL)
|
86
206
|
list.each do |key|
|
87
207
|
attrl = Attrl.new
|
88
208
|
attrl[:name] = FFI::MemoryPointer.from_string(key.to_s)
|
89
|
-
attrl[:resource] = FFI::Pointer::NULL
|
90
|
-
attrl[:value] = FFI::Pointer::NULL
|
91
|
-
attrl[:op] = 0
|
92
209
|
attrl[:next] = prev
|
93
210
|
prev = attrl
|
94
211
|
end
|
95
212
|
attrl
|
96
213
|
end
|
97
214
|
|
98
|
-
|
99
|
-
|
215
|
+
# Convert to hash describing this linked list
|
216
|
+
# @return [Hash] hash describing linked list
|
217
|
+
def to_h
|
100
218
|
attrl = self
|
219
|
+
hash = {}
|
101
220
|
until attrl.to_ptr.null?
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
if resource.nil?
|
107
|
-
hash[name] = value
|
108
|
-
else
|
109
|
-
hash[name][resource] = value
|
110
|
-
end
|
221
|
+
n = attrl[:name].read_string
|
222
|
+
v = attrl[:value].read_string
|
223
|
+
r = attrl[:resource].null? ? nil : attrl[:resource].read_string
|
224
|
+
r ? (hash[n.to_sym] ||= {} and hash[n.to_sym][r.to_sym] = v) : hash[n.to_sym] = v
|
111
225
|
attrl = attrl[:next]
|
112
226
|
end
|
113
227
|
hash
|
@@ -122,6 +236,9 @@ module PBS
|
|
122
236
|
:value, :pointer, # string for value of attribute
|
123
237
|
:op, BatchOp # operation to perform for this attribute
|
124
238
|
|
239
|
+
# Convert to C-linked list of structs from hash
|
240
|
+
# @param hash [Hash] hash representation of this c-linked list
|
241
|
+
# @return [Attropl] generated attribute operation c-linked list object
|
125
242
|
def self.from_hash(hash)
|
126
243
|
# Convert hash into array
|
127
244
|
# Format: {name: value, name: {resource: value, resource: value}}
|
@@ -131,41 +248,42 @@ module PBS
|
|
131
248
|
prev = Attropl.new(FFI::Pointer::NULL)
|
132
249
|
ary.each do |attrib|
|
133
250
|
attropl = Attropl.new
|
134
|
-
attropl[:name]
|
135
|
-
attropl[:value]
|
136
|
-
attropl[:resource] = FFI::MemoryPointer.from_string
|
137
|
-
attropl[:
|
138
|
-
attropl[:next] = prev
|
251
|
+
attropl[:name] = FFI::MemoryPointer.from_string attrib[0].to_s
|
252
|
+
attropl[:value] = FFI::MemoryPointer.from_string attrib[1].to_s
|
253
|
+
attropl[:resource] = FFI::MemoryPointer.from_string attrib[2].to_s if attrib[2]
|
254
|
+
attropl[:next] = prev
|
139
255
|
prev = attropl
|
140
256
|
end
|
141
257
|
attropl
|
142
258
|
end
|
143
259
|
end
|
144
260
|
|
145
|
-
# Struct for status
|
261
|
+
# Struct for PBS batch server status responses
|
146
262
|
class BatchStatus < FFI::ManagedStruct
|
147
263
|
layout :next, BatchStatus.ptr, # pointer to next BatchStatus object
|
148
264
|
:name, :string, # string for name of this status
|
149
265
|
:attribs, Attrl.ptr, # pointer to beginning of C-linked list of an Attrl object
|
150
266
|
:text, :string # string containing unknown text
|
151
267
|
|
268
|
+
# Free memory for allocated {BatchStatus} C-linked list
|
152
269
|
def self.release(ptr)
|
153
270
|
pbs_statfree(ptr)
|
154
271
|
end
|
155
272
|
|
156
|
-
|
157
|
-
|
273
|
+
# Convert to hash describing this linked list
|
274
|
+
# @return [Hash] hash describing linked list
|
275
|
+
def to_h
|
158
276
|
batch = self
|
277
|
+
hash = {}
|
159
278
|
until batch.to_ptr.null?
|
160
|
-
|
279
|
+
hash[batch[:name]] = batch[:attribs].to_h
|
161
280
|
batch = batch[:next]
|
162
281
|
end
|
163
|
-
|
282
|
+
hash
|
164
283
|
end
|
165
284
|
end
|
166
285
|
|
167
|
-
# Defined error codes
|
168
|
-
# valid as of Torque >=4.2.10
|
286
|
+
# Defined error codes, valid as of Torque >=4.2.10
|
169
287
|
ERROR_CODES = {
|
170
288
|
15001 => PBS::UnkjobidError,
|
171
289
|
15002 => PBS::NoattrError,
|
data/lib/pbs/version.rb
CHANGED
data/pbs.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.platform = Gem::Platform::RUBY
|
10
10
|
spec.authors = ["Jeremy Nicklas"]
|
11
11
|
spec.email = ["jnicklas@osc.edu"]
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{
|
12
|
+
spec.summary = %q{Ruby gem that uses FFI to interface with Adaptive Computing's resource manager Torque}
|
13
|
+
spec.description = %q{Ruby wrapper for the Torque C library utilizing Ruby-FFI. This has been successfully tested with Torque 4.2.10 and greater. Your mileage may vary.}
|
14
14
|
spec.homepage = "https://github.com/OSC/pbs-ruby"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
20
20
|
spec.require_paths = ["lib"]
|
21
|
+
spec.required_ruby_version = '~> 2.2'
|
21
22
|
|
22
23
|
spec.add_runtime_dependency "ffi", "~> 1.9", ">= 1.9.6"
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.7"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pbs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Nicklas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -58,8 +58,8 @@ dependencies:
|
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '10.0'
|
61
|
-
description:
|
62
|
-
|
61
|
+
description: Ruby wrapper for the Torque C library utilizing Ruby-FFI. This has been
|
62
|
+
successfully tested with Torque 4.2.10 and greater. Your mileage may vary.
|
63
63
|
email:
|
64
64
|
- jnicklas@osc.edu
|
65
65
|
executables: []
|
@@ -67,20 +67,15 @@ extensions: []
|
|
67
67
|
extra_rdoc_files: []
|
68
68
|
files:
|
69
69
|
- ".gitignore"
|
70
|
+
- CHANGELOG.md
|
70
71
|
- Gemfile
|
71
72
|
- LICENSE.txt
|
72
73
|
- README.md
|
73
74
|
- Rakefile
|
74
|
-
- config/batch.yml
|
75
|
-
- config/websvcs02.osc.edu.yml
|
76
|
-
- config/websvcs08.osc.edu.yml
|
77
|
-
- examples/simplejob.rb
|
78
75
|
- lib/pbs.rb
|
79
76
|
- lib/pbs/attributes.rb
|
80
|
-
- lib/pbs/
|
77
|
+
- lib/pbs/batch.rb
|
81
78
|
- lib/pbs/error.rb
|
82
|
-
- lib/pbs/job.rb
|
83
|
-
- lib/pbs/query.rb
|
84
79
|
- lib/pbs/torque.rb
|
85
80
|
- lib/pbs/version.rb
|
86
81
|
- pbs.gemspec
|
@@ -94,9 +89,9 @@ require_paths:
|
|
94
89
|
- lib
|
95
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
91
|
requirements:
|
97
|
-
- - "
|
92
|
+
- - "~>"
|
98
93
|
- !ruby/object:Gem::Version
|
99
|
-
version: '
|
94
|
+
version: '2.2'
|
100
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
96
|
requirements:
|
102
97
|
- - ">="
|
@@ -104,9 +99,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
99
|
version: '0'
|
105
100
|
requirements: []
|
106
101
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.4.
|
102
|
+
rubygems_version: 2.4.5
|
108
103
|
signing_key:
|
109
104
|
specification_version: 4
|
110
|
-
summary:
|
111
|
-
|
105
|
+
summary: Ruby gem that uses FFI to interface with Adaptive Computing's resource manager
|
106
|
+
Torque
|
112
107
|
test_files: []
|
108
|
+
has_rdoc:
|
data/config/batch.yml
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
oakley: &oakley
|
2
|
-
lib: '/usr/local/torque/default/lib/libtorque.so'
|
3
|
-
server: &oakley_server 'oak-batch.osc.edu'
|
4
|
-
qsub: 'LD_LIBRARY_PATH=/usr/local/torque/default/lib:$LD_LIBRARY_PATH /usr/local/torque/default/bin/qsub'
|
5
|
-
*oakley_server:
|
6
|
-
<<: *oakley
|
7
|
-
ruby: &ruby
|
8
|
-
lib: '/usr/local/torque/default/lib/libtorque.so'
|
9
|
-
server: &ruby_server 'ruby-batch.ten.osc.edu'
|
10
|
-
qsub: 'LD_LIBRARY_PATH=/usr/local/torque/default/lib:$LD_LIBRARY_PATH /usr/local/torque/default/bin/qsub'
|
11
|
-
*ruby_server:
|
12
|
-
<<: *ruby
|
13
|
-
oxymoron: &oxymoron
|
14
|
-
lib: '/usr/local/torque/default/lib/libtorque.so'
|
15
|
-
server: &oxymoron_server 'oak-batch.osc.edu:17001'
|
16
|
-
qsub: 'LD_LIBRARY_PATH=/usr/local/torque/default/lib:$LD_LIBRARY_PATH /usr/local/torque/default/bin/qsub'
|
17
|
-
*oxymoron_server:
|
18
|
-
<<: *oxymoron
|
19
|
-
quick: &quick
|
20
|
-
lib: '/usr/local/torque/default/lib/libtorque.so'
|
21
|
-
server: &quick_server 'quick-batch.osc.edu'
|
22
|
-
qsub: 'LD_LIBRARY_PATH=/usr/local/torque/default/lib:$LD_LIBRARY_PATH /usr/local/torque/default/bin/qsub'
|
23
|
-
*quick_server:
|
24
|
-
<<: *quick
|