|
|
|
|
@ -1,33 +1,32 @@
|
|
|
|
|
|
|
|
|
|
from spyne import ServiceBase, rpc, Integer, Decimal, UnsignedInteger32, Unicode, Iterable, error
|
|
|
|
|
from dmr_utils3.utils import bytes_3
|
|
|
|
|
from dmr_utils3.utils import bytes_3, bytes_4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FD_APIUserDefinedContext(object):
|
|
|
|
|
def __init__(self,CONFIG,APIQUEUE,BRIDGES):
|
|
|
|
|
def __init__(self,CONFIG,BRIDGES):
|
|
|
|
|
self.CONFIG = CONFIG
|
|
|
|
|
self.APIQUEUE = APIQUEUE
|
|
|
|
|
self.BRIDGES = BRIDGES
|
|
|
|
|
|
|
|
|
|
def getconfig(self):
|
|
|
|
|
return self.CONFIG
|
|
|
|
|
|
|
|
|
|
def getapiqueue(self):
|
|
|
|
|
return self.APIQUEUE
|
|
|
|
|
|
|
|
|
|
def getbridges(self):
|
|
|
|
|
return self.BRIDGES
|
|
|
|
|
|
|
|
|
|
def validateKey(self,dmrid,key):
|
|
|
|
|
systems = self.CONFIG['SYSTEMS']
|
|
|
|
|
dmrid = bytes_3(dmrid)
|
|
|
|
|
dmrid = bytes_4(dmrid)
|
|
|
|
|
print(dmrid)
|
|
|
|
|
for system in systems:
|
|
|
|
|
for peerid in systems[system]['PEERS']:
|
|
|
|
|
print(peerid)
|
|
|
|
|
if peerid == dmrid:
|
|
|
|
|
if key == _hash:
|
|
|
|
|
return(systems[system]['_opt_key'])
|
|
|
|
|
if key == systems[system]['_opt_key']:
|
|
|
|
|
return(system)
|
|
|
|
|
else:
|
|
|
|
|
return(False)
|
|
|
|
|
return(False)
|
|
|
|
|
|
|
|
|
|
def validateSystemKey(self,systemkey):
|
|
|
|
|
if systemkey == self.CONFIG['GLOBAL']['SYSTEM_API_KEY']:
|
|
|
|
|
@ -41,6 +40,9 @@ class FD_APIUserDefinedContext(object):
|
|
|
|
|
def queue(self,system,options):
|
|
|
|
|
self.APIQUEUE.append((system,options))
|
|
|
|
|
|
|
|
|
|
def options(self,system,options):
|
|
|
|
|
self.CONFIG['SYSTEMS'][system]['OPTIONS'] = options
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FD_API(ServiceBase):
|
|
|
|
|
_version = 0.1
|
|
|
|
|
@ -63,17 +65,17 @@ class FD_API(ServiceBase):
|
|
|
|
|
|
|
|
|
|
@rpc(Unicode,Unicode, _returns=Unicode())
|
|
|
|
|
def reset(ctx,dmrid,key):
|
|
|
|
|
system = ctx.udc.validateKey(dmrid,key)
|
|
|
|
|
system = ctx.udc.validateKey(int(dmrid),key)
|
|
|
|
|
if system:
|
|
|
|
|
ctx.udc.reset(system)
|
|
|
|
|
else:
|
|
|
|
|
raise error.InvalidCredentialsError()
|
|
|
|
|
|
|
|
|
|
@rpc(UnsignedInteger32,UnsignedInteger32,Unicode,_returns=Unicode())
|
|
|
|
|
@rpc(UnsignedInteger32,Unicode,Unicode,_returns=Unicode())
|
|
|
|
|
def setoptions(ctx,dmrid,key,options):
|
|
|
|
|
system = ctx.udc.validateKey(dmrid,key)
|
|
|
|
|
system = ctx.udc.validateKey(int(dmrid),key)
|
|
|
|
|
if system:
|
|
|
|
|
ctx.udc.queue(system,options)
|
|
|
|
|
ctx.udc.options(system,options)
|
|
|
|
|
else:
|
|
|
|
|
raise error.InvalidCredentialsError()
|
|
|
|
|
|
|
|
|
|
|