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