Class: Elasticity::JobFlowStatus
- Inherits:
-
Object
- Object
- Elasticity::JobFlowStatus
- Defined in:
- lib/elasticity/job_flow_status.rb
Instance Attribute Summary collapse
-
#created_at ⇒ Object
Returns the value of attribute created_at.
-
#duration ⇒ Object
Returns the value of attribute duration.
-
#ended_at ⇒ Object
Returns the value of attribute ended_at.
-
#installed_steps ⇒ Object
Returns the value of attribute installed_steps.
-
#instance_count ⇒ Object
Returns the value of attribute instance_count.
-
#jobflow_id ⇒ Object
Returns the value of attribute jobflow_id.
-
#last_state_change_reason ⇒ Object
Returns the value of attribute last_state_change_reason.
-
#master_instance_id ⇒ Object
Returns the value of attribute master_instance_id.
-
#master_instance_type ⇒ Object
Returns the value of attribute master_instance_type.
-
#master_public_dns_name ⇒ Object
Returns the value of attribute master_public_dns_name.
-
#name ⇒ Object
Returns the value of attribute name.
-
#normalized_instance_hours ⇒ Object
Returns the value of attribute normalized_instance_hours.
-
#ready_at ⇒ Object
Returns the value of attribute ready_at.
-
#slave_instance_type ⇒ Object
Returns the value of attribute slave_instance_type.
-
#started_at ⇒ Object
Returns the value of attribute started_at.
-
#state ⇒ Object
Returns the value of attribute state.
-
#steps ⇒ Object
Returns the value of attribute steps.
Class Method Summary collapse
-
.from_member_element(xml_element) ⇒ Object
Create a jobflow from an AWS <member> (Nokogiri::XML::Element): /DescribeJobFlowsResponse/DescribeJobFlowsResult/JobFlows/member.
-
.from_members_nodeset(members_nodeset) ⇒ Object
Create JobFlows from a collection of AWS <member> nodes (Nokogiri::XML::NodeSet): /DescribeJobFlowsResponse/DescribeJobFlowsResult/JobFlows.
Instance Method Summary collapse
- #active? ⇒ Boolean
-
#initialize ⇒ JobFlowStatus
constructor
A new instance of JobFlowStatus.
Constructor Details
#initialize ⇒ JobFlowStatus
Returns a new instance of JobFlowStatus.
23 24 25 26 |
# File 'lib/elasticity/job_flow_status.rb', line 23 def initialize @steps = [] @installed_steps = [] end |
Instance Attribute Details
#created_at ⇒ Object
Returns the value of attribute created_at.
9 10 11 |
# File 'lib/elasticity/job_flow_status.rb', line 9 def created_at @created_at end |
#duration ⇒ Object
Returns the value of attribute duration.
13 14 15 |
# File 'lib/elasticity/job_flow_status.rb', line 13 def duration @duration end |
#ended_at ⇒ Object
Returns the value of attribute ended_at.
12 13 14 |
# File 'lib/elasticity/job_flow_status.rb', line 12 def ended_at @ended_at end |
#installed_steps ⇒ Object
Returns the value of attribute installed_steps.
19 20 21 |
# File 'lib/elasticity/job_flow_status.rb', line 19 def installed_steps @installed_steps end |
#instance_count ⇒ Object
Returns the value of attribute instance_count.
14 15 16 |
# File 'lib/elasticity/job_flow_status.rb', line 14 def instance_count @instance_count end |
#jobflow_id ⇒ Object
Returns the value of attribute jobflow_id.
6 7 8 |
# File 'lib/elasticity/job_flow_status.rb', line 6 def jobflow_id @jobflow_id end |
#last_state_change_reason ⇒ Object
Returns the value of attribute last_state_change_reason.
18 19 20 |
# File 'lib/elasticity/job_flow_status.rb', line 18 def last_state_change_reason @last_state_change_reason end |
#master_instance_id ⇒ Object
Returns the value of attribute master_instance_id.
16 17 18 |
# File 'lib/elasticity/job_flow_status.rb', line 16 def master_instance_id @master_instance_id end |
#master_instance_type ⇒ Object
Returns the value of attribute master_instance_type.
15 16 17 |
# File 'lib/elasticity/job_flow_status.rb', line 15 def master_instance_type @master_instance_type end |
#master_public_dns_name ⇒ Object
Returns the value of attribute master_public_dns_name.
20 21 22 |
# File 'lib/elasticity/job_flow_status.rb', line 20 def master_public_dns_name @master_public_dns_name end |
#name ⇒ Object
Returns the value of attribute name.
5 6 7 |
# File 'lib/elasticity/job_flow_status.rb', line 5 def name @name end |
#normalized_instance_hours ⇒ Object
Returns the value of attribute normalized_instance_hours.
21 22 23 |
# File 'lib/elasticity/job_flow_status.rb', line 21 def normalized_instance_hours @normalized_instance_hours end |
#ready_at ⇒ Object
Returns the value of attribute ready_at.
11 12 13 |
# File 'lib/elasticity/job_flow_status.rb', line 11 def ready_at @ready_at end |
#slave_instance_type ⇒ Object
Returns the value of attribute slave_instance_type.
17 18 19 |
# File 'lib/elasticity/job_flow_status.rb', line 17 def slave_instance_type @slave_instance_type end |
#started_at ⇒ Object
Returns the value of attribute started_at.
10 11 12 |
# File 'lib/elasticity/job_flow_status.rb', line 10 def started_at @started_at end |
#state ⇒ Object
Returns the value of attribute state.
7 8 9 |
# File 'lib/elasticity/job_flow_status.rb', line 7 def state @state end |
#steps ⇒ Object
Returns the value of attribute steps.
8 9 10 |
# File 'lib/elasticity/job_flow_status.rb', line 8 def steps @steps end |
Class Method Details
.from_member_element(xml_element) ⇒ Object
Create a jobflow from an AWS <member> (Nokogiri::XML::Element):
/DescribeJobFlowsResponse/DescribeJobFlowsResult/JobFlows/member
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/elasticity/job_flow_status.rb', line 35 def self.from_member_element(xml_element) jobflow_status = JobFlowStatus.new jobflow_status.name = xml_element.xpath('./Name').text.strip jobflow_status.jobflow_id = xml_element.xpath('./JobFlowId').text.strip jobflow_status.state = xml_element.xpath('./ExecutionStatusDetail/State').text.strip jobflow_status.last_state_change_reason = xml_element.xpath('./ExecutionStatusDetail/LastStateChangeReason').text.strip jobflow_status.steps = JobFlowStatusStep.from_members_nodeset(xml_element.xpath('./Steps/member')) step_names = jobflow_status.steps.map(&:name) Elasticity::JobFlowStep.steps_requiring_installation.each do |step| jobflow_status.installed_steps << step if step_names.include?(step.aws_installation_step_name) end jobflow_status.created_at = Time.parse(xml_element.xpath('./ExecutionStatusDetail/CreationDateTime').text.strip) ready_at = xml_element.xpath('./ExecutionStatusDetail/ReadyDateTime').text.strip jobflow_status.ready_at = (ready_at == '') ? (nil) : (Time.parse(ready_at)) started_at = xml_element.xpath('./ExecutionStatusDetail/StartDateTime').text.strip jobflow_status.started_at = (started_at == '') ? (nil) : (Time.parse(started_at)) ended_at = xml_element.xpath('./ExecutionStatusDetail/EndDateTime').text.strip jobflow_status.ended_at = (ended_at == '') ? (nil) : (Time.parse(ended_at)) if jobflow_status.ended_at && jobflow_status.started_at jobflow_status.duration = ((jobflow_status.ended_at - jobflow_status.started_at) / 60).to_i end jobflow_status.instance_count = xml_element.xpath('./Instances/InstanceCount').text.strip jobflow_status.master_instance_type = xml_element.xpath('./Instances/MasterInstanceType').text.strip master_instance_id = xml_element.xpath('./Instances/MasterInstanceId').text.strip jobflow_status.master_instance_id = (master_instance_id == '') ? (nil) : (master_instance_id) jobflow_status.slave_instance_type = xml_element.xpath('./Instances/SlaveInstanceType').text.strip master_public_dns_name = xml_element.xpath('./Instances/MasterPublicDnsName').text.strip jobflow_status.master_public_dns_name = (master_public_dns_name == '') ? (nil) : (master_public_dns_name) jobflow_status.normalized_instance_hours = xml_element.xpath('./Instances/NormalizedInstanceHours').text.strip jobflow_status end |
.from_members_nodeset(members_nodeset) ⇒ Object
Create JobFlows from a collection of AWS <member> nodes (Nokogiri::XML::NodeSet):
/DescribeJobFlowsResponse/DescribeJobFlowsResult/JobFlows
81 82 83 84 85 86 87 |
# File 'lib/elasticity/job_flow_status.rb', line 81 def self.from_members_nodeset(members_nodeset) jobflow_statuses = [] members_nodeset.each do |member| jobflow_statuses << from_member_element(member) end jobflow_statuses end |
Instance Method Details
#active? ⇒ Boolean
29 30 31 |
# File 'lib/elasticity/job_flow_status.rb', line 29 def active? %w{RUNNING STARTING BOOTSTRAPPING WAITING SHUTTING_DOWN}.include? state end |