Xu He Jie has uploaded a new change for review.
Change subject: add server_once for CrabRPCServer ......................................................................
add server_once for CrabRPCServer
server_once is convenient for integrating CrabRPCServer into the event loop of other program.
example: I want to use CrabRPC in consoleServer, but console have loop in its code. It can join read side of pipe into select(). After select() return, we can call server_once() for processing rpc message.
Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Signed-off-by: Xu He Jie xuhj@linux.vnet.ibm.com --- M vdsm/storage/remoteFileHandler.py 1 file changed, 20 insertions(+), 17 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/52/7452/1
diff --git a/vdsm/storage/remoteFileHandler.py b/vdsm/storage/remoteFileHandler.py index 913e219..622ea5d 100644 --- a/vdsm/storage/remoteFileHandler.py +++ b/vdsm/storage/remoteFileHandler.py @@ -79,27 +79,30 @@ def serve_forever(self): while True: try: - rawLength = self.rfile.read(LENGTH_STRUCT_LENGTH) - length = unpack(LENGTH_STRUCT_FMT, rawLength)[0] - pickledCall = self.rfile.read(length) - if len(pickledCall) < length: - raise Exception("Pipe broke") - - name, args, kwargs = pickle.loads(pickledCall) - err = res = None - try: - res = self.callRegisteredFunction(name, args, kwargs) - except Exception, ex: - err = ex - - resp = pickle.dumps((res, err)) - self.wfile.write(pack(LENGTH_STRUCT_FMT, len(resp))) - self.wfile.write(resp) - self.wfile.flush() + self.serve_once() except: self.log.warn("Could not complete operation", exc_info=True) return
+ def serve_once(self): + rawLength = self.rfile.read(LENGTH_STRUCT_LENGTH) + length = unpack(LENGTH_STRUCT_FMT, rawLength)[0] + pickledCall = self.rfile.read(length) + if len(pickledCall) < length: + raise Exception("Pipe broke") + + name, args, kwargs = pickle.loads(pickledCall) + err = res = None + try: + res = self.callRegisteredFunction(name, args, kwargs) + except Exception, ex: + err = ex + + resp = pickle.dumps((res, err)) + self.wfile.write(pack(LENGTH_STRUCT_FMT, len(resp))) + self.wfile.write(resp) + self.wfile.flush() + def callRegisteredFunction(self, name, args, kwargs): if "." not in name: func = self.registeredFunctions[name]
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com
oVirt Jenkins CI Server has posted comments on this change.
Change subject: add server_once for CrabRPCServer ......................................................................
Patch Set 1:
Build Successful
http://jenkins.ovirt.info/job/patch_vdsm_unit_tests/653/ : SUCCESS
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has posted comments on this change.
Change subject: add server_once for CrabRPCServer ......................................................................
Patch Set 1: Looks good to me, but someone else must approve
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Saggi Mizrahi smizrahi@redhat.com Gerrit-Reviewer: oVirt Jenkins CI Server
Xu He Jie has posted comments on this change.
Change subject: add server_once for CrabRPCServer ......................................................................
Patch Set 1: Verified
test with create iscsi storage domain, create vm, create virtual disk for vm
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Saggi Mizrahi smizrahi@redhat.com Gerrit-Reviewer: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has posted comments on this change.
Change subject: add server_once for CrabRPCServer ......................................................................
Patch Set 1: Looks good to me, approved
Change seems simple enough. I suppose it is fine if I take it with only my own review.
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Saggi Mizrahi smizrahi@redhat.com Gerrit-Reviewer: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: oVirt Jenkins CI Server
Dan Kenigsberg has submitted this change and it was merged.
Change subject: add server_once for CrabRPCServer ......................................................................
add server_once for CrabRPCServer
server_once is convenient for integrating CrabRPCServer into the event loop of other program.
example: I want to use CrabRPC in consoleServer, but console have loop in its code. It can join read side of pipe into select(). After select() return, we can call server_once() for processing rpc message.
Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Signed-off-by: Xu He Jie xuhj@linux.vnet.ibm.com --- M vdsm/storage/remoteFileHandler.py 1 file changed, 20 insertions(+), 17 deletions(-)
Approvals: Xu He Jie: Verified Dan Kenigsberg: Looks good to me, approved
-- To view, visit http://gerrit.ovirt.org/7452 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: merged Gerrit-Change-Id: I7a24477d905c88ce174131cbd78b1cdd518c686d Gerrit-PatchSet: 1 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: Dan Kenigsberg danken@redhat.com Gerrit-Reviewer: Saggi Mizrahi smizrahi@redhat.com Gerrit-Reviewer: Xu He Jie xuhj@linux.vnet.ibm.com Gerrit-Reviewer: oVirt Jenkins CI Server
vdsm-patches@lists.fedorahosted.org