diff --git a/client-common/client_lib/common.py b/client-common/client_lib/common.py index 635ddbdb..0067b05a 100644 --- a/client-common/client_lib/common.py +++ b/client-common/client_lib/common.py @@ -174,6 +174,32 @@ def verifyNode(zk_conn, node): click.echo('ERROR: No node named "{}" is present in the cluster.'.format(node)) exit(1) +# +# Get the list of valid target hypervisors +# +def getHypervisors(zk_conn, dom_uuid): + valid_hypervisor_list = [] + full_hypervisor_list = zk_conn.get_children('/nodes') + + try: + current_hypervisor = zk_conn.get('/domains/{}/hypervisor'.format(dom_uuid))[0].decode('ascii') + except: + current_hypervisor = None + + for hypervisor in full_hypervisor_list: + daemon_state = zk_conn.get('/nodes/{}/daemonstate'.format(hypervisor))[0].decode('ascii') + domain_state = zk_conn.get('/nodes/{}/domainstate'.format(hypervisor))[0].decode('ascii') + + if hypervisor == current_hypervisor: + continue + + if daemon_state != 'run' or domain_state != 'ready': + continue + + valid_hypervisor_list.append(hypervisor) + + return valid_hypervisor_list + # # Find a migration target # diff --git a/client-common/client_lib/node.py b/client-common/client_lib/node.py index ff4859d9..20d4b48c 100644 --- a/client-common/client_lib/node.py +++ b/client-common/client_lib/node.py @@ -101,30 +101,6 @@ def getInformationFromNode(zk_conn, node_name, long_output): information = '\n'.join(ainformation) return information -# Get the list of valid target hypervisors -def getHypervisors(zk_conn, dom_uuid): - valid_hypervisor_list = [] - full_hypervisor_list = zk_conn.get_children('/nodes') - - try: - current_hypervisor = zk_conn.get('/domains/{}/hypervisor'.format(dom_uuid))[0].decode('ascii') - except: - current_hypervisor = None - - for hypervisor in full_hypervisor_list: - daemon_state = zk_conn.get('/nodes/{}/daemonstate'.format(hypervisor))[0].decode('ascii') - domain_state = zk_conn.get('/nodes/{}/domainstate'.format(hypervisor))[0].decode('ascii') - - if hypervisor == current_hypervisor: - continue - - if daemon_state != 'run' or domain_state != 'ready': - continue - - valid_hypervisor_list.append(hypervisor) - - return valid_hypervisor_list - # # Direct Functions # diff --git a/client-common/client_lib/vm.py b/client-common/client_lib/vm.py index 38abe8f9..5d22af77 100644 --- a/client-common/client_lib/vm.py +++ b/client-common/client_lib/vm.py @@ -202,7 +202,7 @@ def define_vm(zk_conn, config_data, target_hypervisor, selector): transaction.create('/domains/{}/hypervisor'.format(dom_uuid), target_hypervisor.encode('ascii')) transaction.create('/domains/{}/lasthypervisor'.format(dom_uuid), ''.encode('ascii')) transaction.create('/domains/{}/failedreason'.format(dom_uuid), ''.encode('ascii')) - transaction.create('/domains/{}/xml'.format(dom_uuid), data.encode('ascii')) + transaction.create('/domains/{}/xml'.format(dom_uuid), config_data.encode('ascii')) results = transaction.commit() return True, ''