ISO missing ipxe roms package
[apex.git] / lib / utility-functions.sh
1 #!/usr/bin/env bash
2 # Utility Functions used by  OPNFV Apex
3 # author: Tim Rozet (trozet@redhat.com)
4
5 ##connects to undercloud
6 ##params: user to login with, command to execute on undercloud (optional)
7 function undercloud_connect {
8   local user=$1
9
10   if [ -z "$1" ]; then
11     echo "Missing required argument: user to login as to undercloud"
12     return 1
13   fi
14
15   if [ -z "$2" ]; then
16     ssh ${user}@$(arp -a | grep $(virsh domiflist undercloud | grep default |\
17     awk '{print $5}') | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+")
18   else
19     ssh -T ${user}@$(arp -a | grep $(virsh domiflist undercloud | grep default \
20     | awk '{print $5}') | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+") "$2"
21   fi
22 }
23
24 ##outputs heat stack deployment failures
25 ##params: none
26 function debug_stack {
27   local failure_output
28   local phys_id
29   declare -a resource_arr
30   declare -a phys_id_arr
31
32   source ~/stackrc
33
34   IFS=$'\n'
35   for resource in $(heat resource-list -n 5 overcloud | grep FAILED); do
36     unset IFS
37     resource_arr=(${resource//|/ })
38     phys_id=$(heat resource-show ${resource_arr[-1]} ${resource_arr[0]} | grep physical_resource_id 2> /dev/null)
39     if [ -n "$phys_id" ]; then
40       phys_id_arr=(${phys_id//|/ })
41       failure_output+="******************************************************"
42       failure_output+="\n${resource}:\n\n$(heat deployment-show ${phys_id_arr[-1]} 2> /dev/null)"
43       failure_output+="\n******************************************************"
44     fi
45     unset phys_id
46   done
47
48   echo -e $failure_output
49 }