Class: Aws::Glacier::Job
- Inherits:
-
Object
- Object
- Aws::Glacier::Job
- Defined in:
- gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#account_id ⇒ String
-
#action ⇒ String
The job type.
-
#archive_id ⇒ String
The archive ID requested for a select job or archive retrieval.
-
#archive_sha256_tree_hash ⇒ String
The SHA256 tree hash of the entire archive for an archive retrieval.
-
#archive_size_in_bytes ⇒ Integer
For an archive retrieval job, this value is the size in bytes of the archive being requested for download.
-
#completed ⇒ Boolean
The job status.
-
#completion_date ⇒ Time
The UTC time that the job request completed.
-
#creation_date ⇒ Time
The UTC date when the job was created.
-
#id ⇒ String
(also: #job_id)
-
#inventory_retrieval_parameters ⇒ Types::InventoryRetrievalJobDescription
Parameters used for range inventory retrieval.
-
#inventory_size_in_bytes ⇒ Integer
For an inventory retrieval job, this value is the size in bytes of the inventory requested for download.
-
#job_description ⇒ String
The job description provided when initiating the job.
-
#job_output_path ⇒ String
Contains the job output location.
-
#output_location ⇒ Types::OutputLocation
Contains the location where the data from the select job is stored.
-
#retrieval_byte_range ⇒ String
The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue.
-
#select_parameters ⇒ Types::SelectParameters
Contains the parameters used for a select.
-
#sha256_tree_hash ⇒ String
For an archive retrieval job, this value is the checksum of the archive.
-
#sns_topic ⇒ String
An Amazon SNS topic that receives notification.
-
#status_code ⇒ String
The status code can be
InProgress
,Succeeded
, orFailed
, and indicates the status of the job. -
#status_message ⇒ String
A friendly message that describes the job status.
-
#tier ⇒ String
The tier to use for a select or an archive retrieval.
-
#vault_arn ⇒ String
The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested.
-
#vault_name ⇒ String
Actions collapse
Associations collapse
Instance Method Summary collapse
-
#client ⇒ Client
-
#data ⇒ Types::GlacierJobDescription
Returns the data for this Job.
-
#data_loaded? ⇒ Boolean
Returns
true
if this resource is loaded. -
#initialize(*args) ⇒ Job
constructor
A new instance of Job.
- #load ⇒ self (also: #reload)
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::Glacier::Client] #wait_until instead
Constructor Details
#initialize(account_id, vault_name, id, options = {}) ⇒ Job #initialize(options = {}) ⇒ Job
Returns a new instance of Job.
26 27 28 29 30 31 32 33 34 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 26 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @account_id = extract_account_id(args, ) @vault_name = extract_vault_name(args, ) @id = extract_id(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end |
Instance Method Details
#account_id ⇒ String
39 40 41 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 39 def account_id @account_id end |
#action ⇒ String
The job type. This value is either ArchiveRetrieval
,
InventoryRetrieval
, or Select
.
63 64 65 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 63 def action data[:action] end |
#archive_id ⇒ String
The archive ID requested for a select job or archive retrieval. Otherwise, this field is null.
70 71 72 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 70 def archive_id data[:archive_id] end |
#archive_sha256_tree_hash ⇒ String
The SHA256 tree hash of the entire archive for an archive retrieval. For inventory retrieval or select jobs, this field is null.
173 174 175 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 173 def archive_sha256_tree_hash data[:archive_sha256_tree_hash] end |
#archive_size_in_bytes ⇒ Integer
For an archive retrieval job, this value is the size in bytes of the archive being requested for download. For an inventory retrieval or select job, this value is null.
113 114 115 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 113 def archive_size_in_bytes data[:archive_size_in_bytes] end |
#client ⇒ Client
222 223 224 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 222 def client @client end |
#completed ⇒ Boolean
The job status. When a job is completed, you get the job's output using Get Job Output (GET output).
92 93 94 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 92 def completed data[:completed] end |
#completion_date ⇒ Time
The UTC time that the job request completed. While the job is in progress, the value is null.
134 135 136 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 134 def completion_date data[:completion_date] end |
#creation_date ⇒ Time
The UTC date when the job was created. This value is a string
representation of ISO 8601 date format, for example
"2012-03-20T17:03:43.221Z"
.
85 86 87 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 85 def creation_date data[:creation_date] end |
#data ⇒ Types::GlacierJobDescription
Returns the data for this Aws::Glacier::Job. Calls
Client#describe_job if #data_loaded? is false
.
248 249 250 251 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 248 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
256 257 258 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 256 def data_loaded? !!@data end |
#get_output(options = {}, &block) ⇒ Types::GetJobOutputOutput
400 401 402 403 404 405 406 407 408 409 410 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 400 def get_output( = {}, &block) = .merge( account_id: @account_id, vault_name: @vault_name, job_id: @id ) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.get_job_output(, &block) end resp.data end |
#id ⇒ String Also known as: job_id
49 50 51 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 49 def id @id end |
#inventory_retrieval_parameters ⇒ Types::InventoryRetrievalJobDescription
Parameters used for range inventory retrieval.
197 198 199 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 197 def inventory_retrieval_parameters data[:inventory_retrieval_parameters] end |
#inventory_size_in_bytes ⇒ Integer
For an inventory retrieval job, this value is the size in bytes of the inventory requested for download. For an archive retrieval or select job, this value is null.
121 122 123 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 121 def inventory_size_in_bytes data[:inventory_size_in_bytes] end |
#job_description ⇒ String
The job description provided when initiating the job.
56 57 58 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 56 def job_description data[:job_description] end |
#job_output_path ⇒ String
Contains the job output location.
203 204 205 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 203 def job_output_path data[:job_output_path] end |
#load ⇒ self Also known as: reload
Loads, or reloads #data for the current Aws::Glacier::Job.
Returns self
making it possible to chain methods.
job.reload.data
232 233 234 235 236 237 238 239 240 241 242 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 232 def load resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.describe_job( account_id: @account_id, vault_name: @vault_name, job_id: @id ) end @data = resp.data self end |
#output_location ⇒ Types::OutputLocation
Contains the location where the data from the select job is stored.
215 216 217 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 215 def output_location data[:output_location] end |
#retrieval_byte_range ⇒ String
The retrieved byte range for archive retrieval jobs in the form StartByteValue-EndByteValue. If no range was specified in the archive retrieval, then the whole archive is retrieved. In this case, StartByteValue equals 0 and EndByteValue equals the size of the archive minus 1. For inventory retrieval or select jobs, this field is null.
184 185 186 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 184 def retrieval_byte_range data[:retrieval_byte_range] end |
#select_parameters ⇒ Types::SelectParameters
Contains the parameters used for a select.
209 210 211 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 209 def select_parameters data[:select_parameters] end |
#sha256_tree_hash ⇒ String
For an archive retrieval job, this value is the checksum of the archive. Otherwise, this value is null.
The SHA256 tree hash value for the requested range of an archive. If the InitiateJob request for an archive specified a tree-hash aligned range, then this field returns a value.
If the whole archive is retrieved, this value is the same as the ArchiveSHA256TreeHash value.
This field is null for the following:
- Archive retrieval jobs that specify a range that is not tree-hash aligned
^ ^
- Archival jobs that specify a range that is equal to the whole
archive, when the job status is
InProgress
^ ^
Inventory jobs
Select jobs
166 167 168 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 166 def sha256_tree_hash data[:sha256_tree_hash] end |
#sns_topic ⇒ String
An Amazon SNS topic that receives notification.
127 128 129 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 127 def sns_topic data[:sns_topic] end |
#status_code ⇒ String
The status code can be InProgress
, Succeeded
, or Failed
, and
indicates the status of the job.
99 100 101 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 99 def status_code data[:status_code] end |
#status_message ⇒ String
A friendly message that describes the job status.
105 106 107 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 105 def data[:status_message] end |
#tier ⇒ String
The tier to use for a select or an archive retrieval. Valid values are
Expedited
, Standard
, or Bulk
. Standard
is the default.
191 192 193 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 191 def tier data[:tier] end |
#vault ⇒ Vault
415 416 417 418 419 420 421 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 415 def vault Vault.new( account_id: @account_id, name: @vault_name, client: @client ) end |
#vault_arn ⇒ String
The Amazon Resource Name (ARN) of the vault from which an archive retrieval was requested.
77 78 79 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 77 def vault_arn data[:vault_arn] end |
#vault_name ⇒ String
44 45 46 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 44 def vault_name @vault_name end |
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::Glacier::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
Example
instance.wait_until(max_attempts:10, delay:5) do |instance|
instance.state.name == 'running'
end
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
# disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
# resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 |
# File 'gems/aws-sdk-glacier/lib/aws-sdk-glacier/job.rb', line 340 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |