summaryrefslogtreecommitdiffstats
path: root/provisioning-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2012-08-08 20:57:19 +0000
committerTed Trask <ttrask01@yahoo.com>2012-08-08 20:57:19 +0000
commit0c22ce5b3c8597a05d7d3301418d4d3ce07d5cb4 (patch)
tree5d0e179b70509c180a730a6dd10cff42cedc3425 /provisioning-model.lua
parent12a599b5e3ac719513bed698271cec060283b223 (diff)
downloadacf-provisioning-0c22ce5b3c8597a05d7d3301418d4d3ce07d5cb4.tar.bz2
acf-provisioning-0c22ce5b3c8597a05d7d3301418d4d3ce07d5cb4.tar.xz
Fix links to search and create, and fix createdevicefromrequest
Diffstat (limited to 'provisioning-model.lua')
-rw-r--r--provisioning-model.lua44
1 files changed, 26 insertions, 18 deletions
diff --git a/provisioning-model.lua b/provisioning-model.lua
index 6d694cf..22c8716 100644
--- a/provisioning-model.lua
+++ b/provisioning-model.lua
@@ -2095,28 +2095,36 @@ create_from_request = function(self, request)
local class, group = callscript(determineclassscriptfile, tmp[1].agent, c)
-- Create the device
- local device = get_device()
+ local device = get_device(nil, true)
if class and group and device.value.classes.value[group] then
device.value.classes.value[group].value = class
- end
- device = create_device(device)
- if device.errtxt then
- request.errtxt = device.errtxt
- else
- local params = get_device_params(device.value.device_id.value)
- -- Set the MAC Address
- if params.value.device and params.value.device.value.mac then
- params.value.device.value.mac.value = string.upper(request.value.mac.value)
- params = set_device_params(params)
- end
- if params.errtxt then
- request.errtxt = params.errtxt
- local req = get_delete_device(self, {device_id = device.value.device_id.value})
- delete_device(self, req)
+ device = create_device(self, device)
+ if device.errtxt then
+ request.errtxt = {device.errtxt}
+ for n,v in pairs(device.value) do
+ if v.errtxt then
+ request.errtxt[#request.errtxt + 1] = v.errtxt
+ end
+ end
+ request.errtxt = table.concat(request.errtxt, "\n")
else
- success = true
- request.value.device_id = device.value.device_id
+ local params = get_device_params(device.value.device_id.value)
+ -- Set the MAC Address
+ if params.value.device and params.value.device.value.mac then
+ params.value.device.value.mac.value = string.upper(request.value.mac.value)
+ params = set_device_params(params)
+ end
+ if params.errtxt then
+ request.errtxt = params.errtxt
+ 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
+ end
end
+ else
+ request.errtxt = "Failed to create device - could not determine class"
end
end
if connected then databasedisconnect() end