Change load API.

Use {caller|callee}_{usr|peer}_load().
peer_load just copies peer prefs to real prefs.
squeeze-backports
Victor Seva 13 years ago
parent 3de1d495dc
commit 1a1d09fea9

@ -57,34 +57,44 @@ NGCP_MT = { __index = NGCP }
return t return t
end end
function NGCP:caller_load(uuid, domain, peer) function NGCP:caller_peer_load(peer)
local keys = self.prefs.peer:caller_load(peer)
self.prefs.real:caller_usr_load(keys)
return keys
end
function NGCP:callee_peer_load(peer)
local keys = self.prefs.peer:callee_load(peer)
self.prefs.real:callee_peer_load(keys)
return keys
end
function NGCP:caller_usr_load(uuid, domain)
local keys = { local keys = {
domain = self.prefs.dom:caller_load(domain), domain = self.prefs.dom:caller_load(domain),
user = self.prefs.usr:caller_load(uuid), user = self.prefs.usr:caller_load(uuid)
peer = self.prefs.peer:caller_load(peer)
} }
local unique_keys = table.deepcopy(keys.domain) local unique_keys = table.deepcopy(keys.domain)
local _,v local _,v
for _,v in pairs(keys.user) do for _,v in pairs(keys.user) do
table.add(unique_keys, v) table.add(unique_keys, v)
end end
self.prefs.real:caller_load(unique_keys) self.prefs.real:caller_usr_load(unique_keys)
return {real = unique_keys, peer = keys.peer} return unique_keys
end end
function NGCP:callee_load(uuid, domain, peer) function NGCP:callee_usr_load(uuid, domain)
local keys = { local keys = {
domain = self.prefs.dom:callee_load(domain), domain = self.prefs.dom:callee_load(domain),
user = self.prefs.usr:callee_load(uuid), user = self.prefs.usr:callee_load(uuid)
peer = self.prefs.peer:caller_load(peer)
} }
local unique_keys = table.deepcopy(keys.domain) local unique_keys = table.deepcopy(keys.domain)
local _,v local _,v
for _,v in pairs(keys.user) do for _,v in pairs(keys.user) do
table.add(unique_keys, v) table.add(unique_keys, v)
end end
self.prefs.real:callee_load(unique_keys) self.prefs.real:callee_usr_load(unique_keys)
return {real = unique_keys, peer = keys.peer} return unique_keys
end end
function NGCP:clean(vtype, group) function NGCP:clean(vtype, group)

@ -13,15 +13,44 @@ NGCPRealPrefs_MT = { __index = NGCPRealPrefs }
return setmetatable( t, NGCPRealPrefs_MT ) return setmetatable( t, NGCPRealPrefs_MT )
end end
function NGCPRealPrefs:caller_load(keys) function NGCPRealPrefs:caller_peer_load(keys)
return NGCPRealPrefs:_load("caller", keys) return NGCPRealPrefs:_peer_load("caller", keys)
end end
function NGCPRealPrefs:callee_load(keys) function NGCPRealPrefs:callee_peer_load(keys)
return NGCPRealPrefs:_load("callee", keys) return NGCPRealPrefs:_peer_load("callee", keys)
end end
function NGCPRealPrefs:_load(level, keys) function NGCPRealPrefs:caller_usr_load(keys)
return NGCPRealPrefs:_usr_load("caller", keys)
end
function NGCPRealPrefs:callee_usr_load(keys)
return NGCPRealPrefs:_usr_load("callee", keys)
end
function NGCPRealPrefs:_peer_load(level, keys)
local _,v
local xavp = {
real = NGCPRealPrefs:xavp(level),
peer = NGCPPeerPrefs:xavp(level),
}
local real_keys = {}
local value
for _,v in pairs(keys) do
value = xavp.peer(v)
if value then
table.add(real_keys, v)
--sr.log("info", string.format("key:%s value:%s", v, value))
xavp.real(v, value)
else
sr.log("err", string.format("key:%s not in user or domain", v))
end
end
return real_keys
end
function NGCPRealPrefs:_usr_load(level, keys)
local _,v local _,v
local xavp = { local xavp = {
real = NGCPRealPrefs:xavp(level), real = NGCPRealPrefs:xavp(level),

@ -64,12 +64,20 @@ TestNGCP = {} --class
assertTrue(self.ngcp.prefs.real) assertTrue(self.ngcp.prefs.real)
end end
function TestNGCP:test_load_caller() function TestNGCP:test_caller_usr_load_empty()
assertEquals(self.ngcp:caller_load(), {real={}, peer={}}) assertEquals(self.ngcp:caller_usr_load(), {})
end end
function TestNGCP:test_load_callee() function TestNGCP:test_callee_usr_load_empty()
assertEquals(self.ngcp:callee_load(), {real={}, peer={}}) assertEquals(self.ngcp:callee_usr_load(), {})
end
function TestNGCP:test_caller_peer_load_empty()
assertEquals(self.ngcp:caller_peer_load(), {})
end
function TestNGCP:test_callee_peer_load_empty()
assertEquals(self.ngcp:callee_peer_load(), {})
end end
function TestNGCP:test_clean() function TestNGCP:test_clean()

@ -65,23 +65,41 @@ TestNGCPRealPrefs = {} --class
assertError(self.real.callee_load, nil) assertError(self.real.callee_load, nil)
end end
function TestNGCPRealPrefs:test_caller_load() function TestNGCPRealPrefs:test_caller_peer_load()
local keys = {"uno"} local keys = {"uno"}
local xavp = { local xavp = {
domain = NGCPDomainPrefs:xavp("caller"), domain = NGCPDomainPrefs:xavp("caller"),
user = NGCPUserPrefs:xavp("caller"), user = NGCPUserPrefs:xavp("caller"),
peer = NGCPPeerPrefs:xavp("caller"),
real = NGCPRealPrefs:xavp("caller") real = NGCPRealPrefs:xavp("caller")
} }
xavp.domain("uno",1) xavp.domain("uno",1)
assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1) assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1)
xavp.user("uno",2) xavp.user("uno",2)
assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>uno)"),2) assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>uno)"),2)
local real_keys = self.real:caller_load(keys) xavp.peer("uno",3)
local real_keys = self.real:caller_peer_load(keys)
assertEquals(real_keys, keys)
assertEquals(xavp.real("uno"),3)
end
function TestNGCPRealPrefs:test_caller_usr_load()
local keys = {"uno"}
local xavp = {
domain = NGCPDomainPrefs:xavp("caller"),
user = NGCPUserPrefs:xavp("caller"),
real = NGCPRealPrefs:xavp("caller")
}
xavp.domain("uno",1)
assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1)
xavp.user("uno",2)
assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>uno)"),2)
local real_keys = self.real:caller_usr_load(keys)
assertEquals(real_keys, keys) assertEquals(real_keys, keys)
assertEquals(xavp.real("uno"),2) assertEquals(xavp.real("uno"),2)
end end
function TestNGCPRealPrefs:test_caller_load1() function TestNGCPRealPrefs:test_caller_usr_load1()
local keys = {"uno", "dos"} local keys = {"uno", "dos"}
local xavp = { local xavp = {
domain = NGCPDomainPrefs:xavp("caller"), domain = NGCPDomainPrefs:xavp("caller"),
@ -92,13 +110,13 @@ TestNGCPRealPrefs = {} --class
assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1) assertEquals(sr.pv.get("$xavp(caller_dom_prefs=>uno)"),1)
xavp.user("dos",2) xavp.user("dos",2)
assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dos)"),2) assertEquals(sr.pv.get("$xavp(caller_usr_prefs=>dos)"),2)
local real_keys = self.real:caller_load(keys) local real_keys = self.real:caller_usr_load(keys)
assertEquals(real_keys, keys) assertEquals(real_keys, keys)
assertEquals(xavp.real("uno"),1) assertEquals(xavp.real("uno"),1)
assertEquals(xavp.real("dos"),2) assertEquals(xavp.real("dos"),2)
end end
function TestNGCPRealPrefs:test_callee_load() function TestNGCPRealPrefs:test_callee_usr_load()
local keys = {"uno"} local keys = {"uno"}
local xavp = { local xavp = {
domain = NGCPDomainPrefs:xavp("callee"), domain = NGCPDomainPrefs:xavp("callee"),
@ -109,12 +127,12 @@ TestNGCPRealPrefs = {} --class
assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1) assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1)
xavp.user("uno",2) xavp.user("uno",2)
assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>uno)"),2) assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>uno)"),2)
local real_keys = self.real:callee_load(keys) local real_keys = self.real:callee_usr_load(keys)
assertEquals(real_keys, keys) assertEquals(real_keys, keys)
assertEquals(xavp.real("uno"),2) assertEquals(xavp.real("uno"),2)
end end
function TestNGCPRealPrefs:test_callee_load1() function TestNGCPRealPrefs:test_callee_usr_load1()
local keys = {"uno", "dos"} local keys = {"uno", "dos"}
local xavp = { local xavp = {
domain = NGCPDomainPrefs:xavp("callee"), domain = NGCPDomainPrefs:xavp("callee"),
@ -125,7 +143,7 @@ TestNGCPRealPrefs = {} --class
assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1) assertEquals(sr.pv.get("$xavp(callee_dom_prefs=>uno)"),1)
xavp.user("dos",2) xavp.user("dos",2)
assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dos)"),2) assertEquals(sr.pv.get("$xavp(callee_usr_prefs=>dos)"),2)
local real_keys = self.real:callee_load(keys) local real_keys = self.real:callee_usr_load(keys)
assertEquals(real_keys, keys) assertEquals(real_keys, keys)
assertEquals(xavp.real("uno"),1) assertEquals(xavp.real("uno"),1)
assertEquals(xavp.real("dos"),2) assertEquals(xavp.real("dos"),2)

Loading…
Cancel
Save