-# Copyright (c) 2009, 2010 Nicira Networks
+# Copyright (c) 2009, 2010, 2011 Nicira Networks
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
import ovs.poller
import ovs.stream
+
def handle_rpc(rpc, msg):
done = False
reply = None
else:
rpc.error(errno.EPROTO)
sys.stderr.write("unsolicited JSON-RPC reply or error\n")
-
+
if reply:
rpc.send(reply)
return done
-def do_listen(name):
- ovs.daemon.die_if_already_running()
+def do_listen(name):
error, pstream = ovs.stream.PassiveStream.open(name)
if error:
sys.stderr.write("could not listen on \"%s\": %s\n"
poller.block()
pstream.close()
+
def do_request(name, method, params_string):
params = ovs.json.from_string(params_string)
msg = ovs.jsonrpc.Message.create_request(method, params)
if error:
sys.stderr.write("error waiting for reply: %s\n" % os.strerror(error))
sys.exit(1)
-
+
print ovs.json.to_string(msg.to_json())
rpc.close()
-
+
+
def do_notify(name, method, params_string):
params = ovs.json.from_string(params_string)
msg = ovs.jsonrpc.Message.create_notify(method, params)
rpc.close()
+
def main(argv):
try:
options, args = getopt.gnu_getopt(
args = args[1:]
if not command_name in commands:
sys.stderr.write("%s: unknown command \"%s\" "
- "(use --help for help)\n" % (argv0, command_name))
+ "(use --help for help)\n" % (argv[0], command_name))
sys.exit(1)
func, n_args = commands[command_name]
if len(args) < n_args[0]:
sys.stderr.write("%s: \"%s\" requires at least %d arguments but "
"only %d provided\n"
- % (argv0, command_name, n_args, len(args)))
+ % (argv[0], command_name, n_args, len(args)))
sys.exit(1)
elif type(n_args) == int:
if len(args) != n_args:
sys.stderr.write("%s: \"%s\" requires %d arguments but %d "
"provided\n"
- % (argv0, command_name, n_args, len(args)))
+ % (argv[0], command_name, n_args, len(args)))
sys.exit(1)
else:
assert False
func(*args)
+
def usage():
sys.stdout.write("""\
%s: JSON-RPC test utility for Python
""")
sys.exit(0)
+
if __name__ == '__main__':
main(sys.argv)
-