class Overcloud::UndercloudHandle
Public Class Methods
new(username, password, auth_url, port = 5000)
click to toggle source
# File lib/egon/overcloud/undercloud_handle.rb, line 16 def initialize(username, password, auth_url, port = 5000) @username = username @password = password @auth_url = auth_url @port = port end
Public Instance Methods
execute_workflow(workflow, input, wait_for_complete = true)
click to toggle source
# File lib/egon/overcloud/undercloud_handle.rb, line 23 def execute_workflow(workflow, input, wait_for_complete = true) connection = service('Workflow') response = connection.create_execution(workflow, input) state = response.body['state'] workflow_execution_id = response.body['id'] return unless wait_for_complete while state == 'RUNNING' sleep 2 response = connection.get_execution(workflow_execution_id) state = response.body['state'] end if state != 'SUCCESS' raise "Executing workflow #{workflow} on #{input} failed: #{response.body['output']}" end workflow_execution_id end
workflow_action_execution(action_name, params = {})
click to toggle source
# File lib/egon/overcloud/undercloud_handle.rb, line 43 def workflow_action_execution(action_name, params = {}) return JSON.parse(service('Workflow').create_action_execution(action_name, params).body["output"])["result"] end
Private Instance Methods
auth_token()
click to toggle source
# File lib/egon/overcloud/undercloud_handle.rb, line 66 def auth_token service('Baremetal').instance_variable_get(:@auth_token) end
service(service_name)
click to toggle source
# File lib/egon/overcloud/undercloud_handle.rb, line 49 def service(service_name) fog_parameters = { :provider => 'OpenStack', :openstack_auth_url => 'http://' + @auth_url + ':' + @port.to_s + '/v2.0/tokens', :openstack_username => @username, :openstack_api_key => @password, :openstack_tenant => @username, } if service_name == 'Planning' return Fog::Openstack.const_get(service_name).new(fog_parameters) elsif service_name == 'Workflow' return Fog::Workflow::OpenStack.new(fog_parameters) end return Fog.const_get(service_name).new(fog_parameters) end