summaryrefslogtreecommitdiffstats
path: root/provisioning-scripts.lua
diff options
context:
space:
mode:
Diffstat (limited to 'provisioning-scripts.lua')
-rw-r--r--provisioning-scripts.lua26
1 files changed, 14 insertions, 12 deletions
diff --git a/provisioning-scripts.lua b/provisioning-scripts.lua
index 4741062..325b07b 100644
--- a/provisioning-scripts.lua
+++ b/provisioning-scripts.lua
@@ -1,14 +1,14 @@
-module (..., package.seeall)
+local mymodule = {}
-- if a table_creation_script does not create the named table or throw an exception then you will get an infinite loop, so be careful
-- List of each device that we manage
-provisioning_device_seq = {
+mymodule.provisioning_device_seq = {
"CREATE SEQUENCE provisioning_device_seq",
}
-- Multi-to-multi mapping of devices to classes
-devices_to_classes = {
+mymodule.devices_to_classes = {
"CREATE TABLE devices_to_classes (device_id INTEGER, class_id INTEGER REFERENCES provisioning_classes)",
"CREATE INDEX d2c_device_idx ON devices_to_classes (device_id)",
"CREATE INDEX d2c_class_idx ON devices_to_classes (class_id)",
@@ -27,14 +27,14 @@ devices_to_classes = {
}
-- List of different class groups
-provisioning_class_groups = {
+mymodule.provisioning_class_groups = {
"CREATE TABLE provisioning_class_groups (class_group_id SERIAL PRIMARY KEY, name VARCHAR(255) UNIQUE, label VARCHAR(255) UNIQUE, seq INTEGER)",
"INSERT INTO provisioning_class_groups VALUES(default, 'device', 'Device Model', '1')",
"INSERT INTO provisioning_class_groups VALUES(default, 'services', 'Services', '2')",
}
-- List of different device classes
-provisioning_classes = {
+mymodule.provisioning_classes = {
"CREATE TABLE provisioning_classes (class_id SERIAL PRIMARY KEY, class_group_id INTEGER REFERENCES provisioning_class_groups, label VARCHAR(255), seq INTEGER)",
"CREATE INDEX classes_group_idx ON provisioning_classes (class_group_id)",
"CREATE INDEX classes_label_idx ON provisioning_classes (label)",
@@ -56,7 +56,7 @@ provisioning_classes = {
}
-- Multi-to-multi mapping of classes to parameter groups
-classes_to_param_groups = {
+mymodule.classes_to_param_groups = {
"CREATE TABLE classes_to_param_groups (class_id INTEGER REFERENCES provisioning_classes, group_id INTEGER REFERENCES provisioning_groups)",
"CREATE INDEX c2g_class_idx ON classes_to_param_groups (class_id)",
"CREATE INDEX c2g_group_idx ON classes_to_param_groups (group_id)",
@@ -157,7 +157,7 @@ classes_to_param_groups = {
}
-- List of different parameter groups
-provisioning_groups = {
+mymodule.provisioning_groups = {
"CREATE TABLE provisioning_groups (group_id SERIAL PRIMARY KEY, name VARCHAR(255), label VARCHAR(255) UNIQUE, seq INTEGER)",
"CREATE INDEX groups_name_idx ON provisioning_groups (name)",
"INSERT INTO provisioning_groups VALUES(default, 'device', 'Linksys ATA Device', '1')",
@@ -218,7 +218,7 @@ provisioning_groups = {
}
-- Multi-to-multi mapping of parameter groups to parameters
-param_groups_to_params = {
+mymodule.param_groups_to_params = {
"CREATE TABLE param_groups_to_params (group_id INTEGER REFERENCES provisioning_groups, param_id INTEGER REFERENCES provisioning_params, value VARCHAR(255), editable BOOLEAN)",
"CREATE INDEX g2p_group_idx ON param_groups_to_params (group_id)",
"CREATE INDEX g2p_param_idx ON param_groups_to_params (param_id)",
@@ -681,7 +681,7 @@ param_groups_to_params = {
}
-- List of each parameter used in any way for any device - mostly for how to display
-provisioning_params = {
+mymodule.provisioning_params = {
"CREATE TABLE provisioning_params (param_id SERIAL PRIMARY KEY, name VARCHAR(255) UNIQUE, type VARCHAR(255), label VARCHAR(255), descr VARCHAR(255), value VARCHAR(255), seq INTEGER, regexp VARCHAR(255), validate text)",
"CREATE INDEX params_name_idx ON provisioning_params (name)",
"INSERT INTO provisioning_params VALUES(default, 'mac', 'text', 'MAC Address', 'Capitalized hex digits with no puncuation', '', '1', '^%x%x%x%x%x%x%x%x%x%x%x%x$', E'local self, value, params = ...\nvalue = string.upper(value)\nlocal others = self.getselectresponse(\"SELECT count(*) FROM provisioning_values WHERE param_id=\\'\"..params.value.device.value.mac.param_id..\"\\' AND device_id!=\\'\"..params.value.device_id.value..\"\\' AND value=\\'\"..value..\"\\'\")\nif tonumber(others[1].count) > 0 then\n\treturn value, \"MAC Address must be unique\"\nend\nreturn value')",
@@ -719,7 +719,7 @@ provisioning_params = {
}
-- All of the (non-default) parameter values for all devices are stored here
-provisioning_values = {
+mymodule.provisioning_values = {
-- device_id is a device id from provisioning_device_seq and param_id is a param id from provisioning_params
"CREATE TABLE provisioning_values (device_id INTEGER, group_name VARCHAR(255), param_id INTEGER REFERENCES provisioning_params, value VARCHAR(255))",
"CREATE INDEX values_device_idx ON provisioning_values (device_id)",
@@ -742,7 +742,7 @@ provisioning_values = {
}
-- List of options for parameters
-provisioning_options = {
+mymodule.provisioning_options = {
"CREATE TABLE provisioning_options (param_id INTEGER REFERENCES provisioning_params, label VARCHAR(255), value VARCHAR(255), seq INTEGER)",
"CREATE INDEX options_param_idx ON provisioning_options (param_id)",
"CREATE UNIQUE INDEX options_param_label_idx ON provisioning_options (param_id, label)",
@@ -767,6 +767,8 @@ provisioning_options = {
}
-- List of getfile requests
-provisioning_requests = {
+mymodule.provisioning_requests = {
"CREATE TABLE provisioning_requests (mac VARCHAR(12) unique, ip VARCHAR(15), agent VARCHAR(255), date timestamp)",
}
+
+return mymodule