diff --git a/contrib/yanic-remove-node b/contrib/yanic-remove-node new file mode 100755 index 0000000..8953837 --- /dev/null +++ b/contrib/yanic-remove-node @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 +import json +import argparse +import sys + + +def main(states, nodeid): + with open(states) as handle: + data = json.load(handle) + + if nodeid in data['nodes']: + del data['nodes'][nodeid] + print("node {} removed".format(nodeid)) + else: + print('node not in state file', file=sys.stderr) + sys.exit(1) + + with open(states, 'w') as handle: + json.dump(data, handle) + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + + parser.add_argument('-s', '--states', action='store', required=True, + help='path to the states json file') + parser.add_argument('-n', '--nodeid', action='store', required=True, + help='nodeid of the node to remove') + + args = parser.parse_args() + + main(args.states, args.nodeid) +