Class Dsadmin::Admind::CronjobSpec
In: lib/dsadmin/admind/Cron.rb
Parent: Object

Specification of a Cronjob.

Cron creates the actual Cronjobs from this.

Methods

Included Modules

Dsadmin::Contractor

Attributes

delay_policy  [R] 
failure_policy  [R] 
last_run_time  [R] 
max_executions  [R] 
request  [R] 
timespec  [R] 

Public Class methods

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 195
195:       def self.from_hash(hash)
196:         res = CronjobSpec.new
197:         res.from_hash(hash)
198:       end

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 205
205:       def initialize
206:         @last_run_time  = Time.at(0)
207:         @failure_policy = Cron::RETRY_EXP15
208:         @delay_policy   = Cron::RETRY_REG15
209:         @max_executions = nil
210:       end

Public Instance methods

Optional, defaults to regular, every 15 minutes

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 148
148:       def delay_policy=(aRetryPolicy)
149:         requireKindOf(RetryPolicy, aRetryPolicy)
150:         @delay_policy = aRetryPolicy
151:       end

Optional, defaults to exponential, starting with 15 minutes

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 142
142:       def failure_policy=(aRetryPolicy)
143:         requireKindOf(RetryPolicy, aRetryPolicy)
144:         @failure_policy = aRetryPolicy
145:       end

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 172
172:       def from_hash(hash)
173:         requireKindOf(Hash, hash)
174:         
175:         initialize
176:         
177:         self.request = Dsadmin::Request.from_hash(hash[:request] || hash['request'])
178:         self.timespec = hash[:timespec] || hash['timespec']
179:         
180:         fp = hash[:failure_policy] || hash['failure_policy']
181:         self.failure_policy = RetryPolicy.from_hash(fp) if fp
182:         
183:         dp = hash[:delay_policy] || hash['delay_policy']
184:         self.delay_policy = RetryPolicy.from_hash(dp) if dp
185:         
186:         self.max_executions = hash[:max_executions] || hash['max_executions']
187:         
188:         lrt = hash[:last_run_time] || hash['last_run_time']
189:         self.last_run_time = Time.at(lrt) if lrt
190:         
191:         self
192:       end

Optional, defaults to "long, long ago"

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 129
129:       def last_run_time=(aTime)
130:         requireKindOf(Time, aTime)
131:         @last_run_time = aTime
132:       end

nil means unlimited

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 154
154:       def max_executions=(anInt)
155:         requireKindOf(Integer, anInt) unless(anInt.nil?)
156:         @max_executions = anInt
157:       end

Set the request to process. Has to be an "internal" request (i.e. no username)

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 122
122:       def request=(aRequest)
123:         requireKindOf(Dsadmin::Request, aRequest)
124:         requireNil(aRequest.username)
125:         @request = aRequest
126:       end

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 134
134:       def timespec=(aTimeSpec)
135:         aTimeSpec = Dsadmin::TimeSpec.create(aTimeSpec) if(aTimeSpec.kind_of?(String))
136:         requireKindOf(Dsadmin::TimeSpec, aTimeSpec)
137:         
138:         @timespec = aTimeSpec
139:       end

[Source]

     # File lib/dsadmin/admind/Cron.rb, line 160
160:       def to_hash
161:         {
162:           :last_run_time  => last_run_time.to_i,
163:           :timespec       => timespec.to_s,
164:           :max_executions => max_executions,
165:           :failure_policy => failure_policy.to_hash,
166:           :delay_policy   => delay_policy.to_hash,
167:           :request        => request.to_hash
168:         }
169:       end

[Validate]