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"));
118 foreach($res as $row) {
119 //echo "Listing tapes for disk ".$row["disk_id"].", ".$row["disk_name"]."\n";
120 //echo "dir: $amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/\n";
122 $dh = opendir("$amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/");
123 while(($file = readdir($dh)) !== false) {
124 if(ereg("d[0-9]+_vol[0-9]+", $file)!=false) {
131 //echo "didnt match: $file\n";
141 function list_tapes()
143 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
147 $db = db_getDB($argv[1]);
149 $res = $db->query("select * from slots order by slot_no");
151 $amloc = conf_getVal($changer, "automountdir");
153 foreach($res as $row) {
154 //echo "Listing tapes for disk ".$row["disk_id"].", ".$row["disk_name"]."\n";
155 //echo "dir: $amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/\n";
157 $tapename = $row["tape_name"];
158 $did = $row["disk_id"];
159 $sn = $row["slot_no"];
160 $res2 = $db->query("select disk_name from disk_list where disk_id=='$did'");
162 foreach($res2 as $row2) {
165 $tn = "$amloc/".$dn."/pbdc/".$argv[1]."/tapes/$tapename";
166 if(file_exists($tn)) {
167 echo "slot $sn: $tapename\n";
177 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
181 $db = db_getDB($argv[1]);
183 $res = $db->query("select max(slot_no) from slots");
185 foreach($res as $row) {
191 // $amloc = conf_getVal($changer, "automountdir");
195 // foreach($res as $row) {
196 // //echo "Listing tapes for disk ".$row["disk_id"].", ".$row["disk_name"]."\n";
197 // //echo "dir: $amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/\n";
199 // $dh = opendir("$amloc/".$row["disk_name"]."/pbdc/".$argv[1]."/tapes/");
200 // while(($file = readdir($dh)) !== false) {
201 // if(ereg("d[0-9]+_vol[0-9]+", $file)!=false) {
204 // //echo "didnt match: $file\n";
218 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;
224 global $BASE_DATA, $BASE_LIB, $BACULA_USER, $changer, $argv;