1 from PLC.Faults import *
2 from PLC.Method import Method
3 from PLC.Parameter import Parameter, Mixed
4 from PLC.PCUs import PCU, PCUs
5 from PLC.Sites import Site, Sites
6 from PLC.Auth import Auth
8 class AdmGetSitePowerControlUnits(Method):
10 Deprecated. Functionality can be implemented with GetSites and GetPCUs.
15 roles = ['admin', 'pi', 'tech']
19 Mixed(Site.fields['site_id'],
20 Site.fields['login_base'])
23 returns = [PCU.fields]
25 def call(self, auth, site_id_or_login_base):
26 sites = Sites(self.api, [site_id_or_login_base])
28 raise PLCInvalidArgument, "No such site"
29 site = sites.values()[0]
31 if 'admin' not in self.caller['roles']:
32 if site['site_id'] not in self.caller['site_ids']:
33 raise PLCPermissionDenied, "Not allowed to view the PCUs at that site"
35 return PCUs(self.api, site['pcu_ids']).values()