ood_core 0.2.1 → 0.3.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 +15 -1
 - data/lib/ood_core/batch_connect/template.rb +16 -2
 - data/lib/ood_core/job/adapters/lsf.rb +1 -0
 - data/lib/ood_core/job/adapters/lsf/batch.rb +12 -3
 - data/lib/ood_core/job/adapters/lsf/helper.rb +2 -1
 - data/lib/ood_core/job/adapters/pbspro.rb +1 -0
 - data/lib/ood_core/job/adapters/slurm.rb +8 -1
 - data/lib/ood_core/job/adapters/torque.rb +1 -0
 - data/lib/ood_core/job/info.rb +5 -5
 - data/lib/ood_core/job/node_info.rb +2 -2
 - data/lib/ood_core/job/script.rb +15 -7
 - data/lib/ood_core/job/status.rb +1 -1
 - data/lib/ood_core/version.rb +1 -1
 - metadata +3 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cc6dd320e10be434a6689cf286a0250e639ae82a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: cfaa8e4bad41f728f6bf08e6db0bea634dca9e4b
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 60f7e34ded14e2ed6aba02a850d2157c90b73347e1846c69e18a663dde3992e80a71d90be7a1c1dac4b895c007b1d5cf062f54a08913e18bd67de864088278db
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c2927b9f0342ec93462e74f04d806b9359780949bb99f6af8e304e3c1da5c72fe27d77ebfdb575686012f04067c8d927e6914bf452d3fc5c7fffb6736f774a19
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. 
     | 
|
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            ## [Unreleased]
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
      
 10 
     | 
    
         
            +
            ## [0.3.0] - 2018-04-05
         
     | 
| 
      
 11 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 12 
     | 
    
         
            +
            - Basic multi-cluster support for LSF by specifying name of cluster for -m
         
     | 
| 
      
 13 
     | 
    
         
            +
              argument. [#24](https://github.com/OSC/ood_core/issues/24)
         
     | 
| 
      
 14 
     | 
    
         
            +
            - Added `OodCore::Job::Script#shell_path` as an option to all adapters.
         
     | 
| 
      
 15 
     | 
    
         
            +
              [#82](https://github.com/OSC/ood_core/issues/82)
         
     | 
| 
      
 16 
     | 
    
         
            +
            - Added `header` and `footer` options to a Batch Connect template.
         
     | 
| 
      
 17 
     | 
    
         
            +
              [#64](https://github.com/OSC/ood_core/issues/64)
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            ### Fixed
         
     | 
| 
      
 20 
     | 
    
         
            +
            - Replaced `Fixnum` code comments with `Integer`.
         
     | 
| 
      
 21 
     | 
    
         
            +
              [#67](https://github.com/OSC/ood_core/issues/67)
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
       10 
23 
     | 
    
         
             
            ## [0.2.1] - 2018-01-26
         
     | 
| 
       11 
24 
     | 
    
         
             
            ### Changed
         
     | 
| 
       12 
25 
     | 
    
         
             
            - Updated the date in the `LICENSE.txt` file.
         
     | 
| 
         @@ -99,7 +112,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. 
     | 
|
| 
       99 
112 
     | 
    
         
             
            ### Added
         
     | 
| 
       100 
113 
     | 
    
         
             
            - Initial release!
         
     | 
| 
       101 
114 
     | 
    
         | 
| 
       102 
     | 
    
         
            -
            [Unreleased]: https://github.com/OSC/ood_core/compare/v0. 
     | 
| 
      
 115 
     | 
    
         
            +
            [Unreleased]: https://github.com/OSC/ood_core/compare/v0.3.0...HEAD
         
     | 
| 
      
 116 
     | 
    
         
            +
            [0.3.0]: https://github.com/OSC/ood_core/compare/v0.2.1...v0.3.0
         
     | 
| 
       103 
117 
     | 
    
         
             
            [0.2.1]: https://github.com/OSC/ood_core/compare/v0.2.0...v0.2.1
         
     | 
| 
       104 
118 
     | 
    
         
             
            [0.2.0]: https://github.com/OSC/ood_core/compare/v0.1.1...v0.2.0
         
     | 
| 
       105 
119 
     | 
    
         
             
            [0.1.1]: https://github.com/OSC/ood_core/compare/v0.1.0...v0.1.1
         
     | 
| 
         @@ -26,6 +26,10 @@ module OodCore 
     | 
|
| 
       26 
26 
     | 
    
         
             
                  #   looking for available port
         
     | 
| 
       27 
27 
     | 
    
         
             
                  # @option context [#to_i] :passwd_size (32) Length of randomly generated
         
     | 
| 
       28 
28 
     | 
    
         
             
                  #   password
         
     | 
| 
      
 29 
     | 
    
         
            +
                  # @option context [#to_s] :header ("") Shell code prepended at the top of
         
     | 
| 
      
 30 
     | 
    
         
            +
                  #   the script body
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # @option context [#to_s] :footer ("") Shell code appended at the bottom
         
     | 
| 
      
 32 
     | 
    
         
            +
                  #   of the script body
         
     | 
| 
       29 
33 
     | 
    
         
             
                  # @option context [#to_s] :script_wrapper ("%s") Bash code that wraps
         
     | 
| 
       30 
34 
     | 
    
         
             
                  #   around the body of the template script (use `%s` to interpolate the
         
     | 
| 
       31 
35 
     | 
    
         
             
                  #   body)
         
     | 
| 
         @@ -58,9 +62,9 @@ module OodCore 
     | 
|
| 
       58 
62 
     | 
    
         
             
                  # @return [String] rendered template
         
     | 
| 
       59 
63 
     | 
    
         
             
                  def to_s
         
     | 
| 
       60 
64 
     | 
    
         
             
                    <<-EOT.gsub(/^ {10}/, '')
         
     | 
| 
       61 
     | 
    
         
            -
                       
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 65 
     | 
    
         
            +
                      #{header}
         
     | 
| 
       63 
66 
     | 
    
         
             
                      #{script_wrapper}
         
     | 
| 
      
 67 
     | 
    
         
            +
                      #{footer}
         
     | 
| 
       64 
68 
     | 
    
         
             
                    EOT
         
     | 
| 
       65 
69 
     | 
    
         
             
                  end
         
     | 
| 
       66 
70 
     | 
    
         | 
| 
         @@ -148,6 +152,16 @@ module OodCore 
     | 
|
| 
       148 
152 
     | 
    
         
             
                      end.to_s
         
     | 
| 
       149 
153 
     | 
    
         
             
                    end
         
     | 
| 
       150 
154 
     | 
    
         | 
| 
      
 155 
     | 
    
         
            +
                    # Shell code that is prepended at the top of the script body
         
     | 
| 
      
 156 
     | 
    
         
            +
                    def header
         
     | 
| 
      
 157 
     | 
    
         
            +
                      context.fetch(:header, "").to_s
         
     | 
| 
      
 158 
     | 
    
         
            +
                    end
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                    # Shell code that is appended at the bottom of the script body
         
     | 
| 
      
 161 
     | 
    
         
            +
                    def footer
         
     | 
| 
      
 162 
     | 
    
         
            +
                      context.fetch(:footer, "").to_s
         
     | 
| 
      
 163 
     | 
    
         
            +
                    end
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
       151 
165 
     | 
    
         
             
                    # Bash code that wraps around the body of the template script (use `%s`
         
     | 
| 
       152 
166 
     | 
    
         
             
                    # to interpolate the body)
         
     | 
| 
       153 
167 
     | 
    
         
             
                    def script_wrapper
         
     | 
| 
         @@ -11,6 +11,7 @@ module OodCore 
     | 
|
| 
       11 
11 
     | 
    
         
             
                  # @option config [#to_s] :libdir ('') Path to lsf client lib dir
         
     | 
| 
       12 
12 
     | 
    
         
             
                  # @option config [#to_s] :envdir ('') Path to lsf client conf dir
         
     | 
| 
       13 
13 
     | 
    
         
             
                  # @option config [#to_s] :serverdir ('') Path to lsf client etc dir
         
     | 
| 
      
 14 
     | 
    
         
            +
                  # @option config [#to_s] :cluster ('') name of cluster, if in multi-cluster mode
         
     | 
| 
       14 
15 
     | 
    
         
             
                  def self.build_lsf(config)
         
     | 
| 
       15 
16 
     | 
    
         
             
                    batch = Adapters::Lsf::Batch.new(config.to_h.symbolize_keys)
         
     | 
| 
       16 
17 
     | 
    
         
             
                    Adapters::Lsf.new(batch: batch)
         
     | 
| 
         @@ -2,19 +2,20 @@ 
     | 
|
| 
       2 
2 
     | 
    
         
             
            #
         
     | 
| 
       3 
3 
     | 
    
         
             
            # @api private
         
     | 
| 
       4 
4 
     | 
    
         
             
            class OodCore::Job::Adapters::Lsf::Batch
         
     | 
| 
       5 
     | 
    
         
            -
              attr_reader :bindir, :libdir, :envdir, :serverdir
         
     | 
| 
      
 5 
     | 
    
         
            +
              attr_reader :bindir, :libdir, :envdir, :serverdir, :cluster
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
              # The root exception class that all LSF-specific exceptions inherit
         
     | 
| 
       8 
8 
     | 
    
         
             
              # from
         
     | 
| 
       9 
9 
     | 
    
         
             
              class Error < StandardError; end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
              # @param bin [#to_s] path to LSF installation binaries
         
     | 
| 
       12 
     | 
    
         
            -
              def initialize(bindir: "", envdir: "", libdir: "", serverdir: "", **_)
         
     | 
| 
      
 12 
     | 
    
         
            +
              def initialize(bindir: "", envdir: "", libdir: "", serverdir: "", cluster: "", **_)
         
     | 
| 
       13 
13 
     | 
    
         
             
                @bindir = Pathname.new(bindir.to_s)
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
                @envdir = Pathname.new(envdir.to_s)
         
     | 
| 
       16 
16 
     | 
    
         
             
                @libdir = Pathname.new(libdir.to_s)
         
     | 
| 
       17 
17 
     | 
    
         
             
                @serverdir = Pathname.new(serverdir.to_s)
         
     | 
| 
      
 18 
     | 
    
         
            +
                @cluster = cluster.to_s
         
     | 
| 
       18 
19 
     | 
    
         
             
              end
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
              def default_env
         
     | 
| 
         @@ -127,11 +128,19 @@ class OodCore::Job::Adapters::Lsf::Batch 
     | 
|
| 
       127 
128 
     | 
    
         
             
                end
         
     | 
| 
       128 
129 
     | 
    
         
             
              end
         
     | 
| 
       129 
130 
     | 
    
         | 
| 
      
 131 
     | 
    
         
            +
              def cluster_args
         
     | 
| 
      
 132 
     | 
    
         
            +
                if cluster.nil? || cluster.strip.empty?
         
     | 
| 
      
 133 
     | 
    
         
            +
                  []
         
     | 
| 
      
 134 
     | 
    
         
            +
                else
         
     | 
| 
      
 135 
     | 
    
         
            +
                  ["-m", cluster]
         
     | 
| 
      
 136 
     | 
    
         
            +
                end
         
     | 
| 
      
 137 
     | 
    
         
            +
              end
         
     | 
| 
      
 138 
     | 
    
         
            +
             
     | 
| 
       130 
139 
     | 
    
         
             
              private
         
     | 
| 
       131 
140 
     | 
    
         
             
                # Call a forked Lsf command for a given cluster
         
     | 
| 
       132 
141 
     | 
    
         
             
                def call(cmd, *args, env: {}, stdin: "")
         
     | 
| 
       133 
142 
     | 
    
         
             
                  cmd = bindir.join(cmd.to_s).to_s
         
     | 
| 
       134 
     | 
    
         
            -
                   
     | 
| 
      
 143 
     | 
    
         
            +
                  args = cluster_args + args
         
     | 
| 
       135 
144 
     | 
    
         
             
                  env = default_env.merge(env.to_h)
         
     | 
| 
       136 
145 
     | 
    
         
             
                  o, e, s = Open3.capture3(env, cmd, *(args.map(&:to_s)), stdin_data: stdin.to_s)
         
     | 
| 
       137 
146 
     | 
    
         
             
                  s.success? ? o : raise(Error, e)
         
     | 
| 
         @@ -68,7 +68,7 @@ class OodCore::Job::Adapters::Lsf::Helper 
     | 
|
| 
       68 
68 
     | 
    
         
             
              #
         
     | 
| 
       69 
69 
     | 
    
         
             
              # my guess is: hours:minutes:seconds.????
         
     | 
| 
       70 
70 
     | 
    
         
             
              #
         
     | 
| 
       71 
     | 
    
         
            -
              # @return [ 
     | 
| 
      
 71 
     | 
    
         
            +
              # @return [Integer, nil] cpu used as seconds
         
     | 
| 
       72 
72 
     | 
    
         
             
              def parse_cpu_used(cpu_used)
         
     | 
| 
       73 
73 
     | 
    
         
             
                if cpu_used =~ /^(\d+):(\d+):(\d+)\..*$/
         
     | 
| 
       74 
74 
     | 
    
         
             
                  $1.to_i*3600 + $2.to_i*60 + $3.to_i
         
     | 
| 
         @@ -88,6 +88,7 @@ class OodCore::Job::Adapters::Lsf::Helper 
     | 
|
| 
       88 
88 
     | 
    
         
             
                args += (script.rerunnable ? ["-r"] : ["-rn"]) unless script.rerunnable.nil?
         
     | 
| 
       89 
89 
     | 
    
         
             
                args += ["-b", script.start_time.localtime.strftime("%Y:%m:%d:%H:%M")] unless script.start_time.nil?
         
     | 
| 
       90 
90 
     | 
    
         
             
                args += ["-W", (script.wall_time / 60).to_i] unless script.wall_time.nil?
         
     | 
| 
      
 91 
     | 
    
         
            +
                args += ["-L", script.shell_path.to_s] unless script.shell_path.nil?
         
     | 
| 
       91 
92 
     | 
    
         | 
| 
       92 
93 
     | 
    
         
             
                # input and output files
         
     | 
| 
       93 
94 
     | 
    
         
             
                args += ["-i", script.input_path] unless script.input_path.nil?
         
     | 
| 
         @@ -227,6 +227,7 @@ module OodCore 
     | 
|
| 
       227 
227 
     | 
    
         
             
                        args += ["-m", "e"]
         
     | 
| 
       228 
228 
     | 
    
         
             
                      end
         
     | 
| 
       229 
229 
     | 
    
         
             
                      args += ["-N", script.job_name] unless script.job_name.nil?
         
     | 
| 
      
 230 
     | 
    
         
            +
                      args += ["-S", script.shell_path] unless script.shell_path.nil?
         
     | 
| 
       230 
231 
     | 
    
         
             
                      # ignore input_path (not defined in PBS Pro)
         
     | 
| 
       231 
232 
     | 
    
         
             
                      args += ["-o", script.output_path] unless script.output_path.nil?
         
     | 
| 
       232 
233 
     | 
    
         
             
                      args += ["-e", script.error_path] unless script.error_path.nil?
         
     | 
| 
         @@ -298,8 +298,15 @@ module OodCore 
     | 
|
| 
       298 
298 
     | 
    
         
             
                      # Set native options
         
     | 
| 
       299 
299 
     | 
    
         
             
                      args += script.native if script.native
         
     | 
| 
       300 
300 
     | 
    
         | 
| 
      
 301 
     | 
    
         
            +
                      # Set content
         
     | 
| 
      
 302 
     | 
    
         
            +
                      content = if script.shell_path.nil?
         
     | 
| 
      
 303 
     | 
    
         
            +
                                  script.content
         
     | 
| 
      
 304 
     | 
    
         
            +
                                else
         
     | 
| 
      
 305 
     | 
    
         
            +
                                  "#!#{script.shell_path}\n#{script.content}"
         
     | 
| 
      
 306 
     | 
    
         
            +
                                end
         
     | 
| 
      
 307 
     | 
    
         
            +
             
     | 
| 
       301 
308 
     | 
    
         
             
                      # Submit job
         
     | 
| 
       302 
     | 
    
         
            -
                      @slurm.submit_string( 
     | 
| 
      
 309 
     | 
    
         
            +
                      @slurm.submit_string(content, args: args, env: env)
         
     | 
| 
       303 
310 
     | 
    
         
             
                    rescue Batch::Error => e
         
     | 
| 
       304 
311 
     | 
    
         
             
                      raise JobAdapterError, e.message
         
     | 
| 
       305 
312 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -83,6 +83,7 @@ module OodCore 
     | 
|
| 
       83 
83 
     | 
    
         
             
                      mail_points += 'e' if script.email_on_terminated
         
     | 
| 
       84 
84 
     | 
    
         
             
                      headers.merge!(Mail_Points: mail_points) unless mail_points.empty?
         
     | 
| 
       85 
85 
     | 
    
         
             
                      headers.merge!(Job_Name: script.job_name) unless script.job_name.nil?
         
     | 
| 
      
 86 
     | 
    
         
            +
                      headers.merge!(Shell_Path_List: script.shell_path) unless script.shell_path.nil?
         
     | 
| 
       86 
87 
     | 
    
         
             
                      # ignore input_path (not defined in Torque)
         
     | 
| 
       87 
88 
     | 
    
         
             
                      headers.merge!(Output_Path: script.output_path) unless script.output_path.nil?
         
     | 
| 
       88 
89 
     | 
    
         
             
                      headers.merge!(Error_Path: script.error_path) unless script.error_path.nil?
         
     | 
    
        data/lib/ood_core/job/info.rb
    CHANGED
    
    | 
         @@ -33,7 +33,7 @@ module OodCore 
     | 
|
| 
       33 
33 
     | 
    
         
             
                  attr_reader :accounting_id
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
35 
     | 
    
         
             
                  # Number of procs allocated for job
         
     | 
| 
       36 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 36 
     | 
    
         
            +
                  # @return [Integer, nil] allocated total number of procs
         
     | 
| 
       37 
37 
     | 
    
         
             
                  attr_reader :procs
         
     | 
| 
       38 
38 
     | 
    
         | 
| 
       39 
39 
     | 
    
         
             
                  # Name of the queue in which the job was queued or started
         
     | 
| 
         @@ -41,15 +41,15 @@ module OodCore 
     | 
|
| 
       41 
41 
     | 
    
         
             
                  attr_reader :queue_name
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
43 
     | 
    
         
             
                  # The accumulated wall clock time in seconds
         
     | 
| 
       44 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 44 
     | 
    
         
            +
                  # @return [Integer, nil] wallclock time
         
     | 
| 
       45 
45 
     | 
    
         
             
                  attr_reader :wallclock_time
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
                  # The total wall clock time limit in seconds
         
     | 
| 
       48 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 48 
     | 
    
         
            +
                  # @return [Integer, nil] wallclock time limit
         
     | 
| 
       49 
49 
     | 
    
         
             
                  attr_reader :wallclock_limit
         
     | 
| 
       50 
50 
     | 
    
         | 
| 
       51 
51 
     | 
    
         
             
                  # The accumulated CPU time in seconds
         
     | 
| 
       52 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 52 
     | 
    
         
            +
                  # @return [Integer, nil] cpu time
         
     | 
| 
       53 
53 
     | 
    
         
             
                  attr_reader :cpu_time
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
55 
     | 
    
         
             
                  # The time at which the job was submitted
         
     | 
| 
         @@ -139,7 +139,7 @@ module OodCore 
     | 
|
| 
       139 
139 
     | 
    
         
             
                  end
         
     | 
| 
       140 
140 
     | 
    
         | 
| 
       141 
141 
     | 
    
         
             
                  # Generate a hash value for this object
         
     | 
| 
       142 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 142 
     | 
    
         
            +
                  # @return [Integer] hash value of object
         
     | 
| 
       143 
143 
     | 
    
         
             
                  def hash
         
     | 
| 
       144 
144 
     | 
    
         
             
                    [self.class, to_h].hash
         
     | 
| 
       145 
145 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -7,7 +7,7 @@ module OodCore 
     | 
|
| 
       7 
7 
     | 
    
         
             
                  attr_reader :name
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                  # The number of procs reserved on the given machine
         
     | 
| 
       10 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 10 
     | 
    
         
            +
                  # @return [Integer, nil] number of procs
         
     | 
| 
       11 
11 
     | 
    
         
             
                  attr_reader :procs
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                  # @param name [#to_s] node name
         
     | 
| 
         @@ -38,7 +38,7 @@ module OodCore 
     | 
|
| 
       38 
38 
     | 
    
         
             
                  end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                  # Generate a hash value for this object
         
     | 
| 
       41 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 41 
     | 
    
         
            +
                  # @return [Integer] hash value of object
         
     | 
| 
       42 
42 
     | 
    
         
             
                  def hash
         
     | 
| 
       43 
43 
     | 
    
         
             
                    [self.class, to_h].hash
         
     | 
| 
       44 
44 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/ood_core/job/script.rb
    CHANGED
    
    | 
         @@ -54,6 +54,10 @@ module OodCore 
     | 
|
| 
       54 
54 
     | 
    
         
             
                  # @return [String, nil] name of job
         
     | 
| 
       55 
55 
     | 
    
         
             
                  attr_reader :job_name
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
      
 57 
     | 
    
         
            +
                  # Path to file specifying the login shell of the job
         
     | 
| 
      
 58 
     | 
    
         
            +
                  # @return [Pathname, nil] file path specifying login shell
         
     | 
| 
      
 59 
     | 
    
         
            +
                  attr_reader :shell_path
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
       57 
61 
     | 
    
         
             
                  # Path to file specifying the input stream of the job
         
     | 
| 
       58 
62 
     | 
    
         
             
                  # @return [Pathname, nil] file path specifying input stream
         
     | 
| 
       59 
63 
     | 
    
         
             
                  attr_reader :input_path
         
     | 
| 
         @@ -75,7 +79,7 @@ module OodCore 
     | 
|
| 
       75 
79 
     | 
    
         
             
                  attr_reader :queue_name
         
     | 
| 
       76 
80 
     | 
    
         | 
| 
       77 
81 
     | 
    
         
             
                  # The scheduling priority for the job
         
     | 
| 
       78 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 82 
     | 
    
         
            +
                  # @return [Integer, nil] scheduling priority
         
     | 
| 
       79 
83 
     | 
    
         
             
                  attr_reader :priority
         
     | 
| 
       80 
84 
     | 
    
         | 
| 
       81 
85 
     | 
    
         
             
                  # The earliest time when the job may be eligible to run
         
     | 
| 
         @@ -84,7 +88,7 @@ module OodCore 
     | 
|
| 
       84 
88 
     | 
    
         | 
| 
       85 
89 
     | 
    
         
             
                  # The maximum amount of real time during which the job can be running in
         
     | 
| 
       86 
90 
     | 
    
         
             
                  # seconds
         
     | 
| 
       87 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 91 
     | 
    
         
            +
                  # @return [Integer, nil] max real time
         
     | 
| 
       88 
92 
     | 
    
         
             
                  attr_reader :wall_time
         
     | 
| 
       89 
93 
     | 
    
         | 
| 
       90 
94 
     | 
    
         
             
                  # The attribute used for job accounting purposes
         
     | 
| 
         @@ -106,6 +110,8 @@ module OodCore 
     | 
|
| 
       106 
110 
     | 
    
         
             
                  # @param email_on_started [Boolean, nil] whether email when job starts
         
     | 
| 
       107 
111 
     | 
    
         
             
                  # @param email_on_terminated [Boolean, nil] whether email when job ends
         
     | 
| 
       108 
112 
     | 
    
         
             
                  # @param job_name [#to_s, nil] name of job
         
     | 
| 
      
 113 
     | 
    
         
            +
                  # @param shell_path [#to_s, nil] file path specifying login shell
         
     | 
| 
      
 114 
     | 
    
         
            +
                  # @param error_path [#to_s, nil] file path specifying error stream
         
     | 
| 
       109 
115 
     | 
    
         
             
                  # @param input_path [#to_s, nil] file path specifying input stream
         
     | 
| 
       110 
116 
     | 
    
         
             
                  # @param output_path [#to_s, nil] file path specifying output stream
         
     | 
| 
       111 
117 
     | 
    
         
             
                  # @param error_path [#to_s, nil] file path specifying error stream
         
     | 
| 
         @@ -119,10 +125,10 @@ module OodCore 
     | 
|
| 
       119 
125 
     | 
    
         
             
                  def initialize(content:, args: nil, submit_as_hold: nil, rerunnable: nil,
         
     | 
| 
       120 
126 
     | 
    
         
             
                                 job_environment: nil, workdir: nil, email: nil,
         
     | 
| 
       121 
127 
     | 
    
         
             
                                 email_on_started: nil, email_on_terminated: nil,
         
     | 
| 
       122 
     | 
    
         
            -
                                 job_name: nil,  
     | 
| 
       123 
     | 
    
         
            -
                                  
     | 
| 
       124 
     | 
    
         
            -
                                  
     | 
| 
       125 
     | 
    
         
            -
                                 accounting_id: nil, native: nil, **_)
         
     | 
| 
      
 128 
     | 
    
         
            +
                                 job_name: nil, shell_path: nil, input_path: nil,
         
     | 
| 
      
 129 
     | 
    
         
            +
                                 output_path: nil, error_path: nil, reservation_id: nil,
         
     | 
| 
      
 130 
     | 
    
         
            +
                                 queue_name: nil, priority: nil, start_time: nil,
         
     | 
| 
      
 131 
     | 
    
         
            +
                                 wall_time: nil, accounting_id: nil, native: nil, **_)
         
     | 
| 
       126 
132 
     | 
    
         
             
                    @content = content.to_s
         
     | 
| 
       127 
133 
     | 
    
         | 
| 
       128 
134 
     | 
    
         
             
                    @submit_as_hold      = submit_as_hold
         
     | 
| 
         @@ -135,6 +141,7 @@ module OodCore 
     | 
|
| 
       135 
141 
     | 
    
         
             
                    @workdir          = workdir         && Pathname.new(workdir.to_s)
         
     | 
| 
       136 
142 
     | 
    
         
             
                    @email            = email           && Array.wrap(email).map(&:to_s)
         
     | 
| 
       137 
143 
     | 
    
         
             
                    @job_name         = job_name        && job_name.to_s
         
     | 
| 
      
 144 
     | 
    
         
            +
                    @shell_path       = shell_path      && Pathname.new(shell_path.to_s)
         
     | 
| 
       138 
145 
     | 
    
         
             
                    @input_path       = input_path      && Pathname.new(input_path.to_s)
         
     | 
| 
       139 
146 
     | 
    
         
             
                    @output_path      = output_path     && Pathname.new(output_path.to_s)
         
     | 
| 
       140 
147 
     | 
    
         
             
                    @error_path       = error_path      && Pathname.new(error_path.to_s)
         
     | 
| 
         @@ -161,6 +168,7 @@ module OodCore 
     | 
|
| 
       161 
168 
     | 
    
         
             
                      email_on_started:    email_on_started,
         
     | 
| 
       162 
169 
     | 
    
         
             
                      email_on_terminated: email_on_terminated,
         
     | 
| 
       163 
170 
     | 
    
         
             
                      job_name:            job_name,
         
     | 
| 
      
 171 
     | 
    
         
            +
                      shell_path:          shell_path,
         
     | 
| 
       164 
172 
     | 
    
         
             
                      input_path:          input_path,
         
     | 
| 
       165 
173 
     | 
    
         
             
                      output_path:         output_path,
         
     | 
| 
       166 
174 
     | 
    
         
             
                      error_path:          error_path,
         
     | 
| 
         @@ -189,7 +197,7 @@ module OodCore 
     | 
|
| 
       189 
197 
     | 
    
         
             
                  end
         
     | 
| 
       190 
198 
     | 
    
         | 
| 
       191 
199 
     | 
    
         
             
                  # Generate a hash value for this object
         
     | 
| 
       192 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 200 
     | 
    
         
            +
                  # @return [Integer] hash value of object
         
     | 
| 
       193 
201 
     | 
    
         
             
                  def hash
         
     | 
| 
       194 
202 
     | 
    
         
             
                    [self.class, to_h].hash
         
     | 
| 
       195 
203 
     | 
    
         
             
                  end
         
     | 
    
        data/lib/ood_core/job/status.rb
    CHANGED
    
    
    
        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. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.3.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Jeremy Nicklas
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2018- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2018-04-05 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: ood_support
         
     | 
| 
         @@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       179 
179 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       180 
180 
     | 
    
         
             
            requirements: []
         
     | 
| 
       181 
181 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       182 
     | 
    
         
            -
            rubygems_version: 2.4.5
         
     | 
| 
      
 182 
     | 
    
         
            +
            rubygems_version: 2.4.5.4
         
     | 
| 
       183 
183 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       184 
184 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       185 
185 
     | 
    
         
             
            summary: Open OnDemand core library
         
     |