From b67c6b64b8e2c08f40051adf5a839241e78dca7d Mon Sep 17 00:00:00 2001 From: "chenshuai@huawei.com" Date: Tue, 16 Feb 2016 18:29:55 +0800 Subject: Improvement: reset compute nodes for opencontrail JIRA: COMPASS-317 Change-Id: I27b6bb3aa8707f02a51951eed83646a78dafc841 Signed-off-by: chenshuai@huawei.com --- deploy/reset_compute.py | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 deploy/reset_compute.py (limited to 'deploy/reset_compute.py') diff --git a/deploy/reset_compute.py b/deploy/reset_compute.py new file mode 100644 index 00000000..717e8833 --- /dev/null +++ b/deploy/reset_compute.py @@ -0,0 +1,59 @@ +import os +import sys +import yaml + +def exec_cmd(cmd): + print cmd + os.system(cmd) + +def reset_baremetal(dha_info): + print "reset_baremetal" + + hosts_info = yaml.load(open(dha_info)) + #print hosts_info + + ipmiUserDf = hosts_info.get('ipmiUser', 'root') + ipmiPassDf = hosts_info.get('ipmiPass', 'Huawei@123') + print ipmiUserDf + print ipmiPassDf + + hosts_list = hosts_info.get('hosts', []) + #print hosts_list + + for host in hosts_list: + print host + if ('compute' in host['roles']): + ipmiUser = host.get('ipmiUser', ipmiUserDf) + ipmiPass = host.get('ipmiPass', ipmiPassDf) + ipmiIp = host['ipmiIp'] + print ipmiUser + print ipmiPass + print ipmiIp + exec_cmd("ipmitool -I lanplus -H %s -U %s -P %s chassis power reset >/dev/null" % (ipmiIp, ipmiUser, ipmiPass)) + + +def reset_virtual(dha_info): + print "reset_virtual" + + hosts_info = yaml.load(open(dha_info)) + print hosts_info + + hosts_list = hosts_info.get('hosts', []) + + for host in hosts_list: + print host + if ('compute' in host['roles']): + name = host['name'] + exec_cmd("virsh destroy %s" % name) + exec_cmd("virsh start %s" % name) + +if __name__ == "__main__": + deploy_type=sys.argv[1] + dha_info=sys.argv[2] + print deploy_type + print dha_info + if (deploy_type == 'baremetal') : + reset_baremetal(dha_info) + elif (deploy_type == 'virtual') : + reset_virtual(dha_info) + -- cgit 1.2.3-korg