code code code
[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
31                 // TODO create action group here
32                 
33         }
34 }
35
36 function conf_getVal($changer, $name)
37 {
38         $db = db_getDB($changer);
39         
40         $sql = "select config_value from config where config_name=='$name'";
41         //error_log("from getval: ".$sql);
42         
43         $res = $db->query($sql);
44         
45         if(!$res) return false;
46         
47         $val = false;
48         
49         foreach($res as $row) {
50                 $val = $row["config_value"];
51         }
52         
53         return $val;
54 }
55
56 function conf_setVal($changer, $name, $value)
57 {
58         $db = db_getDB($changer);
59         
60         $sql = "delete from config where config_name=='$name'";
61         $db->query($sql);
62         
63         $sql = "insert into config values ('$name', '$value')";
64         $db->query($sql);
65         
66         //error_log("from setval: ".$sql);
67 }
68
69 function add_diskToDB($changer, $diskid)
70 {
71         $db = db_getDB($changer);
72         
73         $sql = "select * from disk_list where disk_name=='$diskid'";
74         $res = $db->query($sql);
75         if(!$res) return false;
76         
77         $val = false;
78         foreach($res as $row) {
79                 $val = $row["disk_id"];
80         }
81         
82         if(!$val) {
83                 $sql = "insert into disk_list values(NULL, '$diskid')";
84                 $db->query($sql);
85                 return $db->lastInsertId();
86         } else {
87                 echo "Disk already existed in db, will create more tapes?\n";
88         }
89         
90         return $val;
91 }
92 ?>