Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(SIPI): add timestamp to some SIPI Lua logs #2311

Merged
merged 7 commits into from Nov 30, 2022
41 changes: 25 additions & 16 deletions sipi/scripts/sipi.init.lua
Expand Up @@ -20,14 +20,16 @@ require "get_knora_session"
-- filepath: server-path where the master file is located
-------------------------------------------------------------------------------
function pre_flight(prefix, identifier, cookie)
server.log("pre_flight called in sipi.init.lua", server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight called in sipi.init.lua", server.loglevel.LOG_DEBUG)
BalduinLandolt marked this conversation as resolved.
Show resolved Hide resolved

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible to also have miliseconds in the timestamp? This would later be useful when it comes to measuring durations (metrics).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not without using a different library, which I wanted to avoid

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this proved to be too annoying because in our Lua setup we don't have a package manager or anything. So I'd rather leave it out for now.
If you need millisecond precise time measurements, that is however possible:

before = os.clock()
-- do the work
after = os.clock()
duration = (after - before) * 1000
log("work took " .. duration .. "ms")


if config.prefix_as_path then
filepath = config.imgroot .. '/' .. prefix .. '/' .. identifier
else
filepath = config.imgroot .. '/' .. identifier
end

server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - filepath: " .. filepath, server.loglevel.LOG_DEBUG)

if prefix == "thumbs" then
-- always allow thumbnails
return 'allow', filepath
Expand All @@ -49,10 +51,11 @@ function pre_flight(prefix, identifier, cookie)

if session == nil or session["name"] == nil or session["id"] == nil then
-- no session could be extracted
server.log("cookie key is invalid: " .. cookie, server.loglevel.LOG_ERR)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - cookie key is invalid: " .. cookie, server.loglevel.LOG_ERR)
else
knora_cookie_header = { Cookie = session["name"] .. "=" .. session["id"] }
server.log("pre_flight - knora_cookie_header: " .. knora_cookie_header["Cookie"], server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - knora_cookie_header: " ..
knora_cookie_header["Cookie"], server.loglevel.LOG_DEBUG)
end
end

Expand All @@ -63,7 +66,8 @@ function pre_flight(prefix, identifier, cookie)
if webapi_hostname == nil then
webapi_hostname = config.knora_path
end
server.log("webapi_hostname: " .. webapi_hostname, server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - webapi_hostname: " .. webapi_hostname,
server.loglevel.LOG_DEBUG)

--
-- Allows to set SIPI_WEBAPI_PORT environment variable and use its value.
Expand All @@ -72,36 +76,39 @@ function pre_flight(prefix, identifier, cookie)
if webapi_port == nil then
webapi_port = config.knora_port
end
server.log("webapi_port: " .. webapi_port, server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - webapi_port: " .. webapi_port, server.loglevel.LOG_DEBUG)

knora_url = 'http://' .. webapi_hostname .. ':' .. webapi_port .. '/admin/files/' .. prefix .. '/' .. identifier

-- print("knora_url: " .. knora_url)
server.log("pre_flight - knora_url: " .. knora_url, server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - knora_url: " .. knora_url, server.loglevel.LOG_DEBUG)

success, result = server.http("GET", knora_url, knora_cookie_header, 5000)

-- check HTTP request was successful
if not success then
server.log("Server.http() failed: " .. result, server.loglevel.LOG_ERR)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - Server.http() failed: " .. result,
server.loglevel.LOG_ERR)
return 'deny'
end

if result.status_code ~= 200 then
server.log("Knora returned HTTP status code " .. result.status_code, server.loglevel.LOG_ERR)
server.log(result.body, server.loglevel.LOG_ERR)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - Knora returned HTTP status code " ..
BalduinLandolt marked this conversation as resolved.
Show resolved Hide resolved
result.status_code, server.loglevel.LOG_ERR)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - result body: " .. result.body, server.loglevel.LOG_ERR)
return 'deny'
end

server.log("pre_flight - response body: " .. tostring(result.body), server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - response body: " .. tostring(result.body),
server.loglevel.LOG_DEBUG)

success, response_json = server.json_to_table(result.body)
if not success then
server.log("Server.http() failed: " .. response_json, server.loglevel.LOG_ERR)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - Server.http() failed: " .. response_json, server.loglevel.LOG_ERR)
return 'deny'
end

server.log("pre_flight - permission code: " .. response_json.permissionCode, server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - permission code: " .. response_json.permissionCode,
server.loglevel.LOG_DEBUG)

if response_json.permissionCode == 0 then
BalduinLandolt marked this conversation as resolved.
Show resolved Hide resolved
-- no view permission on file
Expand All @@ -117,15 +124,17 @@ function pre_flight(prefix, identifier, cookie)
-- server.log("pre_flight - restricted view settings - watermark: " .. tostring(response_json.restrictedViewSettings.watermark), server.loglevel.LOG_DEBUG)
BalduinLandolt marked this conversation as resolved.
Show resolved Hide resolved

if response_json.restrictedViewSettings.size ~= nil then
server.log("pre_flight - restricted view settings - size: " ..
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - restricted view settings - size: " ..
tostring(response_json.restrictedViewSettings.size), server.loglevel.LOG_DEBUG)
restrictedViewSize = response_json.restrictedViewSettings.size
else
server.log("pre_flight - using default restricted view size", server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - using default restricted view size",
server.loglevel.LOG_DEBUG)
restrictedViewSize = config.thumb_size
end
else
server.log("pre_flight - using default restricted view size", server.loglevel.LOG_DEBUG)
server.log(os.date("!%Y-%m-%dT%H:%M:%S") .. " - pre_flight - using default restricted view size",
server.loglevel.LOG_DEBUG)
restrictedViewSize = config.thumb_size
end

Expand Down