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("IO 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;
}
}
?>
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
Status
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);
//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 = "FC 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;
// Note: This array is used below to display the encryption methods for the drives.
$libraryEncryption[$lib->name] = $EncryptionMethod[$encryptData->method];
// Check that encryption is supported by the partition. if not,
// show the method as "unsupported".
if(!GetEncryptionSupported($libraryDrives)) $encryptionString = "Unsupported";
else $encryptionString = $EncryptionMethod[$encryptData->method];
?>