diff --git a/README b/README index 2df1737..944242b 100755 --- a/README +++ b/README @@ -9,10 +9,10 @@ DONE: * Power control (ON/OFF) for each socket * All the outlets are powered ON on boot * ACF package - * configuration file + * configuration file editing TODO: - * editing socket parameters + * editing outlet parameters * everything else (there's a long list) BUGS: diff --git a/acf-app/openpdu-controller.lua b/acf-app/openpdu-controller.lua index 1cce39b..1d061d9 100755 --- a/acf-app/openpdu-controller.lua +++ b/acf-app/openpdu-controller.lua @@ -16,4 +16,8 @@ mymodule.poweroff = function(self) return self.handle_form(self, self.model.get_setpower, self.model.setpoweroff, self.clientdata, "commitpower", "Action result") end +function mymodule.expert(self) + return self.handle_form(self, self.model.get_filedetails, self.model.update_filedetails, self.clientdata, "Save", "Edit Config File", "Configuration Set") +end + return mymodule diff --git a/acf-app/openpdu-expert-html.lsp b/acf-app/openpdu-expert-html.lsp new file mode 120000 index 0000000..207f324 --- /dev/null +++ b/acf-app/openpdu-expert-html.lsp @@ -0,0 +1 @@ +../expert-html.lsp \ No newline at end of file diff --git a/acf-app/openpdu-model.lua b/acf-app/openpdu-model.lua index 92b0e3c..60be4cf 100755 --- a/acf-app/openpdu-model.lua +++ b/acf-app/openpdu-model.lua @@ -5,6 +5,7 @@ fs = require("acf.fs") json = require('cjson') modelfunctions = require("modelfunctions") +local configfile = "/etc/openpdu/openpdu.conf" local s = modelfunctions.run_executable({"/usr/bin/openpdu", "outlets", "-j"}) local o = json.decode(s) local outlets = {} @@ -46,4 +47,12 @@ mymodule.setpoweroff = function(self, r) return r end +function mymodule.get_filedetails() + return modelfunctions.getfiledetails(configfile) +end + +function mymodule.update_filedetails(self, filedetails) + return modelfunctions.setfiledetails(self, filedetails, {configfile}) +end + return mymodule diff --git a/acf-app/openpdu.menu b/acf-app/openpdu.menu index 2594bb5..7d0b247 100755 --- a/acf-app/openpdu.menu +++ b/acf-app/openpdu.menu @@ -1,2 +1,3 @@ #CAT GROUP/DESC TAB ACTION Applications 20OpenPDU Status status +Applications 20OpenPDU Expert expert diff --git a/acf-app/openpdu.roles b/acf-app/openpdu.roles index 5d6072f..ac05b14 100755 --- a/acf-app/openpdu.roles +++ b/acf-app/openpdu.roles @@ -1,4 +1,4 @@ USER=openpdu:status EDITOR=openpdu:status -EXPERT=openpdu:status -ADMIN=openpdu:status,openpdu:edit,openpdu:power,openpdu:poweron,openpdu:poweroff +EXPERT=openpdu:status,openpdu:expert +ADMIN=openpdu:status,openpdu:edit,openpdu:expert,openpdu:power,openpdu:poweron,openpdu:poweroff