diff options
author | Ted Trask <ttrask01@yahoo.com> | 2009-08-25 09:57:39 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2009-08-25 09:57:39 +0000 |
commit | 02edfdc22bcc86b1e68b9a11364ca91d448b0c1a (patch) | |
tree | 453bafbe532aa4733e395d74232d5b18813b5cc1 /heimdal-model.lua | |
download | acf-heimdal-02edfdc22bcc86b1e68b9a11364ca91d448b0c1a.tar.bz2 acf-heimdal-02edfdc22bcc86b1e68b9a11364ca91d448b0c1a.tar.xz |
Initial cut at heimdal ACF.v0.1.0
Diffstat (limited to 'heimdal-model.lua')
-rw-r--r-- | heimdal-model.lua | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/heimdal-model.lua b/heimdal-model.lua new file mode 100644 index 0000000..9845c10 --- /dev/null +++ b/heimdal-model.lua @@ -0,0 +1,78 @@ +module(..., package.seeall) + +-- Load libraries +require("processinfo") +require("modelfunctions") +require("fs") +require("format") + +-- Set variables +local configfile = "/etc/krb5.conf" +local packagename = "heimdal" + +local path = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin " + +-- ################################################################################ +-- LOCAL FUNCTIONS + +-- ################################################################################ +-- PUBLIC FUNCTIONS + +function getstatus() + local status = {} + + local value, errtxt = processinfo.package_version(packagename) + status.version = cfe({ + label="Program version", + value=value, + errtxt=errtxt, + name=packagename + }) + + return cfe({ type="group", value=status, label="Heimdal Status" }) +end + +function get_filedetails() + return modelfunctions.getfiledetails(configfile) +end + +function update_filedetails(filedetails) + return modelfunctions.setfiledetails(filedetails, {configfile}) +end + +function get_kinit() + local value = {} + value.login = cfe({ label="KDC login" }) + value.password = cfe({ label="KDC password" }) + return cfe({ type="group", value=value, label="Kinit Parameters" }) +end + +function set_kinit(data) + local tmp = "/tmp/k"..os.time() + fs.write_file(tmp, data.value.password.value) + local cmd = path.."kinit --password-file="..tmp.." "..format.escapespecialcharacters(data.value.login.value).." 2>&1" + local f = io.popen(cmd) + data.descr = f:read("*a") or "" + f:close() + os.remove(tmp) + if data.descr == "" then data.descr = "Success" end + return data +end + +function klist() + local cmd = path.."klist" + local f = io.popen(cmd) + local result = f:read("*a") or "" + f:close() + if result == "" then result = "No tickets found" end + return cfe({ value=result, label="List of Kerberos Tickets" }) +end + +function kdestroy() + local cmd = path.."kdestroy" + local f = io.popen(cmd) + local result = f:read("*a") or "" + f:close() + if result == "" then result = "Success" end + return cfe({ value=result, label="Result of kdestroy" }) +end |