2 ##############################################################################
3 # Copyright (c) 2015 Huawei Technologies Co.,Ltd and others.
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 # http://www.apache.org/licenses/LICENSE-2.0
9 ##############################################################################
12 STACK_NAME="bottlenecks_vstf_stack"
13 VM_MANAGER_USER="root"
14 VM_MANAGER_PASSWD="root"
16 VM_TARGET_PASSWD="root"
18 VM_TESTER_PASSWD="root"
25 function fn_parser_ipaddress(){
26 #parser and get output ipaddress
27 manager_control_private_ip=`heat output-show ${STACK_NAME} manager_control_private_ip | sed 's/\"//g'`
28 manager_control_public_ip=`heat output-show ${STACK_NAME} manager_control_public_ip | sed 's/\"//g'`
29 echo "manager_control_private_ip = ${manager_control_private_ip}"
30 #ping -c 5 ${manager_control_private_ip}
31 echo "manager_control_public_ip = ${manager_control_public_ip}"
32 ping -c 5 ${manager_control_public_ip}
33 target_control_private_ip=`heat output-show ${STACK_NAME} target_control_private_ip | sed 's/\"//g'`
34 target_control_public_ip=`heat output-show ${STACK_NAME} target_control_public_ip | sed 's/\"//g'`
35 echo "target_control_private_ip = ${target_control_private_ip}"
36 #ping -c 5 ${target_control_private_ip}
37 echo "target_control_public_ip = ${target_control_public_ip}"
38 ping -c 5 ${target_control_public_ip}
39 tester_control_private_ip=`heat output-show ${STACK_NAME} tester_control_private_ip | sed 's/\"//g'`
40 tester_control_public_ip=`heat output-show ${STACK_NAME} tester_control_public_ip | sed 's/\"//g'`
41 echo "tester_control_private_ip = ${tester_control_private_ip}"
42 #ping -c 5 ${tester_control_private_ip}
43 echo "tester_control_public_ip = ${tester_control_public_ip}"
44 ping -c 5 ${tester_control_public_ip}
46 #get testing ipaddress
47 tester_testing_ip=`nova list | grep "vstf-tester" | grep "bottlenecks-testing" | awk -F'bottlenecks-testing=' '{print $2}' | awk '{print $1}'`
48 target_testing_ip=`nova list | grep "vstf-target" | grep "bottlenecks-testing" | awk -F'bottlenecks-testing=' '{print $2}' | awk '{print $1}'`
49 echo "tester_testing_ip = ${tester_testing_ip}"
50 echo "target_testing_ip = ${target_testing_ip}"
52 #config ip for the testing plane
53 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${target_control_public_ip}
54 sshpass -p root ssh -o StrictHostKeyChecking=no root@${target_control_public_ip} "ifconfig eth1 ${target_testing_ip}/24;sleep 4"
55 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${tester_control_public_ip}
56 sshpass -p root ssh -o StrictHostKeyChecking=no root@${tester_control_public_ip} "ifconfig eth1 ${tester_testing_ip}/24;sleep 4"
58 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${target_control_public_ip}
59 sshpass -p root ssh -o StrictHostKeyChecking=no root@${target_control_public_ip} "ping -c 10 ${tester_testing_ip}"
61 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${tester_control_public_ip}
62 sshpass -p root ssh -o StrictHostKeyChecking=no root@${tester_control_public_ip} "ping -c 10 ${target_testing_ip}"
65 for ipaddr in ${manager_control_private_ip} ${manager_control_public_ip} ${target_control_private_ip} \
66 ${target_control_public_ip} ${tester_control_private_ip} ${tester_control_public_ip}
68 if [ "${ipaddr}x" == "x" ]
70 echo "[ERROR]The ipaddress is null ,get ip from heat output failed"
78 function fn_generate_amqp(){
80 if [ "${node_type}" == "manager" ]
83 elif [ "${node_type}" == "target" -o "${node_type}" == "tester" ]
85 echo "[rabbit]" > ./vstf-${node_type}.ini
86 echo "user=guest" >> ./vstf-${node_type}.ini
87 echo "passwd=guest" >> ./vstf-${node_type}.ini
88 echo "host=${manager_control_private_ip}" >> ./vstf-${node_type}.ini
89 echo "port=${RABBITMQ_PORT}" >> ./vstf-${node_type}.ini
90 echo "id=\"${node_type}\"" >> ./vstf-${node_type}.ini
92 echo "[ERROR]node type ${node_type} does not exist"
98 function fn_provision_agent_file(){
100 #apt-get -y install expect
102 fn_generate_amqp "manager"
105 fn_generate_amqp "target"
106 #scp_cmd ${target_control_public_ip} ${VM_TARGET_USER} ${VM_TARGET_PASSWD} "./vstf-target.ini" "/etc/vstf/amqp/amqp.ini" "file"
107 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${target_control_public_ip}
108 sshpass -p root scp -o StrictHostKeyChecking=no "./vstf-target.ini" root@${target_control_public_ip}:/etc/vstf/amqp/amqp.ini
110 fn_generate_amqp "tester"
111 #scp_cmd ${tester_control_public_ip} ${VM_TESTER_USER} ${VM_TESTER_PASSWD} "./vstf-tester.ini" "/etc/vstf/amqp/amqp.ini" "file"
112 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${tester_control_public_ip}
113 sshpass -p root scp -o StrictHostKeyChecking=no "./vstf-tester.ini" root@${tester_control_public_ip}:/etc/vstf/amqp/amqp.ini
118 function fn_launch_vstf_process(){
121 local manager_cmd="vstf-manager stop;pkill vstf-manager;rm -rf /opt/vstf/vstf-server.pid;vstf-manager start --monitor ${manager_control_private_ip} --port ${RABBITMQ_PORT}"
122 #run_cmd ${manager_control_public_ip} ${VM_MANAGER_USER} ${VM_MANAGER_PASSWD} "${manager_cmd}"
123 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${manager_control_public_ip}
124 sshpass -p root ssh -o StrictHostKeyChecking=no root@${manager_control_public_ip} "ifconfig -a"
125 sshpass -p root ssh -o StrictHostKeyChecking=no root@${manager_control_public_ip} "${manager_cmd}"
128 local target_cmd="vstf-agent stop;pkill vstf-agent;rm -rf /tmp/esp_rpc_client.pid;vstf-agent start --config_file=/etc/vstf/amqp/amqp.ini"
129 #run_cmd ${target_control_public_ip} ${VM_TARGET_USER} ${VM_TARGET_PASSWD} "${target_cmd}"
130 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${target_control_public_ip}
131 sshpass -p root ssh -o StrictHostKeyChecking=no root@${target_control_public_ip} "ifconfig -a"
132 sshpass -p root ssh -o StrictHostKeyChecking=no root@${target_control_public_ip} "${target_cmd}"
135 #run_cmd ${tester_control_public_ip} ${VM_TESTER_USER} ${VM_TESTER_PASSWD} "${target_cmd}"
136 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${tester_control_public_ip}
137 sshpass -p root ssh -o StrictHostKeyChecking=no root@${tester_control_public_ip} "ifconfig -a"
138 sshpass -p root ssh -o StrictHostKeyChecking=no root@${tester_control_public_ip} "${target_cmd}"
145 fn_provision_agent_file
146 fn_launch_vstf_process
147 cmd="rabbitmqctl list_queues"
149 #${manager_control_public_ip} ${VM_MANAGER_USER} ${VM_MANAGER_PASSWD} "${cmd}"
150 ssh-keygen -f "/home/jenkins-ci/.ssh/known_hosts" -R ${manager_control_public_ip}
151 sshpass -p root ssh -o StrictHostKeyChecking=no root@${manager_control_public_ip} "${cmd}"