示例#1
0
def version(**opts):
	cols, numeric, limit, rsep, lsep, astab = show_opts(opts)

	rpc = any_rpc(opts)
	ret = rpc.core_version()

	ret, desc = var2tab(ret, 'version')
	tabprint(ret, desc, rsep, lsep, astab)
示例#2
0
def methods(**opts):
	cols, numeric, limit, rsep, lsep, astab = show_opts(opts)

	rpc = any_rpc(opts)
	ret = rpc.system_listmethods()

	ret, desc = var2tab(ret, 'methods')
	tabprint(ret, desc, rsep, lsep, astab)
示例#3
0
def main(argv):
	set_excepthook(True)
	args, opts, defaults = parse_cmdline(argv)
	set_excepthook(opts.get('DEBUG', defaults.get('DEBUG')))
	conf_opts = handle_config(opts.get('CONFIG', defaults.get('CONFIG')))
	defaults.update(conf_opts)
	defaults.update(opts)
	opts = defaults
	del defaults
	set_excepthook(opts['DEBUG'])
	if len(args) < 1:
		raise Error (EINVAL)

	opts['VERSION'] = handle_version(opts)

	opts['DB_URI']  = handle_db_uri(opts)
	opts['SER_URI'] = handle_ser_uri(opts)
	opts['SERVERS'] = handle_servers(opts)

	modname = handle_module_name(args[0])
	mod = module(modname)

	errarg = None
	try:
		funcname = mod._handler_
		args = args[1:]
	except:
		try:
			errarg = args[1]
			funcname = opt.CMD.get(args[1])
		except IndexError:
			funcname = 'help'
		if opts['HELP']:
			funcname = 'help'
		args = args[2:]

	try:
		func = getattr(mod, funcname)
	except:
		if errarg:
			raise Error (EINVAL, errarg)
		else:
			raise Error (EINVAL,)

	if opts['DBG_ARGS']:
		vals = [('MOD', repr(modname)), ('FUN', repr(funcname))]
		i = 0
		for a in args:
			vals.append((str(i),  repr(a)))
			i += 1
		tabprint(vals, [('ARG',),('VALUE',)], tab=True)
		vals, desc = var2tab(opts, ('OPT', 'VALUE'))
		vals = [ (k, repr(v)) for k, v in vals ]
		tabprint(vals, desc, tab=True)

	return call(func, args, opts)
示例#4
0
def publish(uid, file_with_PIDF_doc, expires_in_sec, etag=None, **opts):
	expires = int(expires_in_sec)

	cols, numeric, limit, rsep, lsep, astab = show_opts(opts)

	rpc = any_rpc(opts)
	fh = open(file_with_PIDF_doc)
	doc = fh.read()
	fh.close()
	if etag:
		ret = rpc.ser.pa.publish('registrar', uid, doc, expires, etag)
	else:
		ret = rpc.ser.pa.publish('registrar', uid, doc, expires)
	if astab:
		ret, desc = var2tab(ret)
		tabprint(ret, desc, rsep, lsep, astab)
	else:
		print repr(ret)
示例#5
0
def rpc(cmd, args, opts):

	rpc = any_rpc(opts)

        cols, numeric, limit, rsep, lsep, astab = show_opts(opts)

	# quote unquoted string that not appear as number
	args = list(args)
	for i in range(len(args)):
		try:
			tmp = float(args[i])
		except:
			if args[i][:1] not in ('"', "'"):
				args[i] = '"' + str(args[i]) + '"'

	ret = rpc.shell_cmd(cmd, args)
	if astab:
		ret, desc = var2tab(ret)
	        tabprint(ret, desc, rsep, lsep, astab)
	else:
		if ret == '':      # ignore empty string it's default
			return     # value if nothing returns
		print repr(ret)