summaryrefslogtreecommitdiffstats
path: root/provisioning-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2016-12-26 21:48:41 +0000
committerTed Trask <ttrask01@yahoo.com>2016-12-26 21:48:41 +0000
commita6fb76eb348404e8489c42e6d78ea45cb63ea3e5 (patch)
tree4bb616fa016b88bc941917687727c71ff6039caa /provisioning-model.lua
parentcc1b2583ccea9efbbd563e24a675e63f809a56e7 (diff)
downloadacf-provisioning-a6fb76eb348404e8489c42e6d78ea45cb63ea3e5.tar.bz2
acf-provisioning-a6fb76eb348404e8489c42e6d78ea45cb63ea3e5.tar.xz
Add logging for forensics
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r--provisioning-model.lua40
1 files changed, 40 insertions, 0 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua
index 1b5dd54..af96546 100644
--- a/provisioning-model.lua
+++ b/provisioning-model.lua
@@ -35,6 +35,14 @@ local functions
-- ################################################################################
-- LOCAL FUNCTIONS
+local function logcall(fn)
+ if mymodule.sessiondata and mymodule.sessiondata.userinfo and mymodule.sessiondata.userinfo.userid then
+ mymodule.logevent("acf-provisioning: "..tostring(fn).." by "..tostring(mymodule.sessiondata.userinfo.userid))
+ else
+ mymodule.logevent("acf-provisioning: "..tostring(fn))
+ end
+end
+
-- This function is used by scripts, do not change prototype
local runsqlcommand = function(sql)
mymodule.logevent(sql)
@@ -666,8 +674,10 @@ mymodule.update_template = function(self, template, action, create)
end
if success then
if create then
+ logcall("create_template "..template.value.filename.value)
sql = "INSERT INTO provisioning_options VALUES((SELECT param_id FROM provisioning_params WHERE name='template'), '"..provdb.escape(template.value.label.value).."', '"..provdb.escape(template.value.filename.value).."', '"..provdb.escape(template.value.seq.value).."')"
else
+ logcall("update_template "..template.value.filename.value)
sql = "UPDATE provisioning_options SET (label, seq) = ('"..provdb.escape(template.value.label.value).."', '"..provdb.escape(template.value.seq.value).."') WHERE param_id=(SELECT param_id FROM provisioning_params WHERE name = 'template') AND value='"..provdb.escape(template.value.filename.value).."'"
end
runsqlcommand(sql)
@@ -710,6 +720,7 @@ mymodule.delete_template = function(self, delreq)
if #tmp == 0 then
delreq.value.filename.errtxt = "Template does not exist"
else
+ logcall("delete_template "..filename)
-- Remove the template
sql = "DELETE FROM provisioning_options WHERE param_id=(SELECT param_id FROM provisioning_params WHERE name = 'template') AND value='"..provdb.escape(filename).."'"
runsqlcommand(sql)
@@ -819,6 +830,7 @@ mymodule.update_class_group = function(self, group, action, create)
if success then
local sql
if create then
+ logcall("create_class_group "..group.value.label.value)
sql = "INSERT INTO provisioning_class_groups VALUES(DEFAULT, '"..provdb.escape(group.value.name.value).."', '"..provdb.escape(group.value.label.value).."', '"..provdb.escape(group.value.seq.value).."')"
runsqlcommand(sql)
sql = "SELECT class_group_id FROM provisioning_class_groups WHERE label='"..provdb.escape(group.value.label.value).."'"
@@ -829,6 +841,7 @@ mymodule.update_class_group = function(self, group, action, create)
error("Failed to insert class group", 0)
end
else
+ logcall("update_class_group "..group.value.class_group_id.value)
sql = "UPDATE provisioning_class_groups SET (name, label, seq) = ('"..provdb.escape(group.value.name.value).."', '"..provdb.escape(group.value.label.value).."', '"..provdb.escape(group.value.seq.value).."') WHERE class_group_id='"..provdb.escape(group.value.class_group_id.value).."'"
runsqlcommand(sql)
end
@@ -869,6 +882,7 @@ mymodule.delete_class_group = function(self, delreq)
if #tmp == 0 then
delreq.value.class_group_id.errtxt = "Group does not exist"
else
+ logcall("delete_class_group "..class_group_id)
sql = "DELETE FROM provisioning_class_groups WHERE class_group_id='"..provdb.escape(class_group_id).."'"
runsqlcommand(sql)
delreq.errtxt = nil
@@ -999,6 +1013,7 @@ mymodule.update_class = function(self, class, action, create)
if success then
local sql
if create then
+ logcall("create_class "..class.value.label.value)
sql = "INSERT INTO provisioning_classes VALUES(DEFAULT, '"..provdb.escape(class.value.class_group_id.value).."', '"..provdb.escape(class.value.label.value).."', '"..provdb.escape(class.value.seq.value).."')"
runsqlcommand(sql)
sql = "SELECT class_id FROM provisioning_classes WHERE class_group_id='"..provdb.escape(class.value.class_group_id.value).."' AND label='"..provdb.escape(class.value.label.value).."'"
@@ -1009,6 +1024,7 @@ mymodule.update_class = function(self, class, action, create)
error("Failed to insert class", 0)
end
else
+ logcall("update_class "..class.value.class_id.value)
sql = "UPDATE provisioning_classes SET (class_group_id, label, seq) = ('"..provdb.escape(class.value.class_group_id.value).."', '"..provdb.escape(class.value.label.value).."', '"..provdb.escape(class.value.seq.value).."') WHERE class_id='"..provdb.escape(class.value.class_id.value).."'"
runsqlcommand(sql)
sql = "DELETE FROM classes_to_param_groups WHERE class_id='"..provdb.escape(class.value.class_id.value).."'"
@@ -1058,6 +1074,7 @@ mymodule.delete_class = function(self, delreq)
if #tmp == 0 then
delreq.value.class_id.errtxt = "Class does not exist"
else
+ logcall("delete_class "..class_id)
sql = "DELETE FROM classes_to_param_groups WHERE class_id='"..provdb.escape(class_id).."'"
runsqlcommand(sql)
sql = "DELETE FROM provisioning_classes WHERE class_id='"..provdb.escape(class_id).."'"
@@ -1222,6 +1239,7 @@ mymodule.update_group = function(self, group, action, create)
end
if success then
if create then
+ logcall("create_group "..group.value.label.value)
sql = "INSERT INTO provisioning_groups VALUES(DEFAULT, '"..provdb.escape(group.value.name.value).."', '"..provdb.escape(group.value.label.value).."', '"..provdb.escape(group.value.seq.value).."')"
runsqlcommand(sql)
sql = "SELECT group_id FROM provisioning_groups WHERE name='"..provdb.escape(group.value.name.value).."' AND label='"..provdb.escape(group.value.label.value).."'"
@@ -1232,6 +1250,7 @@ mymodule.update_group = function(self, group, action, create)
error("Failed to insert parameter group", 0)
end
else
+ logcall("update_group "..group.value.group_id.value)
sql = "UPDATE provisioning_groups SET (name, label, seq) = ('"..provdb.escape(group.value.name.value).."', '"..provdb.escape(group.value.label.value).."', '"..provdb.escape(group.value.seq.value).."') WHERE group_id='"..provdb.escape(group.value.group_id.value).."'"
runsqlcommand(sql)
sql = "DELETE FROM param_groups_to_params WHERE group_id='"..provdb.escape(group.value.group_id.value).."'"
@@ -1303,6 +1322,7 @@ mymodule.delete_group = function(self, delreq)
if #tmp == 0 then
delreq.value.group_id.errtxt = "Group does not exist"
else
+ logcall("delete_group "..group_id)
sql = "DELETE FROM param_groups_to_params WHERE group_id='"..provdb.escape(group_id).."'"
runsqlcommand(sql)
sql = "DELETE FROM provisioning_groups WHERE group_id='"..provdb.escape(group_id).."'"
@@ -1429,6 +1449,7 @@ mymodule.update_param = function(self, param, action, create)
if success then
local sql
if create then
+ logcall("create_param "..param.value.label.value)
sql = "INSERT INTO provisioning_params VALUES(DEFAULT, '"..provdb.escape(param.value.name.value).."', '"..provdb.escape(param.value.type.value).."', '"..provdb.escape(param.value.label.value).."', '"..provdb.escape(param.value.descr.value).."', '"..provdb.escape(param.value.value.value).."', '"..provdb.escape(param.value.seq.value).."', '"..provdb.escape(param.value.regexp.value).."', '"..provdb.escape(format.dostounix(param.value.validate.value)).."')"
runsqlcommand(sql)
sql = "SELECT param_id FROM provisioning_params WHERE name='"..provdb.escape(param.value.name.value).."' AND label='"..provdb.escape(param.value.label.value).."'"
@@ -1439,6 +1460,7 @@ mymodule.update_param = function(self, param, action, create)
error("Failed to insert parameter", 0);
end
else
+ logcall("update_param "..param.value.param_id.value)
sql = "UPDATE provisioning_params SET (name, type, label, descr, value, seq, regexp, validate) = ('"..provdb.escape(param.value.name.value).."', '"..provdb.escape(param.value.type.value).."', '"..provdb.escape(param.value.label.value).."', '"..provdb.escape(param.value.descr.value).."', '"..provdb.escape(param.value.value.value).."', '"..provdb.escape(param.value.seq.value).."', '"..provdb.escape(param.value.regexp.value).."', '"..provdb.escape(format.dostounix(param.value.validate.value)).."') WHERE param_id='"..provdb.escape(param.value.param_id.value).."'"
runsqlcommand(sql)
end
@@ -1493,6 +1515,7 @@ mymodule.delete_param = function(self, delreq)
if #tmp == 0 then
delreq.value.param_id.errtxt = "Parameter does not exist"
else
+ logcall("delete_param "..param_id)
sql = "DELETE FROM provisioning_options WHERE param_id='"..provdb.escape(param_id).."'"
runsqlcommand(sql)
sql = "DELETE FROM provisioning_params WHERE param_id='"..provdb.escape(param_id).."'"
@@ -1655,6 +1678,9 @@ mymodule.update_device = function(self, device, action, create)
if tmp and #tmp>0 then
device.value.device_id.value = tmp[1].nextval
end
+ logcall("create_device "..device.value.device_id.value)
+ else
+ logcall("update_device "..device.value.device_id.value)
end
sql = "DELETE FROM devices_to_classes WHERE device_id='"..provdb.escape(device.value.device_id.value).."'"
runsqlcommand(sql)
@@ -1720,6 +1746,7 @@ mymodule.delete_device = function(self, delreq)
if #tmp == 0 then
delreq.value.device_id.errtxt = "Device does not exist"
else
+ logcall("delete_device "..device_id)
if not saved_device_params[device_id] then get_device_params(device_id) end
if not saved_devices[device_id] then get_device(device_id) end
@@ -1807,10 +1834,16 @@ mymodule.get_class_values = function(self, retval)
end
mymodule.set_editable_device_params = function(self, params)
+ if params and params.value and params.value.device_id and params.value.device_id.value then
+ logcall("set_editable_device_params "..params.value.device_id.value)
+ end
return set_device_params(params, true)
end
mymodule.set_all_device_params = function(self, params)
+ if params and params.value and params.value.device_id and params.value.device_id.value then
+ logcall("set_all_device_params "..params.value.device_id.value)
+ end
return set_device_params(params, false)
end
@@ -1978,6 +2011,7 @@ mymodule.set_param_options = function(self, options)
errtxt = "Parameter does not exist"
end
if success then
+ logcall("set_param_options "..options.value.param_id.value)
-- Delete all options for this device
local sql = "DELETE FROM provisioning_options WHERE param_id='"..provdb.escape(options.value.param_id.value).."'"
runsqlcommand(sql)
@@ -2014,6 +2048,9 @@ function mymodule.get_filedetails(self, clientdata)
end
function mymodule.update_filedetails(self, filedetails)
+ if filedetails and filedetails.value and filedetails.value.filename and filedetails.value.filename.value then
+ logcall("update_filedetails "..filedetails.value.filename.value)
+ end
return modelfunctions.setfiledetails(self, filedetails, scriptfiles, validatefiledetails)
end
@@ -2299,6 +2336,7 @@ mymodule.delete_request = function(self, delreq)
if #tmp == 0 then
delreq.value.mac.errtxt = "Request does not exist"
else
+ logcall("delete_request "..string.upper(mac))
-- Remove the request
sql = "DELETE FROM provisioning_requests WHERE mac='"..provdb.escape(string.upper(mac)).."'"
runsqlcommand(sql)
@@ -2332,6 +2370,7 @@ mymodule.create_from_request = function(self, request)
if #tmp == 0 then
request.value.mac.errtxt = "Request does not exist"
else
+ logcall("create_from_request "..string.upper(request.value.mac.value))
-- Determine which class to use (need a class that specifies a template)
local c = mymodule.list_classes()
local class, group = callscript(determineclassscriptfile, tmp[1].agent, c)
@@ -2383,6 +2422,7 @@ mymodule.get_bulk_create_request = function(self, clientdata)
end
mymodule.bulk_create_devices = function(self, devicelist)
+ logcall("bulk_create_devices")
local connected
-- To allow uploading a file, check the bulkdevicedata format
-- Haserl will pass a temporary file name if a file is uploaded