Remove old migration script
This commit is contained in:
parent
1a90780ea9
commit
9cfa466250
|
@ -1,140 +0,0 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
|
|
||||||
# add_zk_node_to_vm.py - Debugging tool to add a new ZK node to all existing
|
|
||||||
# cluster entries.
|
|
||||||
# Part of the Parallel Virtual Cluster (PVC) system
|
|
||||||
#
|
|
||||||
# Copyright (C) 2018 Joshua M. Boniface <joshua@boniface.me>
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public License
|
|
||||||
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
import socket
|
|
||||||
import click
|
|
||||||
import kazoo.client
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Connect and disconnect from Zookeeper
|
|
||||||
#
|
|
||||||
def startZKConnection(zk_host):
|
|
||||||
zk_conn = kazoo.client.KazooClient(hosts=zk_host)
|
|
||||||
zk_conn.start()
|
|
||||||
return zk_conn
|
|
||||||
|
|
||||||
def stopZKConnection(zk_conn):
|
|
||||||
zk_conn.stop()
|
|
||||||
zk_conn.close()
|
|
||||||
return 0
|
|
||||||
|
|
||||||
|
|
||||||
########################
|
|
||||||
########################
|
|
||||||
## ##
|
|
||||||
## CLICK COMPONENTS ##
|
|
||||||
## ##
|
|
||||||
########################
|
|
||||||
########################
|
|
||||||
|
|
||||||
zk_host = ''
|
|
||||||
myhostname = socket.gethostname()
|
|
||||||
|
|
||||||
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'], max_content_width=120)
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# node
|
|
||||||
###############################################################################
|
|
||||||
@click.command(name='node', short_help='Add field to all node configs.')
|
|
||||||
@click.argument(
|
|
||||||
'field', default=None
|
|
||||||
)
|
|
||||||
@click.argument(
|
|
||||||
'data', default='', required=False
|
|
||||||
)
|
|
||||||
def node(field, data):
|
|
||||||
"""
|
|
||||||
Add FIELD to all node configs with optional DATA.
|
|
||||||
|
|
||||||
For example, 'foo [bar]` creates Zookeeper node '/domains/*/foo' with contents 'bar'.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Open a Zookeeper connection
|
|
||||||
zk_conn = startZKConnection(zk_host)
|
|
||||||
|
|
||||||
full_node_list = zk_conn.get_children('/nodes')
|
|
||||||
transaction = zk_conn.transaction()
|
|
||||||
for node in full_node_list:
|
|
||||||
transaction.create('/nodes/{}/{}'.format(node, field), data.encode('ascii'))
|
|
||||||
results = transaction.commit()
|
|
||||||
|
|
||||||
# Close the Zookeeper connection
|
|
||||||
stopZKConnection(zk_conn)
|
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
|
||||||
# vm
|
|
||||||
###############################################################################
|
|
||||||
@click.command(name='vm', short_help='Add field to all node configs.')
|
|
||||||
@click.argument(
|
|
||||||
'field', default=None
|
|
||||||
)
|
|
||||||
@click.argument(
|
|
||||||
'data', default='', required=False
|
|
||||||
)
|
|
||||||
def vm(field, data):
|
|
||||||
"""
|
|
||||||
Add FIELD to all VM configs with optional DATA.
|
|
||||||
|
|
||||||
For example, 'foo [bar]` creates Zookeeper node '/nodes/*/foo' with contents 'bar'.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Open a Zookeeper connection
|
|
||||||
zk_conn = startZKConnection(zk_host)
|
|
||||||
|
|
||||||
full_vm_list = zk_conn.get_children('/domains')
|
|
||||||
transaction = zk_conn.transaction()
|
|
||||||
for vm in full_vm_list:
|
|
||||||
transaction.create('/domains/{}/{}'.format(vm, field), data.encode('ascii'))
|
|
||||||
results = transaction.commit()
|
|
||||||
|
|
||||||
# Close the Zookeeper connection
|
|
||||||
stopZKConnection(zk_conn)
|
|
||||||
|
|
||||||
|
|
||||||
@click.group(context_settings=CONTEXT_SETTINGS)
|
|
||||||
@click.option(
|
|
||||||
'-z', '--zookeeper', '_zk_host', envvar='PVC_ZOOKEEPER', default='{}:2181'.format(myhostname), show_default=True,
|
|
||||||
help='Zookeeper connection string.'
|
|
||||||
)
|
|
||||||
def cli(_zk_host):
|
|
||||||
"""
|
|
||||||
Parallel Virtual Cluster CLI management tool
|
|
||||||
"""
|
|
||||||
|
|
||||||
global zk_host
|
|
||||||
zk_host = _zk_host
|
|
||||||
|
|
||||||
cli.add_command(node)
|
|
||||||
cli.add_command(vm)
|
|
||||||
|
|
||||||
#
|
|
||||||
# Main entry point
|
|
||||||
#
|
|
||||||
def main():
|
|
||||||
return cli(obj={})
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
|
|
Loading…
Reference in New Issue