From 16e3be6e5ed75359a4271cc94f80ca656cefd4b2 Mon Sep 17 00:00:00 2001 From: paulr Date: Sun, 12 Jun 2011 06:07:18 +1000 Subject: [PATCH] added junos, updated screenos --- lib/junos.plugin.php | 12 +++++ lib/screenos.plugin.php | 115 +---------------------------------------------- lib/www.php | 77 ++++++++++++++++++++----------- 3 files changed, 63 insertions(+), 141 deletions(-) create mode 100644 lib/junos.plugin.php diff --git a/lib/junos.plugin.php b/lib/junos.plugin.php new file mode 100644 index 0000000..61ec460 --- /dev/null +++ b/lib/junos.plugin.php @@ -0,0 +1,12 @@ + \ No newline at end of file diff --git a/lib/screenos.plugin.php b/lib/screenos.plugin.php index 30da607..20555d3 100644 --- a/lib/screenos.plugin.php +++ b/lib/screenos.plugin.php @@ -1,60 +1,8 @@ -Note: If your router/firewall/device uses a one-time password, leave these blank and manually update from the -home page
-Name
-Password
-Method - "; - - echo "Attempting first config grab, i see
"; - echo "
";
-		echo $config;
-		echo "
"; - } else { - echo "No username and password set, you can update manually from the home page\n"; - $hconfig["username"] = ""; - $hconfig["password"] = ""; - db_updateData("hosts", "hostconfig", base64_encode(serialize($hconfig)), "hostip", "$hip"); - } - - - echo "
";
-	print_r($_REQUEST);
-	echo "
"; -} +$HOST_TYPE["screenos"]["needsenable"] = false; function nsos_getConfigFromDB($hip, $cid) @@ -64,70 +12,11 @@ function nsos_getConfigFromDB($hip, $cid) return base64_decode($data[0]["configdata"]); } -function nsos_detail($hip) -{ - $data = db_selectData("configs", "hostip", "$hip", "configtime desc"); - - echo ""; - echo ""; - foreach($data as $dstruct) { - //echo "
";
-		//print_r($dstruct);
-		//echo "
"; - $dold = round((time()-$dstruct["configtime"])/86400); - - $lupdate = strftime("%T %e %b %G", $dstruct["configtime"])." ($dold days old)"; - $cid = $dstruct["configs_id"]; - echo ""; - } - echo "
Config DataCompare
$lupdate Get DownloadTick
"; - -} - function nsos_updateConfig($hip, $hostconfig) { - $hconf = unserialize(base64_decode($hostconfig)); - if($hconf["username"] == "" && !isset($_REQUEST["username"])) { - echo "No username/password data
"; -?> -
-Name
-Password
-
-
-"; - return 0; - } - - //error_log("getting config with ".$hconf["username"]." and ".$conf["password"]); - echo "Got config, saving it to db
"; - $lastupdate = time(); - db_updateData("hosts", "lastupdate", "$lastupdate", "hostip", "$hip"); - db_insertData("configs", "$hip", "$lastupdate", base64_encode($config)); - - echo "Config is:
";
-	echo $config;
-	echo "
"; } -function nsos_getConfig($host, $username, $password) +function nsos_getConfig($host, $username, $password, $enable) { return genericssh_ssh($host, $username, $password, "cli show configuration"); } diff --git a/lib/www.php b/lib/www.php index 3b7c506..91ce2c2 100644 --- a/lib/www.php +++ b/lib/www.php @@ -4,8 +4,8 @@ // some global menu stuff $MENUS["home"]["url"] = "?action=home"; $MENUS["home"]["name"] = "Home"; -$MENUS["hosts"]["url"] = "?action=hosts"; -$MENUS["hosts"]["name"] = "Hosts"; +//$MENUS["hosts"]["url"] = "?action=hosts"; +//$MENUS["hosts"]["name"] = "Hosts"; $MENUS["add"]["url"] = "?action=addhost"; $MENUS["add"]["name"] = "Add Host"; $MENUS["config"]["url"] = "?action=config"; @@ -188,10 +188,27 @@ function www_updateHost() $hostname = $data[0]["hostname"]; $htype = $data[0]["hosttype"]; - $func = $HOST_TYPE["$htype"]["updateconfig"]; + $func = $HOST_TYPE["$htype"]["getconfig"]; + $logdets = unserialize(base64_decode($hconfig)); + + $conf = $func($hip, $logdets["username"], $logdets["password"], $logdets["enable"]); + + // function db_getMaxValue($tablename, $column, $columnsel="", $wheresel="") + $oldconf_rid = db_getMaxValue("configs", "configs_id", "hostip", "$hip"); + $oldconf_id = $oldconf_rid[0][0]; + error_log("oldconf_id is $oldconf_id"); - error_log("calling $func with $hip, and $hconfig"); - $func("$hip", $hconfig); + // function db_selectData($tablename, $column="", $value="", $orderby = "") + $oldconf_r = db_selectData("configs", "configs_id", "$oldconf_id"); + $oldconf = base64_decode($oldconf_r[0]["configdata"]); + + if(md5($oldconf) != md5($conf)) { + echo "New config found, updating db
"; + db_insertData("configs", "$hip", time(), base64_encode($conf)); + echo "Config added
"; + } else { + echo "New config and old config are the same, not updating
"; + } } @@ -220,9 +237,6 @@ function www_deleteHost() } else { echo "Are you use you wish to delete the host, $hostname with IP address $hip? (and all associated config info)
"; echo "Yes"; - echo "
";
-		print_r($data);
-		echo "
"; } } @@ -249,12 +263,17 @@ function www_addhost() db_createTable("configs", "hostip", "configtime", "configdata"); ?>
+Note: if you leave the username/password fields blank, you'll be prompted when +manually updating on the home page + + +
Name
Hostname/IP Address
Username
Password
Enable Password
Host Type
Update Schedule
- +
"; - $func(); - echo ""; - } else echo "would call $func for $htype but it doesnt exist\n"; - } -} + + $confdetails["username"] = $user; + $confdetails["password"] = $pass; + $confdetails["enable"] = $enable; + + $logdata = base64_encode(serialize($confdetails)); + + db_updateData("hosts", "hostconfig", "$logdata", "hostip", "$hip"); + //function db_updateData($tablename, $column, $newdata, $wherecol, $wheredata, $exact=true) + -function www_addHostStageThree() -{ - global $HOST_TYPE; - if(isset($_REQUEST["hosttype"])) { - $htype = $_REQUEST["hosttype"]; - $func = $HOST_TYPE["$htype"]["postfunction"]; - if(function_exists($func)) { - $func(); - } else echo "would call $func for $htype but it doesnt exist\n"; + echo "Host added successfully, running configuration test
"; + $func = $HOST_TYPE["$htype"]["getconfig"]; + $conf = $func($hip, $user, $pass, $enable); + echo "The config I got is below, hope its correct as it'll be inserted into the DB as config version 1
$conf
"; + + //db_createTable("configs", "hostip", "configtime", "configdata"); + db_insertData("configs", "$hip", time(), base64_encode($conf)); } - } + ?> \ No newline at end of file -- 1.7.0.4