summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorSimon2011-04-19 15:14:17 +0200
committerSimon2011-04-19 15:14:17 +0200
commit765bcb53aa178808c2eec5502aa5387ba6e1bf68 (patch)
tree7c1cf7a403832bbe29afcbf1bf90e01f13426209 /scripts
parentRoleansicht geändert (diff)
downloadpbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.tar.gz
pbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.tar.xz
pbs2-765bcb53aa178808c2eec5502aa5387ba6e1bf68.zip
Aufgeräumt und verschoben
Diffstat (limited to 'scripts')
-rw-r--r--scripts/api_test.html16
-rw-r--r--scripts/dbContent.php224
-rw-r--r--scripts/dbContent.pngbin0 -> 192702 bytes
-rw-r--r--scripts/fbgui-test.html59
-rwxr-xr-xscripts/local-install.sh30
-rw-r--r--scripts/mysqlGraph.php86
-rw-r--r--scripts/mysqlGraph.pngbin0 -> 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
new file mode 100644
index 0000000..86c297a
--- /dev/null
+++ b/scripts/dbContent.png
Binary files differ
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
new file mode 100644
index 0000000..54d0ae5
--- /dev/null
+++ b/scripts/mysqlGraph.png
Binary files differ