From ea49108c785f2c69f935b6fc61363a3aadfac83b Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 3 Nov 2017 16:39:46 -0400 Subject: [PATCH] Add nodedefine command Provide a quick command to define new nodes to confluent direct from cli without confetty. --- confluent_client/bin/nodedefine | 57 +++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 confluent_client/bin/nodedefine diff --git a/confluent_client/bin/nodedefine b/confluent_client/bin/nodedefine new file mode 100644 index 00000000..b839caf0 --- /dev/null +++ b/confluent_client/bin/nodedefine @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2017 Lenovo +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import optparse +import os +import signal +import sys + +try: + signal.signal(signal.SIGPIPE, signal.SIG_DFL) +except AttributeError: + pass + +path = os.path.dirname(os.path.realpath(__file__)) +path = os.path.realpath(os.path.join(path, '..', 'lib', 'python')) +if path.startswith('/opt'): + sys.path.append(path) + +import confluent.client as client + +argparser = optparse.OptionParser( + usage='''\n %prog noderange attribute1=value1 attribute2=value,... + \n ''') +(options, args) = argparser.parse_args() +requestargs=None +try: + noderange = args[0] +except IndexError: + argparser.print_help() + sys.exit(1) +session = client.Command() +exitcode = 0 +attribs = {'name': noderange} +for arg in args[1:]: + key, val = arg.split('=') + attribs[key] = val +for r in session.create('/noderange/', attribs): + if 'error' in r: + sys.stderr.write(r['error'] + '\n') + exitcode |= 1 + if 'created' in r: + print('{0}: created'.format(r['created'])) +sys.exit(exitcode) \ No newline at end of file