do
local function init_disks(conts)
local dpoint = {};
local dring = dictionary.dict();
while conts
do
if conts.value == nil then
break;
end
if string.sub(conts.value, -1) == ';' then
conts.value = string.sub(conts.value, 1, #conts.value - 1);
end
disks = tool.split(tostring(conts.value) , ';');
for k,v in ipairs(disks)
do
for i = 1, 500
do
seed = string.format('%s-%03d', v, i);
--ngx.say('seed = ' .. seed .. '
');
point = ring.str2point(seed);
--ngx.say('point = ' .. point .. '
');
dring.set(point, v);
table.insert(dpoint, point);
end
end
if conts.next.value ~= nil then
conts = conts.next;
else
break;
end
end
table.sort(dpoint);
return dpoint, dring;
end
local function rfind(str, substr)
local len = #str;
local sublen = #substr;
while len > 0
do
istr = string.sub(str, len - 1, len - 2 + sublen);
if istr == substr then
return len - 1;
end
len = len - 1;
end
return nil;
end
dbase = {
init_disks = init_disks,
rfind = rfind;
}
end