Class: Script
- Inherits:
-
Object
- Object
- Script
- Defined in:
- lib/rscalr/model/script.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
Returns the value of attribute description.
-
#details ⇒ Object
Returns the value of attribute details.
-
#id ⇒ Object
Returns the value of attribute id.
-
#latest_revision ⇒ Object
Returns the value of attribute latest_revision.
-
#name ⇒ Object
Returns the value of attribute name.
Instance Method Summary collapse
- #execute(farm_id, timeout = 30, async = :no_async, farm_role_id = nil, server_id = nil, revision = nil, config_vars = nil) ⇒ Object
- #get_config_variables ⇒ Object
-
#initialize(client) ⇒ Script
constructor
A new instance of Script.
- #load_details ⇒ Object
- #parse_script_execution_response(api_response, farm_id, farm_role_id = nil, server_id = nil) ⇒ Object
- #set_revision(revision) ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(client) ⇒ Script
Returns a new instance of Script.
6 7 8 |
# File 'lib/rscalr/model/script.rb', line 6 def initialize client @client = client end |
Instance Attribute Details
#description ⇒ Object
Returns the value of attribute description.
4 5 6 |
# File 'lib/rscalr/model/script.rb', line 4 def description @description end |
#details ⇒ Object
Returns the value of attribute details.
4 5 6 |
# File 'lib/rscalr/model/script.rb', line 4 def details @details end |
#id ⇒ Object
Returns the value of attribute id.
4 5 6 |
# File 'lib/rscalr/model/script.rb', line 4 def id @id end |
#latest_revision ⇒ Object
Returns the value of attribute latest_revision.
4 5 6 |
# File 'lib/rscalr/model/script.rb', line 4 def latest_revision @latest_revision end |
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/rscalr/model/script.rb', line 4 def name @name end |
Instance Method Details
#execute(farm_id, timeout = 30, async = :no_async, farm_role_id = nil, server_id = nil, revision = nil, config_vars = nil) ⇒ Object
10 11 12 13 14 |
# File 'lib/rscalr/model/script.rb', line 10 def execute(farm_id, timeout=30, async=:no_async, farm_role_id=nil, server_id=nil, revision=nil, config_vars=nil) set_revision(revision) # Side effect! api_response = @client.script_execute farm_id, @id, timeout, async, farm_role_id, server_id, @revision, config_vars parse_script_execution_response(api_response, farm_id, farm_role_id, server_id) end |
#get_config_variables ⇒ Object
44 45 46 47 48 49 |
# File 'lib/rscalr/model/script.rb', line 44 def get_config_variables load_details unless @details != nil @revision = @latest_revision unless @revision != nil puts "Rev: #{@revision} -- Deets: #{@details}" @details.revisions[@revision].config_variables end |
#load_details ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rscalr/model/script.rb', line 16 def load_details @details = ScriptDetails.new @id scalr_response = @client.script_get_details @id scalr_response.root.each_element('ScriptRevisionSet/Item') { |row| revision = ScriptRevision.new row.each_element { |prop| if "Revision" == prop.name revision.revision = prop.text.to_i elsif "Date" == prop.name revision.date = Time.parse(prop.text) elsif "ConfigVariables" == prop.name prop.each_element { |configvar_element| configvar_element.each_element { |configvar_prop| if "Name" == prop.name revision.config_variables << prop.text end } } end } @details.revisions[revision.revision] = revision } @details end |
#parse_script_execution_response(api_response, farm_id, farm_role_id = nil, server_id = nil) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rscalr/model/script.rb', line 61 def parse_script_execution_response(api_response, farm_id, farm_role_id=nil, server_id=nil) if api_response.success? result = nil event_id = nil api_response.root.each_element { |field| if "TransactionID" == field.name event_id = field.text elsif "Result" == field.name result = field.text.to_i end } ScriptExecution.new(@id, result, event_id, farm_id, farm_role_id, server_id) elsif ScriptExecution.new(@id, 0, nil, farm_id) end end |
#set_revision(revision) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/rscalr/model/script.rb', line 51 def set_revision(revision) if revision.nil? || revision >= @latest_revision @revision = @latest_revision elsif revision < 1 @revision = 1 else @revision = revision end end |
#to_s ⇒ Object
78 79 80 |
# File 'lib/rscalr/model/script.rb', line 78 def to_s "{ type: \"script\", id: #{@id}, name: \"#{@name}\" }" end |