| Class | Dsadmin::Admind::CronjobSpec |
| In: |
lib/dsadmin/admind/Cron.rb
|
| Parent: | Object |
| delay_policy | [R] | |
| failure_policy | [R] | |
| last_run_time | [R] | |
| max_executions | [R] | |
| request | [R] | |
| timespec | [R] |
# 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
# 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
Optional, defaults to regular, every 15 minutes
# 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
# File lib/dsadmin/admind/Cron.rb, line 142
142: def failure_policy=(aRetryPolicy)
143: requireKindOf(RetryPolicy, aRetryPolicy)
144: @failure_policy = aRetryPolicy
145: end
# 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"
# 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
# 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)
# 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
# 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
# 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