timestamp); $formattedTime = strftime("%k:%M", strtotime($date->month."/".$date->day."/".$date->year." ".$date->hour.":".$date->minute.":".$date->second)); // Check the timezone to see if it is custom. If so, // "Custom" will be shown as the timezone in the report. $ret_val = get_custom_tz_dst($user); $ret_val_array = explode ("?",$ret_val->custom_tz_dst); $CustomTZMethod = $ret_val_array[0]; $UseCustomTZ = ($CustomTZMethod == 'EXACT'); $networkConfig = get_network_configuration_ipv4($user); $productInfo = get_product_info($user); error_log("Product Info = " . print_r($productInfo, true )); $sortCriteria = new SortCriteria(); $sortCriteria->sortColumn = 3; $sortCriteria->ascending = 1; $sortCriteria->filterPattern = "*"; $drives = get_all_drives_ex($user, $sortCriteria); $iobs = get_blades($user); error_log("I/O Blades = " . print_r($iobs, true )); $sort = new SortCriteria(); $libs = get_logical_libraries($user, $sort); $IPv6Enabled = is_ipv6_enabled(); $ipv6Addrs = get_all_ipv6_addresses(); error_log("ipv6Addrs = ". print_r($ipv6Addrs, true ) ); //$ipv6Addrs = array("2001::55:ee/64", "2001::55:3e/64", "2001::55:2e/64", "2001::55:1e/64", "2001::55:e9/64", "2001::55:e8/64", "2001::55:e7/64", "2001::55:e6/64", "2001::55:e5/64", "2001::55:e4/64", "2001::55:e3/64", "2001::55:e2/64", "2001::55:e1/64" ); // Try the GUI over ride first $Brand = getenv(ADICLIBRARY_BRAND_GUI); if( $Brand == "" ) $Brand = getenv(ADICLIBRARY_BRAND); switch( $Brand ) { case 'ibm': $theSN = $productInfo->alternateId; break; case 'dell': $theSN = $productInfo->serialnumber; break; case 'tandberg': $theSN = $productInfo->serialnumber; break; case 'adic': $theSN = $productInfo->serialnumber; break; case 'quantum': $theSN = $productInfo->serialnumber; break; } $ApolloVer = ""; // Is this an Apollo robot? $descriptions = get_firmware_versions($user); error_log("get_firmware_versions = ". print_r($descriptions, true) ); $isApollo = false; foreach($descriptions as $description) { // CR 19990 Do not diaply the Apollo imager version if( $description->component == "Robot Firmware" ) { $ApolloVer = $description->version; if($ApolloVer == "") // If the robot is dead this can come back blank $ApolloVer = "N/A"; break; } } ////////////////////////////////// // Handle the encryption stuff ////////////////////////////////// $doEKM = is_ibm_encryption_licensed($user); $doQEKM = false; $doSKM = false; $doRKM = false; if ($doEKM) { // Try to get whatever S/Ns we can $akmSNs = @akm_get_server_serial_numbers($user); error_log("akm_get_server_serial_numbers returned ". print_r($akmSNs,true) ); $rkm_data = get_ekm( $user, 3 ); error_log("rkm_data = ". print_r($rkm_data, true) ); if($rkm_data->primaryIP != "") $doRKM = true; $akm_data = get_ekm( $user, 2 ); error_log("akm_data = ". print_r($akm_data, true) ); if($akm_data->primaryIP != "") { $doSKM = true; $akmServAvail = @akm_servers_available($user); if ($akmServAvail == 1) // Ensure that both are up { $qkmVer = @akm_get_software_version($user); error_log("akm_get_software_version returned ". print_r($qkmVer,true) ); } else { $qkmVer = "Unknown"; error_log("akm servers not available, setting qkm version to Unknown"); } } $ekm_data = get_ekm( $user, 1 ); error_log("ekm_data = ". print_r($ekm_data, true) ); if($ekm_data->primaryIP != "") $doQEKM = true; $ekmServerDefault = ""; // If this is blank the display will show QKM or Q-EKM else it will so what is in the var. $sslEnabled = get_ekm_ssl($user)? Enabled : Disabled; // If no settings have been saved don;t show encryption if( !$doRKM && !$doQEKM && !$doSKM ) $doEKM = false; } ?> System Information Report
 
Date & Time
Date Time Timezone
 
Physical Library
Host Name IPv4 Address Serial # Firmware Version
IPv6 Addresses

BSP Level Last update BSP Level Last update Robot Firmware Version
 
Encryption
Key Server Type Version SSL Connection Primary Host Primary Port Primary S/N Secondary Host Secondary Port Secondary S/N
 
Library Partitions
Name Serial Number Control Path Mode Encryption Type Slots Media Drives
filterColumn = 0; $sortCriteria->ascending = true; $libraryDrives = get_all_drives_by_library($user, $lib->guid, $sortCriteria, (int) 0, (int) MEDIA_TYPE_ANY); $ekm_data_lib = get_ekm_by_library( $user, $lib->guid ); //error_log(print_r($libraryDrives, true)); $cpDrives = get_command_path_drives($user, $lib->guid); $commandPath = "None"; $foundCommandPath = false; foreach ($libraryDrives as $libraryDrive) { foreach ($cpDrives as $cpDrive) { if ($cpDrive == $libraryDrive->guid) { error_log("Command Path Drive interface type is :". print_r($libraryDrive->interfaceType,true) ); if ($libraryDrive->interfaceType == 'SCSI') { $commandPath = "SCSI ID ".$libraryDrive->scsiId; } else if ($libraryDrive->interfaceType == 'Fibre' && $libraryDrive->wwnn) { $commandPath = "WWNN ".$libraryDrive->wwnn; } else if ($libraryDrive->interfaceType == 'SAS' && $libraryDrive->wwnn) { # PCR 21072: Remove colon from SAS Address # PCR 21076: Show wwpn instead of wwnn, and change the label to "SAS Address" $saswwpn = str_replace(":", "", $libraryDrive->wwpn); $commandPath = "SAS Address
".$saswwpn; } $foundCommandPath = true; break; } } if ($foundCommandPath) break; } if ($foundCommandPath == false) { // If we still have not found a control path and there is a blade in the system - then make the Cp the blade. if( sizeof($iobs) != 0 ) { // Has BLADES $commandPath = "I/O Blade"; } } // Get the currents library's encryption status error_log("Guid:".$lib->guid); $EncryptionMethod = array( "N/A", "None", "System Managed", "Application Managed", "Library Managed", "Custom" ); $encryptData = get_partition_enryption($user, $lib->guid); // Make sure the method is valid - if not make it N/A if( $encryptData->method > sizeof($EncryptionMethod)) $encryptData->method = 0; // Check that encryption is supported by the partition. if not, // show the method as "unsupported". if(!GetEncryptionSupported($libraryDrives)) { $encryptionString = "Unsupported"; $encryptData->method = 0; } else $encryptionString = $EncryptionMethod[$encryptData->method]; // Make sure the method is valid - if not make it N/A if( $encryptData->method > sizeof($EncryptionMethod)) $encryptData->method = 0; // PCR 23228 States the drive should show there encryption type not the paritions. // Note: This array is used below to display the encryption methods for the drives. //$libraryEncryption[$lib->name] = $EncryptionMethod[$encryptData->method]; $ekm_data_lib = get_ekm_by_library( $user, $lib->guid ); if ($ekm_data_lib->serverType==1) { $encryptionType = "Q-EKM"; } else if ($ekm_data_lib->serverType==2) { $encryptionType = "SKM"; } else if ($ekm_data_lib->serverType==3) { $encryptionType = "RKM"; } else { $encryptionType = "N/A"; } ?>
 
Drives
Location Vendor Model Type Serial Number Firmware Level Sled Boot Version Sled App Version Encryption I/O Blade
connected
guid ); error_log("drive->encryptionSupported = ". ($drive->encryptionSupported?"true":"false") ." | Location = ". $drive->location ); if( ($drive->encryptionSupported) && ($drive->driveType == 'LTO-4' || $drive->driveType == 'LTO-5') && ($drive->vendor == 'IBM') ) { //error_log("\n\nDriveName = ". $drive->name ." !"); //pcr 23228 $driveEncryption = $libraryEncryption[$drive->name]; $driveEncryption = $EncryptionMethod[$drive->encryptionMethod]; $encryptionType = "Q-EKM"; } else if( ($drive->encryptionSupported) && ($drive->driveType == 'LTO-4' || $drive->driveType == 'LTO-5') && ($drive->vendor == 'HP') ) { //error_log("\n\nDriveName = ". $drive->name ." !"); //pcr 23228 $driveEncryption = $libraryEncryption[$drive->name]; $driveEncryption = $EncryptionMethod[$drive->encryptionMethod]; $encryptionType = "SKM"; } else { $driveEncryption = "N/A"; $encryptionType = "N/A"; } ?>

No I/O Blades detected.

0 ) { ?>
I/O Blades
Location WWNN Firmware level Status