From 8614731736208c3bc37648efcca8838ca2e3b629 Mon Sep 17 00:00:00 2001 From: paulr Date: Fri, 19 Aug 2011 04:19:18 +1000 Subject: [PATCH] adding some framework bits. --- agent/agent.php | 5 ++ docs/test_method.txt | 7 ++ lib/lib.php | 5 -- libanyhammer/config.php | 166 ++++++++++++++++++++++++++++++++++++++++++++++ libanyhammer/lib.php | 54 +++++++++++++++ libanyhammer/web.php | 94 ++++++++++++++++++++++++++ plugins/ah_plugin.php | 4 + plugins/mysql_hammer.php | 5 ++ www/index.php | 31 ++++++++- 9 files changed, 365 insertions(+), 6 deletions(-) create mode 100644 agent/agent.php create mode 100644 docs/test_method.txt delete mode 100644 lib/lib.php create mode 100644 libanyhammer/config.php create mode 100644 libanyhammer/lib.php create mode 100644 libanyhammer/web.php create mode 100644 plugins/ah_plugin.php create mode 100644 plugins/mysql_hammer.php diff --git a/agent/agent.php b/agent/agent.php new file mode 100644 index 0000000..db6a9a6 --- /dev/null +++ b/agent/agent.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/docs/test_method.txt b/docs/test_method.txt new file mode 100644 index 0000000..27b80be --- /dev/null +++ b/docs/test_method.txt @@ -0,0 +1,7 @@ +on the web host, people choose a test and go thru some config + +the local web host runs a main controller agent + +main controller agent comms with controller agent on all other hosts + +controller agent talks to testing agents \ No newline at end of file diff --git a/lib/lib.php b/lib/lib.php deleted file mode 100644 index 3c44fb3..0000000 --- a/lib/lib.php +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/libanyhammer/config.php b/libanyhammer/config.php new file mode 100644 index 0000000..330190d --- /dev/null +++ b/libanyhammer/config.php @@ -0,0 +1,166 @@ +configPath = ""; + $this->config = ""; + $this->dbobject = false; + } + + function loadConfig($configpath) + { + error_log("loadConfig $configpath"); + $this->configPath = $configpath; + + try { + $this->dbobject = new PDO("sqlite:$configpath"); + } catch(PDOException $exep) { + error_log("execpt on db open"); + return false; + } + + $this->setupTables(); + } + + function setConfig($configname, $configval) + { + $sql = "delete from config where configname='$configname'"; + $this->dbobject->query($sql); + $sql = "insert into config values ('$configname', '$configval')"; + $this->dbobject->query($sql); + } + + function getConfig($configname) + { + $sql = "select configvar from config where configname='$configname'"; + $res = $this->dbobject->query($sql); + $val = false; + foreach($res as $row) { + $val = $row[0]; + error_log("foreach, $val\n"); + } + + return $val; + } + + function delConfig($configname) + { + $sql = "delete from config where configname='$configname'"; + $this->dbobject->query($sql); + + return true; + } + + function addData($configType, $configCat, $configName, $configVal) + { + $sql = "insert into datatable values (NULL, '$configType', '$configCat', '$configName', '$configVal')"; + $this->dbobject->query($sql); + //error_log("CONFIG: adddata as $sql"); + } + + function saveConfig() + { + // stub function for old config method reverse compatability + } + + function getData($configType, $configCat="", $configName="") + { + $ret = null; + $nret = 0; + $haveWhere = false; + + $wheredata = "where data_type='$configType'"; + if($configCat != "") { + $wheredata .= " and data_category='$configCat'"; + } + + if($configName != "") { + $wheredata .= " and data_name='$configName'"; + } + + $sql = "select data_category,data_name,data_val from datatable $wheredata"; + //error_log("CONFIG: get via $sql"); + + $res = $this->dbobject->query($sql); + + foreach($res as $row) { + $ret[$nret]["val"] = $row[2]; + $ret[$nret]["category"] = $row[0]; + $ret[$nret]["name"] = $row[1]; + $nret++; + } + if($nret == 0) return false; + + return $ret; + } + + function delData($configType, $configCat, $configName="", $configVal="") + { + $extrawhere = ""; + if($configName != "") { + $extrawhere = " and data_name='$configName'"; + } + if($configVal != "") { + $extrawhere .= " and data_val='$configVal'"; + } + $sql = "delete from datatable where data_type='$configType' and data_category='$configCat' $extrawhere"; + $this->dbobject->query($sql); + + //error_log("del all data was $sql"); + } + + function delAllDAta($configType, $configCat) + { + $sql = "delete from datatable where data_type='$configType' and data_category='$configCat'"; + //echo "sql is $sql\n"; + $this->dbobject->query($sql); + //error_log("del all data was $sql"); + } + + function setupTables() + { + $sql = "SELECT count(name) FROM sqlite_master WHERE type='table' AND name='config';"; + $res = $this->dbobject->query($sql); + + foreach($res as $row) { + if($row[0] > 0) { + //echo "Tables exist\n"; + return; + } + } + + + $sql = 'CREATE TABLE "config" ( "configname" TEXT,"configvar" TEXT);'; + $this->dbobject->query($sql); + + $sql = 'CREATE TABLE "datatable" ("data_id" INTEGER PRIMARY KEY AUTOINCREMENT,"data_type" TEXT,"data_category" TEXT,"data_name" TEXT,"data_val" TEXT);'; + $this->dbobject->query($sql); + + $sql = 'CREATE TABLE sqlite_sequence(name,seq);'; + $this->dbobject->query($sql); + } + + private $configPath; + private $dbobject; + +} + +function ah_getConfigPath() +{ + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + + // if you wish to add more places to find webconfig, add them here. + $configpath = false; + if(file_exists($WEB_ROOT_FS."/../var/anyhammer/config.db")) return realpath($WEB_ROOT_FS."/../var/anyhammer/config.db"); + if(file_exists("/var/lib/anyhammer/config.db")) return realpath("/var/lib/anyhammer/config.db"); + if(file_exists("/var/run/anyhammer/config.db")) return realpath("/var/run/anyhammer/config.db"); + + return $configpath; + //return false; +} + + + +?> diff --git a/libanyhammer/lib.php b/libanyhammer/lib.php new file mode 100644 index 0000000..38b1a0f --- /dev/null +++ b/libanyhammer/lib.php @@ -0,0 +1,54 @@ + 0) { + error_log("loading plugin $file"); + require_once("$plpath/$file"); + //echo "required $basedir/$file\n"; + } + } + } + } + } +} + + +?> \ No newline at end of file diff --git a/libanyhammer/web.php b/libanyhammer/web.php new file mode 100644 index 0000000..87f7867 --- /dev/null +++ b/libanyhammer/web.php @@ -0,0 +1,94 @@ +config = $config; + } + + function go($url) + { + echo "hello, $url"; + error_log("called as $url"); + } + + + + private $config; +} + + +function AHpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="AnyHammer") +{ + global $WEB_ROOT_FS, $BASE_URL; + + // TODO: load css + // header + echo "$title"; + + // load css + if(file_exists("$WEB_ROOT_FS/css")) { + $dh = opendir("$WEB_ROOT_FS/css"); + if($dh) { + while(($file = readdir($dh))!==false) { + $mt = preg_match("/.*.css$/", $file); + if($mt > 0) { + error_log("loading css $file"); + echo ""; + //echo "required $basedir/$file\n"; + } + } + } + } + + // load js + if(file_exists("$WEB_ROOT_FS/js")) { + $dh = opendir("$WEB_ROOT_FS/js"); + if($dh) { + while(($file = readdir($dh))!==false) { + $mt = preg_match("/.*.js$/", $file); + if($mt > 0) { + error_log("loading js $file"); + echo ""; + //echo "required $basedir/$file\n"; + } + } + } + } + + + // start body + echo ""; + + // page top + echo "

$title


"; + echo "
"; + AHMessageBuilder(); + echo "
"; + + // menu, then body + echo "
"; + AHMenuBuilder(); + echo "
"; + // body + $url = "/"; + if(isset($_REQUEST["q"])) { + $url = $_REQUEST["q"]; + } + + if($bodyClass != null) { + $bodyClass->$bodyFunction($url); + } else if( $bodyFunction != null) { + $bodyFunction($url); + } else echo $bodycontent; + echo "
"; + + + // close the big wrap-around table + echo "
"; + + // footer + echo "
Copyright 2011, PJR
"; + +} +?> \ No newline at end of file diff --git a/plugins/ah_plugin.php b/plugins/ah_plugin.php new file mode 100644 index 0000000..7c7e952 --- /dev/null +++ b/plugins/ah_plugin.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/plugins/mysql_hammer.php b/plugins/mysql_hammer.php new file mode 100644 index 0000000..fbb4f3b --- /dev/null +++ b/plugins/mysql_hammer.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/www/index.php b/www/index.php index 4d0c107..e2b7ca1 100644 --- a/www/index.php +++ b/www/index.php @@ -1,5 +1,34 @@ go($url); ?> -- 1.7.0.4