diff options
author | Simon | 2011-04-19 15:14:17 +0200 |
---|---|---|
committer | Simon | 2011-04-19 15:14:17 +0200 |
commit | 765bcb53aa178808c2eec5502aa5387ba6e1bf68 (patch) | |
tree | 7c1cf7a403832bbe29afcbf1bf90e01f13426209 /scripts | |
parent | Roleansicht geändert (diff) | |
download | pbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.tar.gz pbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.tar.xz pbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.zip |
Aufgeräumt und verschoben
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/api_test.html | 16 | ||||
-rw-r--r-- | scripts/dbContent.php | 224 | ||||
-rw-r--r-- | scripts/dbContent.png | bin | 0 -> 192702 bytes | |||
-rw-r--r-- | scripts/fbgui-test.html | 59 | ||||
-rwxr-xr-x | scripts/local-install.sh | 30 | ||||
-rw-r--r-- | scripts/mysqlGraph.php | 86 | ||||
-rw-r--r-- | scripts/mysqlGraph.png | bin | 0 -> 280861 bytes |
7 files changed, 415 insertions, 0 deletions
diff --git a/scripts/api_test.html b/scripts/api_test.html new file mode 100644 index 0000000..754740c --- /dev/null +++ b/scripts/api_test.html @@ -0,0 +1,16 @@ +<form enctype='multipart/form-data' action='http://127.0.0.2/resource/addbootos/apikey/apikey1' method='POST'> +Title:<input name='title' type='text'/> +Description:<input name='description' type='text'/> +Expires:<input name='expires' type='text'/> +KCL:<input name='defaultkcl' type='text'/> +Distro:<input name='distro' type='text'/> +Distro-Version:<input name='distroversion' type='text'/> +Share:<input name='share' type='text'/> +Shortname:<input name='shortname' type='text'/> +Service:<input name='service' type='text'/> +Config File:<input name='config' type='file'/> +Kernel File:<input name='kernel' type='file'/> +Init File:<input name='init' type='file'/> +<input type='submit' value='Upload'/> +</form> +<style>input{display:block}</style> diff --git a/scripts/dbContent.php b/scripts/dbContent.php new file mode 100644 index 0000000..a704ec2 --- /dev/null +++ b/scripts/dbContent.php @@ -0,0 +1,224 @@ +<?php +/* + * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg + * This program is free software distributed under the GPL version 2. + * See http://gpl.openslx.org/ + * + * If you have any feedback please consult http://feedback.openslx.org/ and + * send your suggestions, praise, or complaints to feedback@openslx.org + * + * General information about OpenSLX can be found at http://openslx.org/ + */ +// generate mysql graph +$name = substr(str_replace("/","",$_SERVER['SCRIPT_NAME']),0,-4); +$dotname = $name . '.dot'; +$pngname = $name . '.png'; + +echo "Opening Database Connection...\n"; +$link = mysql_connect('localhost', 'root', '123456'); +if (!$link) { + die('keine Verbindung möglich: ' . mysql_error()); +} +mysql_select_db('pbs'); +error_reporting(1); + + +$format['groupnode'] = '"%s" [shape=trapezium, fontcolor="#ffffffff", style=filled, fillcolor="#004A99FF"];'."\n"; +$format['personnode'] = '"%s" [shape=ellipse, fontcolor="#ffffffff", style=filled, fillcolor="#FF0000FF"];'."\n"; +$format['poolnode'] = '"%s" [shape=ellipse, fontcolor="#000000ff", style=filled, fillcolor="#00FF00FF"];'."\n"; +$format['membershipnode'] = '"%s" [shape=ellipse, fontcolor="#ffffffff", style=filled, fillcolor="#990000FF"];'."\n"; +$format['clientnode'] = '"%s" [shape=ellipse, fontcolor="#000000ff", style=filled, fillcolor="#FFFF00FF"];'."\n"; +$format['rolenode'] = '"%s" [fontcolor="#000000ff", style=filled, fillcolor="#FF0099FF"];'."\n"; +$format['bootmenunode'] = '"%s" [shape=ellipse, fontcolor="#000000ff", style=filled, fillcolor="#009999FF"];'."\n"; +$format['bootisonode'] = '"%s" [shape=ellipse, fontcolor="#000000ff", style=filled, fillcolor="#FF9900FF"];'."\n"; +$format['bootosnode'] = '"%s" [fontcolor="#000000ff", style=filled, fillcolor="#99FF99FF"];'."\n"; + +$format['groupgroup'] = '"%s" -> "%s";'."\n"; +$format['personmember'] = '"%s" -> "%s";'."\n"; +$format['rolemember'] = '"%s" -> "%s";'."\n"; +$format['membergroup'] = '"%s" -> "%s";'."\n"; +$format['personrequest'] = '"%s" -> "%s" [style=dotted];'."\n"; +$format['poolgroup'] = '"%s" -> "%s";'."\n"; +$format['clientgroup'] = '"%s" -> "%s";'."\n"; +$format['clientpool'] = '"%s" -> "%s";'."\n"; +$format['bootisogroup'] = '"%s" -> "%s";'."\n"; +$format['bootmenugroup'] = '"%s" -> "%s";'."\n"; +$format['bootosbootmenu'] = '"%s" -> "%s";'."\n"; +$format['bootosgroup'] = '"%s" -> "%s";'."\n"; + + + + +function getGroups(){ + global $format; + $q = "SELECT groupID,title FROM pbs_group"; + $groups = "subgraph cluster_0 {"; + $groups .= "label=Groups;"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $groups .= sprintf($format['groupnode'] ,"Group".$data['groupID']); + } + $groups .= "}"; + return $groups; +} +function recGroups($groupID,$level=0,$data=''){ + global $format; + $q = "SELECT groupID FROM pbs_groupgroups WHERE parentID = $groupID"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $groups .= sprintf($format['groupgroup'],"Group".$groupID, "Group".$data['groupID']); + $groups .= recGroups($data['groupID']); + } + return $groups; +} +function getPersons(){ + global $format; + $q = "SELECT personID,title FROM pbs_person"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $persons .= sprintf($format['personnode'] ,"Person". $data['personID']); + + } + return $persons; +} +function getMemberships(){ + global $format; + $q = "SELECT personID,groupID,membershipID,roleID FROM pbs_membership"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $memberships .= sprintf($format['membershipnode'],"Member".$data['membershipID']); + $memberships .= sprintf($format['personmember'],"Person".$data['personID'],"Member".$data['membershipID']); + $memberships .= sprintf($format['rolemember'],"Role".$data['roleID'], "Member".$data['membershipID']); + $memberships .= sprintf($format['membergroup'],"Member".$data['membershipID'], "Group".$data['groupID']); + } + return $memberships; +} +function getRequests(){ + global $format; + $q = "SELECT personID,groupID FROM pbs_grouprequest"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $memberships .= sprintf($format['peronrequests'],"Group".$data['groupID'], "Person".$data['personID']); + } + return $memberships; +} +function getPools(){ + global $format; + $q = "SELECT poolID,groupID FROM pbs_pool"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $pools .= sprintf($format['poolnode'] ,"Pool".$data['poolID']); + $pools .= sprintf($format['poolgroup'],"Pool".$data['poolID'], "Group".$data['groupID']); + + } + return $pools; +} +function getClients(){ + global $format; + $q = "SELECT clientID,groupID FROM pbs_client"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $clients .= sprintf($format['clientnode'] ,"Client".$data['clientID']); + $query2 = "SELECT clientID, poolID FROM pbs_poolentries WHERE clientID = '".$data['clientID']."'"; + $result2 = mysql_query($query2); + if(mysql_num_rows($result2) == 0) + $clients .= sprintf($format['clientgroup'],"Client".$data['clientID'], "Group".$data['groupID']); + } + + return $clients; +} +function clientPools(){ + global $format; + $q = "SELECT clientID,poolID FROM pbs_poolentries"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $clientpools .= sprintf($format['clientpool'],"Client".$data['clientID'], "Pool".$data['poolID']); + } + return $clientpools; +} +function getRoles(){ + global $format; + $q = "SELECT roleID,groupID FROM pbs_role"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $roles .= sprintf($format['rolenode'] ,"Role".$data['roleID']); + # $roles .= "Role".$data['roleID'] ." -> " . "Group".$data['groupID'].";\n"; + } + return $roles; +} +function getBootiso(){ + global $format; + $q = "SELECT bootisoID,groupID FROM pbs_bootiso"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $bootiso .= sprintf($format['bootisonode'] ,"BootIso".$data['bootisoID']); + $bootiso .= sprintf($format['bootisogroup'],"BootIso".$data['bootisoID'], "Group".$data['groupID']); + + } + return $bootiso; +} +function getBootMenus(){ + global $format; + $q = "SELECT bootmenuID,groupID FROM pbs_bootmenu"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $bootmenu .= sprintf($format['bootmenunode'] ,"BootMenu".$data['bootmenuID']); + $bootmenu .= sprintf($format['bootmenugroup'],"BootMenu".$data['bootmenuID'], "Group".$data['groupID']); + } + return $bootmenu; +} +function getBootos(){ + global $format; + $q = "SELECT bootosID,groupID FROM pbs_bootos"; + $result = mysql_query($q); + while($data = mysql_fetch_array($result)){ + $bootos .= sprintf($format['bootosnode'] ,"BootOs".$data['bootosID']); + + $q2 = "SELECT * FROM pbs_bootmenuentries WHERE bootosID = ".$data['bootosID'].""; + $result2 = mysql_query($q2); + if(mysql_num_rows($result2)){ + while($data2 = mysql_fetch_array($result2)) + $bootos .= sprintf($format['bootosbootmenu'],"BootOs".$data['bootosID'], "BootMenu".$data2['bootmenuID']); + } + else + $bootos .= sprintf($format['bootosgroup'],"BootOs".$data['bootosID'], "Group".$data['groupID']); + } + return $bootos; +} + +## Concatenation +$defs = ''; +$defs .= getGroups(); +$defs .= recGroups(1); +$defs .= getPersons(); +$defs .= getMemberships(); +$defs .= getRoles(); +$defs .= getRequests(); +$defs .= getPools(); +$defs .= getClients(); +$defs .= clientPools(); +$defs .= getBootiso(); +$defs .= getBootMenus(); +$defs .= getBootos(); + + + +$str = 'digraph x { + node []; + ranksep=3; + size="20,20"; + overlap="0:true"'."\n"; +$str .= str_replace("\n","\n\t",$defs); +$str .= "}"; + +echo "Write to file ...\n"; +// Create the dot file +$fp = fopen($dotname, "w"); +fputs ($fp, $str); +fclose ($fp); +// Generate the image +echo "Generate the image ...\n"; +exec("dot -Tpng $dotname >$pngname"); +// delete the dot file +unlink ($dotname); +echo "Ready!\n"; diff --git a/scripts/dbContent.png b/scripts/dbContent.png Binary files differnew file mode 100644 index 0000000..86c297a --- /dev/null +++ b/scripts/dbContent.png diff --git a/scripts/fbgui-test.html b/scripts/fbgui-test.html new file mode 100644 index 0000000..b89df3b --- /dev/null +++ b/scripts/fbgui-test.html @@ -0,0 +1,59 @@ +<html> +<title>Post-Data</title> +<style type="text/css"> + fieldset{margin-bottom:20px;border:none;border-top:1px solid red;} + fieldset legend{color:red;} + label{float:left;width:125px;} +</style> +<body> +<fieldset> + <legend>http://132.230.4.27/</legend> + <form action='http://132.230.4.27/' method='post'> + <label>serialnumber</label> + <input type='text' name='serialnumber' value='10-20-30-40-50'><br /> + <label>Mac</label> + <input type='text' name='mac' value='00:0c:29:01:63:88'><br /> + <label>Hardwarehash</label> + <input type='text' name='hardwarehash' value='51685132196851652186121869413216'><br /> + <input type='submit' value='Test'> + </form> +</fieldset> +<fieldset> + <legend>http://pbs2.local/</legend> + <form action='http://pbs2.local/' method='post'> + <label>serialnumber</label> + <input type='text' name='serialnumber' value='10-20-30-40-50'><br /> + <label>Mac</label> + <input type='text' name='mac' value='00:0c:29:01:63:88'><br /> + <label>Hardwarehash</label> + <input type='text' name='hardwarehash' value='51685132196851652186121869413216'><br /> + <input type='submit' value='Test'> + </form> +</fieldset> +<fieldset> + <legend>http://132.230.4.27/fbgui/index/</legend> + <form action='http://132.230.4.27/fbgui/index/' method='post'> + <label>serialnumber</label> + <input type='text' name='serialnumber' value='10-20-30-40-50'><br /> + <label>Mac</label> + <input type='text' name='mac' value='00:0c:29:01:63:88'><br /> + <label>Hardwarehash</label> + <input type='text' name='hardwarehash' value='51685132196851652186121869413216'><br /> + <input type='submit' value='Test'> + </form> +</fieldset> +<fieldset> + <legend>http://pbs2.local/fbgui/index/</legend> + <form action='http://pbs2.local/fbgui/index/' method='post'> + <label>serialnumber</label> + <input type='text' name='serialnumber' value='10-20-30-40-50'><br /> + <label>Mac</label> + <input type='text' name='mac' value='00:0c:29:01:63:88'><br /> + <label>Hardwarehash</label> + <input type='text' name='hardwarehash' value='51685132196851652186121869413216'><br /> + <input type='submit' value='Test'> + </form> +</fieldset> +</body> +</html> + diff --git a/scripts/local-install.sh b/scripts/local-install.sh new file mode 100755 index 0000000..37c1c6d --- /dev/null +++ b/scripts/local-install.sh @@ -0,0 +1,30 @@ +#!/bin/bash +apt-get update +apt-get install apache2 -y +apt-get install php5 libapache2-mod-php5 -y +# passwort lsfks-openslx +apt-get install mysql-server -y +apt-get install phpmyadmin -y +echo "Include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf +zcat /usr/share/doc/phpmyadmin/examples/create_tables.sql.gz | mysql -uroot -p +apt-get install zend-framework-bin -y +a2enmod rewrite +cd /tmp/ +su sf34 -c "git clone git@openslx.org:lsfks/master-teamprojekt/pbs2.git" +mkdir /tmp/pbs2/library/ +ln -s /usr/share/php/libzend-framework-php/Zend/ /tmp/pbs2/library/Zend +chown sf34:uni library/ +touch /etc/apache2/sites-available/pbs2 +echo " <VirtualHost 127.0.0.2:80>" >> /etc/apache2/sites-available/pbs2 +echo " ServerName pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " ServerAlias pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " ServerAdmin admin@pbs2.local" >> /etc/apache2/sites-available/pbs2 +echo " DocumentRoot /tmp/pbs2/public" >> /etc/apache2/sites-available/pbs2 +echo " <Directory /tmp/pbs2/public >" >> /etc/apache2/sites-available/pbs2 +echo " Options FollowSymLinks" >> /etc/apache2/sites-available/pbs2 +echo " AllowOverride All" >> /etc/apache2/sites-available/pbs2 +echo " </Directory>" >> /etc/apache2/sites-available/pbs2 +echo " </VirtualHost>" >> /etc/apache2/sites-available/pbs2 +ln -s /etc/apache2/sites-available/pbs2 /etc/apache2/sites-enabled/pbs2 +echo "127.0.0.2 pbs2.local" >> /etc/hosts +/etc/init.d/apache2 restart diff --git a/scripts/mysqlGraph.php b/scripts/mysqlGraph.php new file mode 100644 index 0000000..b9012b2 --- /dev/null +++ b/scripts/mysqlGraph.php @@ -0,0 +1,86 @@ +<?php +/* + * Copyright (c) 2011 - OpenSLX GmbH, RZ Uni Freiburg + * This program is free software distributed under the GPL version 2. + * See http://gpl.openslx.org/ + * + * If you have any feedback please consult http://feedback.openslx.org/ and + * send your suggestions, praise, or complaints to feedback@openslx.org + * + * General information about OpenSLX can be found at http://openslx.org/ + */ +// generate mysql graph +echo "Opening Database Connection...\n"; +$link = mysql_connect('localhost', 'root', '123456'); +if (!$link) { + die('keine Verbindung möglich: ' . mysql_error()); +} +#mysql_close($link); +mysql_select_db('pbs'); + + +$result = mysql_list_tables('pbs'); +echo "Get Tables ...\n"; +while ($row = mysql_fetch_row($result)) { + $tables[$row[0]] = array(); +} +mysql_free_result($result); + +// Save all table-names +foreach($tables as $tablename => $data){ + $result = mysql_query("SHOW COLUMNS FROM $tablename"); + while ($row = mysql_fetch_assoc($result)) { + $tables[$tablename][] = $row; + } +} +mysql_free_result($result); +echo "Get Fieldlist from tables ...\n"; +// Prepare dot-string +$b = "\n"; +$str = 'digraph x { + node [shape=record]; + ranksep=3; + size="20,20";'.$b; + +// get all table-fields +foreach($tables as $tablename => $data){ + $str .= $tablename .' [label= "{'; + $array = array(); + $array[] = strtoupper($tablename); + foreach($data as $d){ + $array[] = "<".$d['Field'].">".$d['Field']; + } + $str .= implode("|",$array); + $str .= '}",width=3];'.$b; +} + +echo "Generate the Links ...\n"; +// link the database-items (foreign-keys) +foreach($tables as $tablename1 => $table1){ + foreach($table1 as $field1){ + $f1 = $field1['Field']; + foreach($tables as $tablename2 => $table2){ + foreach($table2 as $field2){ + $f2 = $field2['Field']; + if( $tablename1 != $tablename2 && $f1 == $f2 && strstr($f1,'ID') && "pbs_".str_replace("ID",'',$f1) == $tablename1){ + // Draw lines to tables + $str .= $tablename1 ." -> ".$tablename2.";".$b; + // draw lines to table-items + #$str .= $tablename1.":".$f1 ." -> ".$tablename2.":".$f2 .";".$b; + } + } + } + } +} +$str .= "}"; +echo "Write to file ...\n"; +// Create the dot file +$fp = fopen("mysqlGraph.dot", "w"); +fputs ($fp, $str); +fclose ($fp); +// Generate the image +echo "Generate the image ...\n"; +exec("dot -Tpng mysqlGraph.dot >mysqlGraph.png"); +// delete the dot file +unlink ('mysqlGraph.dot'); +echo "Ready!\n"; diff --git a/scripts/mysqlGraph.png b/scripts/mysqlGraph.png Binary files differnew file mode 100644 index 0000000..54d0ae5 --- /dev/null +++ b/scripts/mysqlGraph.png |