Package haizea :: Package core :: Package frontends :: Module rpc
[hide private]
[frames] | no frames]

Source Code for Module haizea.core.frontends.rpc

 1  # -------------------------------------------------------------------------- # 
 2  # Copyright 2006-2009, University of Chicago                                 # 
 3  # Copyright 2008-2009, Distributed Systems Architecture Group, Universidad   # 
 4  # Complutense de Madrid (dsa-research.org)                                   # 
 5  #                                                                            # 
 6  # Licensed under the Apache License, Version 2.0 (the "License"); you may    # 
 7  # not use this file except in compliance with the License. You may obtain    # 
 8  # a copy of the License at                                                   # 
 9  #                                                                            # 
10  # http://www.apache.org/licenses/LICENSE-2.0                                 # 
11  #                                                                            # 
12  # Unless required by applicable law or agreed to in writing, software        # 
13  # distributed under the License is distributed on an "AS IS" BASIS,          # 
14  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   # 
15  # See the License for the specific language governing permissions and        # 
16  # limitations under the License.                                             # 
17  # -------------------------------------------------------------------------- # 
18  from haizea.core.leases import Lease 
19  from haizea.core.frontends import RequestFrontend 
20  from haizea.common.utils import get_config, get_lease_id 
21  import logging 
22   
23 -class RPCFrontend(RequestFrontend):
24 - def __init__(self):
25 self.logger = logging.getLogger("RPCREQ") 26 self.accumulated = []
27
28 - def load(self, manager):
29 manager.rpc_server.register_rpc(self.create_lease)
30
32 acc = self.accumulated 33 self.accumulated = [] 34 return acc
35
36 - def exists_more_requests(self):
37 return True
38
39 - def create_lease(self, lease_xml_str):
40 lease = Lease.from_xml_string(lease_xml_str) 41 lease.id = get_lease_id() 42 self.accumulated.append(lease) 43 return lease.id 44