2 from geniserver import *
4 from trustedroot import *
6 from aggregate import *
8 class AggregateServer(GeniServer):
10 def __init__(self, ip, port, key_file, cert_file):
11 GeniServer.__init__(self, ip, port, key_file, cert_file)
12 self.aggregate = Aggregate(hrn)
15 return self.aggregate.get_components
18 return self.aggregate.get_slices
20 def resources(self, cred, hrn):
21 self.decode_authentication(cred, 'info')
22 self.verify_object_belongs_to_me(hrn)
24 return self.aggregate.get_resources(hrn)
26 def create(self, cred, hrn, rspec):
27 self.decode_authentication(cred, 'embed')
28 self.verify_object_belongs_to_me(hrn, rspec)
29 return self.aggregate.create(hrn)
31 def delete(self, cred, hrn):
32 self.decode_authentication(cred, 'embed')
33 self.verify_object_belongs_to_me(hrn)
34 return self.aggregate.delete_slice(hrn)
36 def start(self, cred, hrn):
37 self.decode_authentication(cred, 'control')
38 return self.aggregaet.start(hrn)
40 def stop(self, cred, hrn):
41 self.decode_authentication(cred, 'control')
42 return self.aggregate.stop(hrn)
44 def reset(self, cred, hrn):
45 self.decode_authentication(cred, 'control')
46 return self.aggregate.reset(hrn)
48 def policy(self, cred):
49 self.decode_authentication(cred, 'info')
50 return self.aggregate.get_policy()
52 def register_functions(self):
53 GeniServer.register_functions(self)
55 # Aggregate interface methods
56 self.server.register_function(self.components)
57 self.server.register_function(self.slices)
58 self.server.register_function(self.resources)
59 self.server.register_function(self.create)
60 self.server.register_function(self.delete)
61 self.server.register_function(self.start)
62 self.server.register_function(self.stop)
63 self.server.register_function(self.reset)
64 self.server.register_function(self.policy)