Fixed another bug related to aliases cache clearing.

This commit is contained in:
Zaid Abdulla committed 2014-01-19 16:10:39 +03:00
1 parent 55b4770742
commit 99c60b054e
1 file changed
+6 -5
+6 -5
View File
@@ -75,10 +75,8 @@ updateDevice = (currentRequest, actions, callback) ->
updates["#{i[0]}._name"] = i[1] updates["#{i[0]}._name"] = i[1]
if actions.parameterNames? if actions.parameterNames?
newAliases = [] # possible new aliased parameters newAliases = {} # possible new aliased parameters
for p in actions.parameterNames for p in actions.parameterNames
newAliases.push(p[0]) if parameters.getAlias(p[0])?
if OBJECT_REGEX.test(p[0]) if OBJECT_REGEX.test(p[0])
path = p[0] path = p[0]
if INSTANCE_REGEX.test(p[0]) if INSTANCE_REGEX.test(p[0])
@@ -90,6 +88,9 @@ updateDevice = (currentRequest, actions, callback) ->
updates["#{path}_writable"] = p[1] if p[1]? updates["#{path}_writable"] = p[1] if p[1]?
updates["#{path}_timestamp"] = now updates["#{path}_timestamp"] = now
# Add parameter (sans any dot suffix) if has an alias
newAliases[pp] = a if (a = parameters.getAlias(pp = path.slice(0, -1)))?
if actions.customCommands? if actions.customCommands?
for p in actions.customCommands for p in actions.customCommands
commandName = p[0] commandName = p[0]
@@ -108,8 +109,8 @@ updateDevice = (currentRequest, actions, callback) ->
throw err if err throw err if err
return if not res? return if not res?
aliases = JSON.parse(res) aliases = JSON.parse(res)
for a in newAliases for p, a of newAliases
if not aliases[a]? if not aliases[a]? or p not in aliases[a]
db.redisClient.del('aliases', (err, res) -> db.redisClient.del('aliases', (err, res) ->
throw err if err throw err if err
) )