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); ?> Setup Partition
Setup - Partition Creation Mode
Choose Partition creation mode.

  • Automatic - Assigns library resources proportionately among the partitions, see online help for more information.
  • Manual - Allows for finer control over which library storage resources are allocated to a partition.

  • Setup - Partitions
    Create, Modify, or Delete a Library Partition.

    Name: Type: Mode:
    emulationTypeEnum] = "ML6000"; $theTotalMedia = $lib->totalMedia - $lib->fullMailbox; $value = "$lib->name:$lib->guid:$lib->emulationTypeEnum:$lib->barcodePolicyEnum:" . "$lib->autoClean:$lib->totalSlots:$theTotalMedia"; if ($checked) $selectedLibrary = $value; // Handle the EKM license counts $drives = get_all_drives_by_library($user, $lib->guid, $sortCriteria, (int)0,(int)MEDIA_TYPE_ANY); error_log( "Drives = ". print_r($drives, true) ); $ekm_data_lib = get_ekm_by_library( $user, $lib->guid ); error_log( "\n\n\nekm_data_lib = ". print_r($ekm_data_lib, true) ); $lib->EncryptCnt = 0; // Create the new attribute foreach($drives as $drive ) { if(($drive->driveType == 'LTO-4' || $drive->driveType == 'LTO-5') && ($drive->name == $lib->name)) { // It's an LTO4 or LTO5 drive that is capable of encryption error_log("+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- ". $drive->location . "= \n". print_r($drive,true) ); if($drive->interfaceType != "SCSI") $lib->EncryptCnt++; } } ?>
    value="" onclick="setSelectedLibrary(this.value);"> name ?> emulationTypeEnum] ?> status ?>
    "> "> "> ">
    unassigned_drive_count > 0 && $counts->unassigned_slot_count > 0 ) { ?> Encrypyion->Partition Configuration menu selection { ?>

    Automatically Create Partitions

    Automatic partitioning assigns library resources proportionately among the partitions, see online help for more information.


    Enter the number of partitions you would like to create:

    Available Drives: unassigned_drive_count ?>
    Available Storage: unassigned_slot_count ?>
    I/E Station Slots: mailbox_count ?>
    Cleaning Slots: cleaning_count ?>
    Partitions:
    ">
    Create Partition

    For each partition, set the following:


    "; ?>
    Select Emulation Type:
    Enter Name: (max 12 characters)
    Set Media Barcode Format:
    Enter Number of Slots:   [unassigned_slot_count ?>] Available
    Select Drives:
    Location Interface Type Mode State
    Modify Partition -
    Change the settings below to modify the partition configuration.
    Deselect a drive from the drive table to exclude it from the partition. Drives hosting the control path for this partition are not selectable and cannot be deleted.
    The partition will be taken offline before the modification.

    "; ?>
    Current Settings: New Settings:
    Enter Name: (max 12 characters)
    Emulation Type:
    Set Media Barcode Format:
    Enter Number of Slots:   [] Available

    Drives:
    Location Interface Type Mode State