-# Copyright (c) 2010 Nicira Networks
+# Copyright (c) 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.
T_NOTIFY: "notification",
T_REPLY: "reply",
T_ERROR: "error"}
- __next_id = 0
- def __init__(self, type, method, params, result, error, id):
- self.type = type
+ def __init__(self, type_, method, params, result, error, id):
+ self.type = type_
self.method = method
self.params = params
self.result = result
return Message(Message.T_ERROR, None, None, None, error, id)
@staticmethod
- def type_to_string(type):
- return Message.__types[type]
+ def type_to_string(type_):
+ return Message.__types[type_]
- @staticmethod
- def __validate_arg(value, name, must_have):
+ def __validate_arg(self, value, name, must_have):
if (value is not None) == (must_have != 0):
return None
else:
return "invalid JSON-RPC message type %s" % self.type
return (
- Message.__validate_arg(self.method, "method", pattern & 0x10000) or
- Message.__validate_arg(self.params, "params", pattern & 0x1000) or
- Message.__validate_arg(self.result, "result", pattern & 0x100) or
- Message.__validate_arg(self.error, "error", pattern & 0x10) or
- Message.__validate_arg(self.id, "id", pattern & 0x1))
+ self.__validate_arg(self.method, "method", pattern & 0x10000) or
+ self.__validate_arg(self.params, "params", pattern & 0x1000) or
+ self.__validate_arg(self.result, "result", pattern & 0x100) or
+ self.__validate_arg(self.error, "error", pattern & 0x10) or
+ self.__validate_arg(self.id, "id", pattern & 0x1))
@staticmethod
def from_json(json):
class Connection(object):
def __init__(self, stream):
- self.name = stream.get_name()
+ self.name = stream.name
self.stream = stream
self.status = 0
self.input = ""
else:
return len(self.output)
- def get_name(self):
- return self.name
-
def __log_msg(self, title, msg):
logging.debug("%s: %s %s" % (self.name, title, msg))
return self.status, None
while True:
- if len(self.input) == 0:
+ if not self.input:
error, data = self.stream.recv(4096)
if error:
if error == errno.EAGAIN:
% (self.name, os.strerror(error)))
self.error(error)
return self.status, None
- elif len(data) == 0:
+ elif not data:
self.error(EOF)
return EOF, None
else:
return msg
def recv_wait(self, poller):
- if self.status or len(self.input) > 0:
+ if self.status or self.input:
poller.immediate_wake()
else:
self.stream.recv_wait(poller)
reconnect.enable(ovs.timeval.msec())
if ovs.stream.PassiveStream.is_valid_name(name):
- self.reconnect.set_passive(True, ovs.timeval.msec())
+ reconnect.set_passive(True, ovs.timeval.msec())
return Session(reconnect, None)
def open_unreliably(jsonrpc):
reconnect = ovs.reconnect.Reconnect(ovs.timeval.msec())
reconnect.set_quiet(True)
- reconnect.set_name(jsonrpc.get_name())
+ reconnect.set_name(jsonrpc.name)
reconnect.set_max_tries(0)
reconnect.connected(ovs.timeval.msec())
return Session(reconnect, jsonrpc)