Implement flush and unflush finally

This commit is contained in:
Joshua Boniface 2018-06-06 20:49:07 -04:00
parent 8282a35ff8
commit 700f2e8cc4
1 changed files with 40 additions and 12 deletions

52
pvc.py
View File

@ -39,17 +39,9 @@ CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'], max_content_width=12
# pvc node # pvc node
############################################################################### ###############################################################################
@click.group(name='node', short_help='Manage a PVC hypervisor node', context_settings=CONTEXT_SETTINGS) @click.group(name='node', short_help='Manage a PVC hypervisor node', context_settings=CONTEXT_SETTINGS)
@click.option(
'-n', '--name', 'node_name', default=this_host, show_default=True,
help='The PVC node to operate on.'
)
def node(): def node():
""" """
Manage the state of a node in the PVC cluster. Manage the state of a node in the PVC cluster.
Notes:
* The '--name' option defaults to the current host if not set, which is likely not what you want when running this command from a remote host!
""" """
pass pass
@ -58,22 +50,58 @@ def node():
# pvc node flush # pvc node flush
############################################################################### ###############################################################################
@click.command(name='flush', short_help='Take a node out of service') @click.command(name='flush', short_help='Take a node out of service')
def flush_host(): @click.option(
'-n', '--name', 'node_name', default=this_host, show_default=True,
help='The PVC node to operate on.'
)
def flush_host(node_name):
""" """
Take a node out of active service and migrate away all VMs. Take a node out of active service and migrate away all VMs.
Notes:
* The '--name' option defaults to the current host if not set, which is likely not what you want when running this command from a remote host!
""" """
pass
# Open a Zookeeper connection
zk = pvcf.startZKConnection(zk_host)
# Add the new domain to Zookeeper
transaction = zk.transaction()
transaction.set_data('/nodes/{}/state'.format(node_name), 'flush'.encode('ascii'))
results = transaction.commit()
# Close the Zookeeper connection
pvcf.stopZKConnection(zk)
############################################################################### ###############################################################################
# pvc node ready # pvc node ready
############################################################################### ###############################################################################
@click.command(name='ready', short_help='Restore node to service') @click.command(name='ready', short_help='Restore node to service')
def ready_host(): @click.option(
'-n', '--name', 'node_name', default=this_host, show_default=True,
help='The PVC node to operate on.'
)
def ready_host(node_name):
""" """
Restore a host to active service and migrate back all VMs. Restore a host to active service and migrate back all VMs.
Notes:
* The '--name' option defaults to the current host if not set, which is likely not what you want when running this command from a remote host!
""" """
pass
# Open a Zookeeper connection
zk = pvcf.startZKConnection(zk_host)
# Add the new domain to Zookeeper
transaction = zk.transaction()
transaction.set_data('/nodes/{}/state'.format(node_name), 'unflush'.encode('ascii'))
results = transaction.commit()
# Close the Zookeeper connection
pvcf.stopZKConnection(zk)
############################################################################### ###############################################################################