Class: Overcloud::UndercloudHandle

Inherits:
Object
  • Object
show all
Includes:
Deployment, Flavor, Image, Node
Defined in:
lib/egon/overcloud/undercloud_handle.rb

Instance Method Summary collapse

Methods included from Node

#configure_node, #create_node, #create_node_only, #create_nodes_from_csv, #create_port, #delete_node, #get_node, #introspect_node, #introspect_node_status, #list_nodes, #list_ports, #list_ports_detailed, #node_parameters_to_json

Methods included from Image

#find_image_by_name, #get_baremetal_deploy_kernel_image, #get_baremetal_deploy_ramdisk_image, #list_images

Methods included from Flavor

#create_flavor, #create_flavor_extra_specs, #create_flavor_from_node, #flavor_exists?, #get_flavor, #get_flavor_extra_specs, #list_flavors

Methods included from Deployment

#delete_stack, #deploy_plan, #edit_plan_deployment_role_count, #edit_plan_deployment_role_flavor, #edit_plan_environments, #edit_plan_parameters, #get_plan, #get_plan_deployment_roles, #get_plan_environments, #get_plan_parameter_value, #get_plan_parameters, #get_stack_by_name, #list_plans, #list_stacks

Constructor Details

#initialize(username, password, auth_url, port = 5000) ⇒ UndercloudHandle

Returns a new instance of UndercloudHandle.



16
17
18
19
20
21
# 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

Instance Method Details

#execute_workflow(workflow, input, wait_for_complete = true) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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 = {}) ⇒ Object



43
44
45
# 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