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" );
// Must be brand 'dell'
$theSN = $productInfo->serialnumber;
$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);
if ($doEKM)
{
$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($ver,true) );
}
else
{
$qkmVer = "Unknown";
error_log("akm servers not available, setting qkm version to Unknown");
}
$akm_data = get_ekm( $user, 2 );
error_log("akm_data = ". print_r($akm_data, true) );
$ekm_data = get_ekm( $user, 1 ); //!?! get_akm( $user );
error_log("ekm_data = ". print_r($ekm_data, true) );
$ekmServerDefault = ""; // If this is blank the display will show Q-EKM else it will so what is in the var.
$sslEnabled = get_ekm_ssl($user)? Enabled : Disabled;
}
?>
System Information Report
Date & Time
Date
Time
Timezone
= $formattedDate ?>
= $formattedTime ?>
= $UseCustomTZ?"Custom":$date->timezone ?>
Physical Library
Host Name
IPv4 Address
Serial #
Firmware Version
= $networkConfig->hostname ?>
= $networkConfig->ip ?>
= $theSN ?>
= $productInfo->productversion ?>
IPv6 Addresses
= $ipv6Addrs[$col+($row*4)] ?>
BSP Level
Last update
BSP Level
Last update
Robot Firmware Version
= $productInfo->bsp_level ?>
= $productInfo->lastupdate ?>
= $productInfo->bsp_level ?>
= $productInfo->lastupdate ?>
= $ApolloVer ?>
Library Partitions
Name
Serial Number
Control Path
Mode
Encryption
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;
// 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 = "EKM";
}
else
{
$encryptionType = "N/A";
}
?>