guid); if( $DPSLicense->CPFEnabled == 1 || $DPSLicense->LMEnabled == 1 ) { error_log("Releasing DPSLicense for ". $drive->guid . " = ". print_r( $DPSLicense, true ) ); // This drive is using a SNW license - release it. $return = submit_dps_license($user, $drive->guid, 0, 0); //error_log("submit_dps_license3 returned ". $return); } } delete_logical_library($user, $libInfo[1]); } else if ($method == "modifyLibrary") { error_log("\n***************************************************\nMODIFYING LIBRARY\n***************************************************\n"); $libName = $_POST['libName']; $libGUID = $_POST['libGUID']; $emulationType = $_POST['emulationType']; $barcodePolicy = $_POST['barcodePolicy']; $autoClean = isset($_POST['autoClean']) ? 1 : 0; $drives = explode(":", $_POST['selectedDrives']); $slotCount = $_POST['slotCount']; error_log("POST while in Mod lib =\n" . print_r($_POST, true) ); modify_logical_library($user, $libGUID, $libName, $emulationType, $barcodePolicy, $autoClean, $drives, $slotCount); } print $status->out(); return; } $counts = get_library_summary_info($user); $libs = $counts->libs; $lib_count = count($libs); $total_lib_ekm_drives = 0; $LoadedDrives = array(); $LoadedDrivesLl = array(); $libNames = array(); $libDrives = array(); $sParExt = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'); foreach ($libs as $lib) { $libNames[] = $lib->name; // Get only the drives that have tapes in them (So we know when to disable modify) // We'll save the library GUID off to compare in modifyLib() // !?!04-13-09 See about using the MediaPresent indicator here. // This looks at a tape just sitting in a drive as mediaPresent - where the MediaPresnt requires the drive to be loaded. if ($lib->activeDrives > 0) $libDrives[] = $lib->guid; else $libDrives[] = '0'; } // Now find the next name will will use automaticly $newLibName = ""; for( $i=0; $i < sizeof($sParExt)-1; $i++) { //error_log( "Looking for ". "library_".$sParExt[$i] ); if( ! in_array( "library_".$sParExt[$i], $libNames ) ) { //error_log("Found one not being used ". "library_".$sParExt[$i] ); $newLibName = "library_".$sParExt[$i]; break; } } //error_log("New Library name will be ". $newLibName); $selectOpClass = "visibleDiv"; $initBackDiv = "'selectOperation'"; $autoManualInqDiv = "hiddenDiv"; $showAutoCreate = false; // If there are available resources, // then we show the auto partition mode if( $counts->unassigned_slot_count > 0 && $counts->unassigned_drive_count > 0) { if( $lib_count <= 0 ) { // Only show the autocreate stuff $autoManualInqDiv = "visibleDiv"; $selectOpClass = "hiddenDiv"; $initBackDiv = "'autoManualInqDiv'"; } else { // Show the Autocreate button along with the Create, Modify, Delete $showAutoCreate = true; } } $nSlots = get_num_cleaning_slots($user); $autoCleanEnabled = true; if( $nSlots == 0 ) $autoCleanEnabled = false; else $settings = get_settings($user); //!?!CPF $cpfFlag = ""; // if( is_cmd_path_failover_licensed($user) != true ) // $cpfFlag = "DISABLED"; // else if( get_cmd_path_failover_enabled($user, $libGUID ) == true ) //!?! I don't think this is needed - we are not persisting this value // $cpfFlag = "CHECKED"; $emulationMap = get_emulation_map($user); // ksort($emulationMap); $barcodeFormatMap = get_barcodeformat_map($user); ksort($barcodeFormatMap); // Get the available Drive types so we can choose the default number of partitions in Autocreate. $drives = get_all_drives($user, $sortCriteria); error_log("\n\n\nALL Drives = ". print_r($drives, true) ); $ekmTotal = 0; foreach($drives as $drive) { if($drive->encryptionMethod == 4) { $EncryptUsedCnt++; } if( $drive->encryptionSupported == 1 ) { $ekmTotal++; } // If the drive is loaded - add it to the loadedDriveList if($drive->mediaPresent == 1 || $drive->barcode != "") { $LoadedDrives[] = $drive->guid; $LoadedDrivesLl[] = $drive->libGuid; } } $ekmMax = get_ekm_drive_cnt($user); ?>