From: Tony Mack Date: Mon, 5 Jan 2009 20:14:40 +0000 (+0000) Subject: geni aggregate server X-Git-Tag: sfa-0.9-0@14641~774 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c2876815d8bb053d93de40994a659b6877b4826d;p=sfa.git geni aggregate server --- diff --git a/plc/aggregateServer.py b/plc/aggregateServer.py new file mode 100644 index 00000000..b5ac4011 --- /dev/null +++ b/plc/aggregateServer.py @@ -0,0 +1,65 @@ + +from geniserver import * +from cert import * +from trustedroot import * +from excep import * +from aggregate import * + +class AggregateServer(GeniServer): + + def __init__(self, ip, port, key_file, cert_file): + GeniServer.__init__(self, ip, port, key_file, cert_file) + self.aggregate = Aggregate(hrn) + + def nodes(self): + return self.aggregate.get_components + + def slices(self): + return self.aggregate.get_slices + + def resources(self, cred, hrn): + self.decode_authentication(cred, 'info') + self.verify_object_belongs_to_me(hrn) + + return self.aggregate.get_resources(hrn) + + def create(self, cred, hrn, rspec): + self.decode_authentication(cred, 'embed') + self.verify_object_belongs_to_me(hrn, rspec) + return self.aggregate.create(hrn) + + def delete(self, cred, hrn): + self.decode_authentication(cred, 'embed') + self.verify_object_belongs_to_me(hrn) + return self.aggregate.delete_slice(hrn) + + def start(self, cred, hrn): + self.decode_authentication(cred, 'control') + return self.aggregaet.start(hrn) + + def stop(self, cred, hrn): + self.decode_authentication(cred, 'control') + return self.aggregate.stop(hrn) + + def reset(self, cred, hrn): + self.decode_authentication(cred, 'control') + return self.aggregate.reset(hrn) + + def policy(self, cred): + self.decode_authentication(cred, 'info') + return self.aggregate.get_policy() + + def register_functions(self): + GeniServer.register_functions(self) + + # Aggregate interface methods + self.server.register_function(self.components) + self.server.register_function(self.slices) + self.server.register_function(self.resources) + self.server.register_function(self.create) + self.server.register_function(self.delete) + self.server.register_function(self.start) + self.server.register_function(self.stop) + self.server.register_function(self.reset) + self.server.register_function(self.policy) +