geni aggregate server
authorTony Mack <tmack@cs.princeton.edu>
Mon, 5 Jan 2009 20:14:40 +0000 (20:14 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Mon, 5 Jan 2009 20:14:40 +0000 (20:14 +0000)
plc/aggregateServer.py [new file with mode: 0644]

diff --git a/plc/aggregateServer.py b/plc/aggregateServer.py
new file mode 100644 (file)
index 0000000..b5ac401
--- /dev/null
@@ -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)