stuff
[php-bacula-disk-changer.git] / lib / lib.php
1 <?php
2
3 function db_getDB($changer_name)
4 {
5         global $BASE_DATA, $BASE_LIB, $BACULA_USER;
6         
7         try {
8                 $dbobject = new PDO("sqlite:$BASE_DATA/$changer_name".".db");
9         } catch(PDOException $exep) {
10                 echo "<font color='red'>Cannot open sqlitedb, ".$exep->getMessage()."</font><br>";
11                 return;
12         }
13         
14         
15         db_createDB($dbobject);
16         
17         return $dbobject;
18 }
19
20 function db_createDB($dbobject)
21 {
22         
23         if($dbobject->query("select * from disk_list")) {
24                 //error_log("table exists?");
25         } else {
26                 //error_log("table not exists?");
27                 $dbobject->query('CREATE TABLE "disk_list" ("disk_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"disk_name" TEXT NOT NULL);');
28                 $dbobject->query('CREATE TABLE sqlite_sequence(name,seq)');
29                 $dbobject->query('CREATE TABLE "config" ("config_name" TEXT NOT NULL,"config_value" TEXT NOT NULL)');
30                 $dbobject->query('CREATE TABLE "slots" ("slots_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"slot_no" INTEGER,"disk_id" INTEGER,"tape_name" TEXT)');
31
32                 // TODO create action group here
33                 
34         }
35 }
36
37 function conf_getVal($changer, $name)
38 {
39         $db = db_getDB($changer);
40         
41         $sql = "select config_value from config where config_name=='$name'";
42         //error_log("from getval: ".$sql);
43         
44         $res = $db->query($sql);
45         
46         if(!$res) return false;
47         
48         $val = false;
49         
50         foreach($res as $row) {
51                 $val = $row["config_value"];
52         }
53         
54         return $val;
55 }
56
57 function conf_setVal($changer, $name, $value)
58 {
59         $db = db_getDB($changer);
60         
61         $sql = "delete from config where config_name=='$name'";
62         $db->query($sql);
63         
64         $sql = "insert into config values ('$name', '$value')";
65         $db->query($sql);
66         
67         //error_log("from setval: ".$sql);
68 }
69
70 function add_diskToDB($changer, $diskid)
71 {
72         $db = db_getDB($changer);
73         
74         $sql = "select * from disk_list where disk_name=='$diskid'";
75         $res = $db->query($sql);
76         if(!$res) return false;
77         
78         $val = false;
79         foreach($res as $row) {
80                 $val = $row["disk_id"];
81         }
82         
83         if(!$val) {
84                 $sql = "insert into disk_list values(NULL, '$diskid')";
85                 $db->query($sql);
86                 return $db->lastInsertId();
87         } else {
88                 echo "Disk already existed in db, will create more tapes?\n";
89         }
90         
91         return $val;
92 }
93 ?>