diff options
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r-- | provisioning-model.lua | 143 |
1 files changed, 93 insertions, 50 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua index de2f748..2c41810 100644 --- a/provisioning-model.lua +++ b/provisioning-model.lua @@ -461,30 +461,36 @@ update_template = function(self, template, action, create) return template end -delete_template = function(filename) - local result = "" - local errtxt +get_delete_template = function(self, clientdata) + local retval = {} + retval.filename = cfe({ value=clientdata.filename or "", label="File Name" }) + return cfe({ type="group", value=retval, label="Delete Template" }) +end + +delete_template = function(self, delreq) + local filename = delreq.value.filename.value + delreq.errtxt = "Failed to delete template" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_options WHERE param_id=(SELECT param_id FROM provisioning_params WHERE name = 'template') AND value='"..escape(filename).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Template does not exist" + delreq.value.filename.errtxt = "Template does not exist" else -- Remove the template sql = "DELETE FROM provisioning_options WHERE param_id=(SELECT param_id FROM provisioning_params WHERE name = 'template') AND value='"..escape(filename).."'" runsqlcommand(sql) -- Delete the template file os.remove(filename) - result = "Template Deleted" + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Template Result" }) + return delreq end list_class_groups = function() @@ -605,27 +611,33 @@ update_class_group = function(self, group, action, create) return group end -delete_class_group = function(class_group_id) - local result = "" - local errtxt +get_delete_class_group = function(self, clientdata) + local retval = {} + retval.class_group_id = cfe({ value=clientdata.class_group_id or "", label="Class Group ID" }) + return cfe({ type="group", value=retval, label="Delete Class Group" }) +end + +delete_class_group = function(self, delreq) + local class_group_id = delreq.value.class_group_id.value + delreq.errtxt = "Failed to delete class group" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_class_groups WHERE class_group_id='"..escape(class_group_id).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Group does not exist" + delreq.value.class_group_id.errtxt = "Group does not exist" else sql = "DELETE FROM provisioning_class_groups WHERE class_group_id='"..escape(class_group_id).."'" runsqlcommand(sql) - result = "Class Group Deleted" + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Class Group Result" }) + return delreq end list_classes = function() @@ -779,15 +791,21 @@ update_class = function(self, class, action, create) return class end -delete_class = function(class_id) - local result = "" - local errtxt +get_delete_class = function(self, clientdata) + local retval = {} + retval.class_id = cfe({ value=clientdata.class_id or "", label="Class ID" }) + return cfe({ type="group", value=retval, label="Delete Class" }) +end + +delete_class = function(self, delreq) + local class_id = delreq.value.class_id.value + delreq.errtxt = "Failed to delete class" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_classes WHERE class_id='"..escape(class_id).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Class does not exist" + delreq.value.class_id.errtxt = "Class does not exist" else sql = "BEGIN TRANSACTION" runsqlcommand(sql) @@ -795,18 +813,18 @@ delete_class = function(class_id) runsqlcommand(sql, true) sql = "DELETE FROM provisioning_classes WHERE class_id='"..escape(class_id).."'" runsqlcommand(sql, true) - result = "Class Deleted" sql = "COMMIT" runsqlcommand(sql) + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then pcall(function() con:execute("ROLLBACK") end) - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Class Result" }) + return delreq end list_groups = function() @@ -991,15 +1009,21 @@ update_group = function(self, group, action, create) return group end -delete_group = function(group_id) - local result = "" - local errtxt +get_delete_group = function(self, clientdata) + local retval = {} + retval.group_id = cfe({ value=clientdata.group_id or "", label="Group ID" }) + return cfe({ type="group", value=retval, label="Delete Group" }) +end + +delete_group = function(self, delreq) + local group_id = delreq.value.group_id.value + delreq.errtxt = "Failed to delete parameter group" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_groups WHERE group_id='"..escape(group_id).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Group does not exist" + delreq.value.group_id.errtxt = "Group does not exist" else sql = "BEGIN TRANSACTION" runsqlcommand(sql) @@ -1007,18 +1031,18 @@ delete_group = function(group_id) runsqlcommand(sql, true) sql = "DELETE FROM provisioning_groups WHERE group_id='"..escape(group_id).."'" runsqlcommand(sql, true) - result = "Parameter Group Deleted" sql = "COMMIT" runsqlcommand(sql) + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then pcall(function() con:execute("ROLLBACK") end) - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Parameter Group Result" }) + return delreq end list_params = function() @@ -1150,15 +1174,21 @@ update_param = function(self, param, action, create) return param end -delete_param = function(param_id) - local result = "" - local errtxt +get_delete_param = function(self, clientdata) + local retval = {} + retval.param_id = cfe({ value=clientdata.param_id or "", label="Param ID" }) + return cfe({ type="group", value=retval, label="Delete Param" }) +end + +delete_param = function(self, delreq) + local param_id = delreq.value.param_id.value + delreq.errtxt = "Failed to delete parameter" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_params WHERE param_id='"..escape(param_id).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Parameter does not exist" + delreq.value.param_id.errtxt = "Parameter does not exist" else sql = "BEGIN TRANSACTION" runsqlcommand(sql) @@ -1166,18 +1196,18 @@ delete_param = function(param_id) runsqlcommand(sql, true) sql = "DELETE FROM provisioning_params WHERE param_id='"..escape(param_id).."'" runsqlcommand(sql, true) - result = "Parameter Deleted" sql = "COMMIT" runsqlcommand(sql) + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then pcall(function() con:execute("ROLLBACK") end) - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Parameter Result" }) + return delreq end list_devices = function() @@ -1322,15 +1352,21 @@ update_device = function(self, device, action, create) return device end -delete_device = function(device_id) - local result = "" - local errtxt +get_delete_device = function(self, clientdata) + local retval = {} + retval.device_id = cfe({ value=clientdata.device_id or "", label="Device ID" }) + return cfe({ type="group", value=retval, label="Delete Device" }) +end + +delete_device = function(self, delreq) + local device_id = delreq.value.device_id.value + delreq.errtxt = "Failed to delete device" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM devices_to_classes WHERE device_id='"..escape(device_id).."' LIMIT 1" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Device does not exist" + delreq.value.device_id.errtxt = "Device does not exist" else 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 @@ -1341,9 +1377,9 @@ delete_device = function(device_id) runsqlcommand(sql, true) sql = "DELETE FROM devices_to_classes WHERE device_id='"..escape(device_id).."'" runsqlcommand(sql, true) - result = "Device Deleted" sql = "COMMIT" runsqlcommand(sql) + delreq.errtxt = nil callscript(deletedevicescriptfile, saved_devices[device_id], saved_device_params[device_id]) saved_devices[device_id] = nil @@ -1353,10 +1389,10 @@ delete_device = function(device_id) end) if not res and err then pcall(function() con:execute("ROLLBACK") end) - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Device Result" }) + return delreq end get_editable_device_params = function(self, clientdata, action) @@ -1996,28 +2032,34 @@ list_requests = function() return cfe({ type="structure", value=retval, label="List of Requests", errtxt=errtxt }) end -delete_request = function(mac) - local result = "" - local errtxt +get_delete_request = function(self, clientdata) + local retval = {} + retval.mac = cfe({ value=clientdata.mac or "", label="MAC Address" }) + return cfe({ type="group", value=retval, label="Delete Request" }) +end + +delete_request = function(self, delreq) + local mac = delreq.value.mac.value + delreq.errtxt = "Failed to delete request" local res, err = pcall(function() local connected = databaseconnect() local sql = "SELECT * FROM provisioning_requests WHERE mac='"..escape(string.upper(mac)).."'" local tmp = getselectresponse(sql) if #tmp == 0 then - errtxt = "Request does not exist" + delreq.value.mac.errtxt = "Request does not exist" else -- Remove the request sql = "DELETE FROM provisioning_requests WHERE mac='"..escape(string.upper(mac)).."'" runsqlcommand(sql) - result = "Request Deleted" + delreq.errtxt = nil end if connected then databasedisconnect() end end) if not res and err then - errtxt = err + delreq.errtxt = err end - return cfe({ value=result, errtxt=errtxt, label="Delete Request Result" }) + return delreq end get_request = function(self, clientdata) @@ -2057,7 +2099,8 @@ create_from_request = function(self, request) end if params.errtxt then request.errtxt = params.errtxt - delete_device(device.value.device_id.value) + local req = get_delete_device(self, {device_id = device.value.device_id.value}) + delete_device(self, req) else success = true request.value.device_id = device.value.device_id |