summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2015-11-20 21:46:04 +0000
committerTed Trask <ttrask01@yahoo.com>2015-11-20 21:46:04 +0000
commit92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e (patch)
tree1032c944e2030d464f3384fdec47c89bd44ab5b7
parentc653804d7ca2c0b6c2c60b58f6cc41a6eb8b1519 (diff)
downloadacf-alpine-baselayout-92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e.tar.bz2
acf-alpine-baselayout-92baed49c0b6780fbd55ebb2e0fb9b1ee13e220e.tar.xz
Better error handling for view/tail/download and fix download to use proper cfe for input
-rw-r--r--logfiles-controller.lua11
-rw-r--r--logfiles-model.lua26
2 files changed, 22 insertions, 15 deletions
diff --git a/logfiles-controller.lua b/logfiles-controller.lua
index 54548be..b4c1cc4 100644
--- a/logfiles-controller.lua
+++ b/logfiles-controller.lua
@@ -18,10 +18,13 @@ mymodule.view = function (self)
end
mymodule.download = function (self)
- local filestatus = mymodule.view(self)
- local filecontent = filestatus.value.filecontent
- filecontent.label = posix.basename(filestatus.value.filename.value)
- return filecontent
+ local filedetails = mymodule.view(self)
+ local filecontent = filedetails.value.filecontent
+ if filecontent then
+ filecontent.type = "raw"
+ filecontent.label = posix.basename(filedetails.value.filename.value)
+ end
+ return filedetails
end
mymodule.tail = function (self)
diff --git a/logfiles-model.lua b/logfiles-model.lua
index fb19ec1..bf6aa4d 100644
--- a/logfiles-model.lua
+++ b/logfiles-model.lua
@@ -94,31 +94,34 @@ mymodule.get_filedetails = function(self, clientdata)
break
end
end
- local file = retval.value.filename.value
if success then
+ local file = retval.value.filename.value
local st = fs.stat(file)
while st.type == "link" do
st = fs.stat(posix.readlink(st.path))
end
file = st.path
- end
- local filedetails = modelfunctions.getfiledetails(file, function(filename) return success end)
- for n,v in pairs(filedetails.value) do
- if n ~= "filename" then
- retval.value[n] = v
+
+ local filedetails = modelfunctions.getfiledetails(file)
+ for n,v in pairs(filedetails.value) do
+ if n ~= "filename" then
+ retval.value[n] = v
+ end
+ end
+ if filedetails.errtxt then
+ retval.errtxt = filedetails.errtxt
+ else
+ do_grep(retval.value.filecontent, retval.value.grep.value)
end
- end
- if filedetails.errtxt then
- retval.errtxt = filedetails.errtxt
else
- do_grep(retval.value.filecontent, retval.value.grep.value)
+ retval.errtxt = "Invalid log file"
end
return retval
end
mymodule.tail = function(self, clientdata)
local retval = cfe({ type="group", value={}, label="Tail Logfile" })
- retval.value.filename = cfe({ label="File name", errtxt="File not found", key=true })
+ retval.value.filename = cfe({ label="File name", key=true })
retval.value.offset = cfe({ value="0", label="File offset", key=true })
retval.value.grep = cfe({ label="Grep", key=true })
self.handle_clientdata(retval, clientdata)
@@ -126,6 +129,7 @@ mymodule.tail = function(self, clientdata)
retval.value.filesize = cfe({ value="0", label="File size" })
retval.value.filecontent = cfe({ type="longtext", label="File content" })
+ retval.value.filename.errtxt = "File not found"
local available_files = mymodule.get()
for i,file in ipairs(available_files.value) do
if ( file.value.filename.value == retval.value.filename.value ) then