[haizea-commit] r457 - trunk/src/haizea/resourcemanager

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Mon Aug 4 10:22:40 CDT 2008


Author: borja
Date: 2008-08-04 10:22:40 -0500 (Mon, 04 Aug 2008)
New Revision: 457

Added:
   trunk/src/haizea/resourcemanager/rpcserver.py
Log:
Allow Haizea to run as a daemon, and include an RPC server

Added: trunk/src/haizea/resourcemanager/rpcserver.py
===================================================================
--- trunk/src/haizea/resourcemanager/rpcserver.py	                        (rev 0)
+++ trunk/src/haizea/resourcemanager/rpcserver.py	2008-08-04 15:22:40 UTC (rev 457)
@@ -0,0 +1,66 @@
+# -------------------------------------------------------------------------- #
+# Copyright 2006-2008, University of Chicago                                 #
+# Copyright 2008, Distributed Systems Architecture Group, Universidad        #
+# Complutense de Madrid (dsa-research.org)                                   #
+#                                                                            #
+# 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 threading
+from SimpleXMLRPCServer import SimpleXMLRPCServer
+
+DEFAULT_HAIZEA_PORT = 42493
+
+class RPCServer(object):
+    def __init__(self, rm):
+        self.rm = rm
+        self.logger = self.rm.logger
+        self.port = DEFAULT_HAIZEA_PORT
+        self.server = SimpleXMLRPCServer(("localhost", self.port))
+        self.register_rpc(self.test_func)
+        self.register_rpc(self.cancel_lease)
+        self.register_rpc(self.get_leases)
+        self.register_rpc(self.get_lease_info)
+        self.register_rpc(self.get_queue)
+        self.register_rpc(self.notify_event)
+
+    def start(self):
+        # Start the XML-RPC server
+        server_thread = threading.Thread( target = self.serve )
+        server_thread.start()
+        
+    def register_rpc(self, func):
+        self.server.register_function(func)
+        
+    def serve(self):
+        self.logger.info("RPC server started on port %i" % self.port, "RPC")
+        self.server.serve_forever()        
+        
+    def test_func(self):
+        self.logger.info("Test RPC function called", "RPC")
+        return 0
+    
+    def cancel_lease(self, lease_id):
+        pass
+
+    def get_leases(self):
+        pass
+
+    def get_lease_info(self):
+        pass
+
+    def get_queue(self):
+        pass
+
+    def notify_event(self, lease_id, enactment_id, event):
+        pass
\ No newline at end of file



More information about the Haizea-commit mailing list