Scripting in presets

User defined scripts can now be used in presets allowing dynamic values
and complex provisioning workflow.
This commit is contained in:
Zaid Abdulla committed 2016-03-26 02:16:37 +03:00
1 parent ba33fc0fe0
commit 48d9adbaff
7 files changed
+441 -117

No files matched your search

+10 -3
View File
@@ -44,10 +44,10 @@ zlib = require 'zlib'
config = require './config'
common = require './common'
soap = require './soap'
db = require './db'
session = require './session'
query = require './query'
device = require './device'
cache = require './cache'
writeResponse = (currentRequest, res) ->
@@ -104,7 +104,11 @@ inform = (currentRequest, cwmpRequest) ->
applyPresets = (currentRequest) ->
db.getPresetsObjectsAliases((presets, objects, aliases) ->
cache.getPresets((err, presetsHash, presets) ->
throw err if err
currentRequest.sessionData.presetsHash = presetsHash
parameters = {}
for p in presets
for a in Object.keys(query.queryProjection(p.precondition))
@@ -126,10 +130,12 @@ applyPresets = (currentRequest) ->
for p in presets
if query.test(parameters, p.precondition)
session.addPreset(currentRequest.sessionData, p._id, p)
session.addProvisions(currentRequest.sessionData, p.provisions)
session.rpcRequest(currentRequest.sessionData, null, (err, id, rpcRequest) ->
throw err if err
if not rpcRequest?
session.clearProvisions(currentRequest.sessionData)
sendRpcRequest(currentRequest, id, rpcRequest)
)
)
@@ -140,6 +146,7 @@ nextRpc = (currentRequest) ->
session.rpcRequest(currentRequest.sessionData, null, (err, id, rpcRequest) ->
throw err if err
if not rpcRequest?
session.clearProvisions(currentRequest.sessionData)
return applyPresets(currentRequest)
sendRpcRequest(currentRequest, id, rpcRequest)