Class: Aws::CloudFormation::Event
- Inherits:
-
Object
- Object
- Aws::CloudFormation::Event
- Defined in:
- gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
-
#client_request_token ⇒ String
The token passed to the operation that generated this event.
-
#detailed_status ⇒ String
An optional field that contains information about the detailed status of the stack event.
-
#hook_failure_mode ⇒ String
Specify the Hook failure mode for non-compliant resources in the followings ways.
-
#hook_invocation_id ⇒ String
The unique identifier of the Hook invocation.
-
#hook_invocation_point ⇒ String
The specific point in the provisioning process where the Hook is invoked.
-
#hook_status ⇒ String
Provides the status of the change set Hook.
-
#hook_status_reason ⇒ String
Provides the reason for the Hook status.
-
#hook_type ⇒ String
The name of the Hook.
-
#id ⇒ String
(also: #event_id)
-
#logical_resource_id ⇒ String
The logical name of the resource specified in the template.
-
#operation_id ⇒ String
The unique identifier of the operation that generated this stack event.
-
#physical_resource_id ⇒ String
The name or unique identifier associated with the physical instance of the resource.
-
#resource_properties ⇒ String
BLOB of the properties used to create the resource.
-
#resource_status ⇒ String
Current status of the resource.
-
#resource_status_reason ⇒ String
Success/failure message associated with the resource.
-
#resource_type ⇒ String
Type of resource.
-
#stack_id ⇒ String
The unique ID name of the instance of the stack.
-
#stack_name ⇒ String
The name associated with a stack.
-
#timestamp ⇒ Time
Time the status was updated.
Instance Method Summary collapse
-
#client ⇒ Client
-
#data ⇒ Types::StackEvent
Returns the data for this Event.
-
#data_loaded? ⇒ Boolean
Returns
trueif this resource is loaded. -
#initialize(*args) ⇒ Event
constructor
A new instance of Event.
-
#wait_until(options = {}) {|resource| ... } ⇒ Resource
deprecated
Deprecated.
Use [Aws::CloudFormation::Client] #wait_until instead
Constructor Details
#initialize(id, options = {}) ⇒ Event #initialize(options = {}) ⇒ Event
Returns a new instance of Event.
22 23 24 25 26 27 28 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 22 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @id = extract_id(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end |
Instance Method Details
#client ⇒ Client
196 197 198 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 196 def client @client end |
#client_request_token ⇒ String
The token passed to the operation that generated this event.
All events triggered by a given stack operation are assigned the same
client request token, which you can use to track operations. For
example, if you execute a CreateStack operation with the token
token1, then all the StackEvents generated by that operation will
have ClientRequestToken set as token1.
In the console, stack operations display the client request token on
the Events tab. Stack operations that are initiated from the console
use the token format Console-StackOperation-ID, which helps you
easily identify the stack operation . For example, if you create a
stack using the console, each stack event would be assigned the same
token in the following format:
Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002.
122 123 124 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 122 def client_request_token data[:client_request_token] end |
#data ⇒ Types::StackEvent
Returns the data for this Aws::CloudFormation::Event.
211 212 213 214 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 211 def data load unless @data @data end |
#data_loaded? ⇒ Boolean
Returns true if this resource is loaded. Accessing attributes or
#data on an unloaded resource will trigger a call to #load.
219 220 221 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 219 def data_loaded? !!@data end |
#detailed_status ⇒ String
An optional field that contains information about the detailed status of the stack event.
CONFIGURATION_COMPLETE- all of the resources in the stack have reached that event. For more information, see Understand CloudFormation stack creation events in the CloudFormation User Guide.
^ ^
VALIDATION_FAILED- template validation failed because of invalid properties in the template. TheResourceStatusReasonfield shows what properties are defined incorrectly.
^
189 190 191 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 189 def detailed_status data[:detailed_status] end |
#hook_failure_mode ⇒ String
Specify the Hook failure mode for non-compliant resources in the followings ways.
FAILStops provisioning resources.WARNAllows provisioning to continue with a warning message.
164 165 166 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 164 def hook_failure_mode data[:hook_failure_mode] end |
#hook_invocation_id ⇒ String
The unique identifier of the Hook invocation.
153 154 155 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 153 def hook_invocation_id data[:hook_invocation_id] end |
#hook_invocation_point ⇒ String
The specific point in the provisioning process where the Hook is invoked.
147 148 149 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 147 def hook_invocation_point data[:hook_invocation_point] end |
#hook_status ⇒ String
Provides the status of the change set Hook.
134 135 136 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 134 def hook_status data[:hook_status] end |
#hook_status_reason ⇒ String
Provides the reason for the Hook status.
140 141 142 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 140 def hook_status_reason data[:hook_status_reason] end |
#hook_type ⇒ String
The name of the Hook.
128 129 130 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 128 def hook_type data[:hook_type] end |
#id ⇒ String Also known as: event_id
33 34 35 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 33 def id @id end |
#logical_resource_id ⇒ String
The logical name of the resource specified in the template.
59 60 61 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 59 def logical_resource_id data[:logical_resource_id] end |
#operation_id ⇒ String
The unique identifier of the operation that generated this stack event.
53 54 55 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 53 def operation_id data[:operation_id] end |
#physical_resource_id ⇒ String
The name or unique identifier associated with the physical instance of the resource.
66 67 68 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 66 def physical_resource_id data[:physical_resource_id] end |
#resource_properties ⇒ String
BLOB of the properties used to create the resource.
102 103 104 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 102 def resource_properties data[:resource_properties] end |
#resource_status ⇒ String
Current status of the resource.
90 91 92 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 90 def resource_status data[:resource_status] end |
#resource_status_reason ⇒ String
Success/failure message associated with the resource.
96 97 98 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 96 def resource_status_reason data[:resource_status_reason] end |
#resource_type ⇒ String
Type of resource. For more information, see Amazon Web Services resource and property types reference in the CloudFormation User Guide.
78 79 80 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 78 def resource_type data[:resource_type] end |
#stack_id ⇒ String
The unique ID name of the instance of the stack.
40 41 42 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 40 def stack_id data[:stack_id] end |
#stack_name ⇒ String
The name associated with a stack.
46 47 48 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 46 def stack_name data[:stack_name] end |
#timestamp ⇒ Time
Time the status was updated.
84 85 86 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 84 def data[:timestamp] end |
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::CloudFormation::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
303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'gems/aws-sdk-cloudformation/lib/aws-sdk-cloudformation/event.rb', line 303 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 |