stuff
[php-bacula-disk-changer.git] / lib / lib.php
index b3d9bbc..de8e152 100644 (file)
@@ -1 +1,93 @@
 <?php
+
+function db_getDB($changer_name)
+{
+       global $BASE_DATA, $BASE_LIB, $BACULA_USER;
+       
+       try {
+               $dbobject = new PDO("sqlite:$BASE_DATA/$changer_name".".db");
+       } catch(PDOException $exep) {
+               echo "<font color='red'>Cannot open sqlitedb, ".$exep->getMessage()."</font><br>";
+               return;
+       }
+       
+       
+       db_createDB($dbobject);
+       
+       return $dbobject;
+}
+
+function db_createDB($dbobject)
+{
+       
+       if($dbobject->query("select * from disk_list")) {
+               //error_log("table exists?");
+       } else {
+               //error_log("table not exists?");
+               $dbobject->query('CREATE TABLE "disk_list" ("disk_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"disk_name" TEXT NOT NULL);');
+               $dbobject->query('CREATE TABLE sqlite_sequence(name,seq)');
+               $dbobject->query('CREATE TABLE "config" ("config_name" TEXT NOT NULL,"config_value" TEXT NOT NULL)');
+               $dbobject->query('CREATE TABLE "slots" ("slots_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"slot_no" INTEGER,"disk_id" INTEGER,"tape_name" TEXT)');
+
+               // TODO create action group here
+               
+       }
+}
+
+function conf_getVal($changer, $name)
+{
+       $db = db_getDB($changer);
+       
+       $sql = "select config_value from config where config_name=='$name'";
+       //error_log("from getval: ".$sql);
+       
+       $res = $db->query($sql);
+       
+       if(!$res) return false;
+       
+       $val = false;
+       
+       foreach($res as $row) {
+               $val = $row["config_value"];
+       }
+       
+       return $val;
+}
+
+function conf_setVal($changer, $name, $value)
+{
+       $db = db_getDB($changer);
+       
+       $sql = "delete from config where config_name=='$name'";
+       $db->query($sql);
+       
+       $sql = "insert into config values ('$name', '$value')";
+       $db->query($sql);
+       
+       //error_log("from setval: ".$sql);
+}
+
+function add_diskToDB($changer, $diskid)
+{
+       $db = db_getDB($changer);
+       
+       $sql = "select * from disk_list where disk_name=='$diskid'";
+       $res = $db->query($sql);
+       if(!$res) return false;
+       
+       $val = false;
+       foreach($res as $row) {
+               $val = $row["disk_id"];
+       }
+       
+       if(!$val) {
+               $sql = "insert into disk_list values(NULL, '$diskid')";
+               $db->query($sql);
+               return $db->lastInsertId();
+       } else {
+               echo "Disk already existed in db, will create more tapes?\n";
+       }
+       
+       return $val;
+}
+?>
\ No newline at end of file