3 $BASE_LIB=$_SERVER["BASE_LIB"];
4 $BASE_DATA=$_SERVER["BASE_DATA"];
5 $BACULA_USER=$_SERVER["BACULA_USER"];
7 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $argv;
9 require_once "$BASE_LIB/lib.php";
11 if(!isset($argv[5])) {
12 echo "Usage: ".$argv[0]." changer-device command slot archive-device drive-index\n";
16 $changer_dev = $argv[1];
19 $arc_device = $argv[4];
20 $drive_index = $argv[5];
22 $changer = $changer_dev;
49 function unload_tape()
51 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
53 $tapeloc = conf_getVal($changer, "drivelocation");
57 if(file_exists("$tapeloc/$changer-drive$taped")) unlink("$tapeloc/$changer-drive$taped");
62 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
67 $db = db_getDB($argv[1]);
69 $res = $db->query("select * from disk_list order by disk_id");
71 $tapeloc = conf_getVal($changer, "drivelocation");
72 $amloc = conf_getVal($changer, "automountdir");
78 $res = $db->query("select disk_id,tape_name from slots where slot_no=='$slot'");
79 foreach($res as $row) {
80 $did = $row["disk_id"];
81 $file = $row["tape_name"];
84 $res = $db->query("select disk_name from disk_list where disk_id=='$did'");
85 foreach($res as $row) {
86 $diskname = $row["disk_name"];
89 if(file_exists("$tapeloc/$changer-drive$taped")) unlink("$tapeloc/$changer-drive$taped");
90 symlink("$amloc/".$diskname."/pbdc/".$argv[1]."/tapes/$file", "$tapeloc/$changer-drive$taped");
94 function loaded_tape()
96 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
101 $db = db_getDB($argv[1]);
103 $res = $db->query("select * from disk_list order by disk_id");
105 $tapeloc = conf_getVal($changer, "drivelocation");
106 $amloc = conf_getVal($changer, "automountdir");
109 if(file_exists("$tapeloc/$changer-drive$taped")) {
110 $rl = basename(readlink("$tapeloc/$changer-drive$taped"));
119 $sql = "select slot_no from slots where tape_name=='$rl'";
120 $res = $db->query($sql);
122 foreach($res as $row) {
133 function list_tapes()
135 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
139 $db = db_getDB($argv[1]);
141 $res = $db->query("select * from slots order by slot_no");
143 $amloc = conf_getVal($changer, "automountdir");
145 foreach($res as $row) {
146 //echo "Listing tapes for disk ".$row["disk_id"].", ".$row["disk_name"]."\n";
147 //echo "dir: $amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/\n";
149 $tapename = $row["tape_name"];
150 $did = $row["disk_id"];
151 $sn = $row["slot_no"];
152 $res2 = $db->query("select disk_name from disk_list where disk_id=='$did'");
154 foreach($res2 as $row2) {
157 $tn = "$amloc/".$dn."/pbdc/".$argv[1]."/tapes/$tapename";
158 if(file_exists($tn)) {
159 echo "$sn:$tapename\n";
169 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
173 $db = db_getDB($argv[1]);
175 $res = $db->query("select max(slot_no) from slots");
177 foreach($res as $row) {
184 // $amloc = conf_getVal($changer, "automountdir");
188 // foreach($res as $row) {
189 // //echo "Listing tapes for disk ".$row["disk_id"].", ".$row["disk_name"]."\n";
190 // //echo "dir: $amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/\n";
192 // $dh = opendir("$amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/");
193 // while(($file = readdir($dh)) !== false) {
194 // if(ereg("d[0-9]+_vol[0-9]+", $file)!=false) {
197 // //echo "didnt match: $file\n";
211 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
217 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;