# $Header: Ptdpm7.pm 31-dec-2003.11:38:10 skumar Exp $
#
# Package : Ptdpm7.pm
#
# Copyright (c) 2002, 2003, Oracle Corporation.  All rights reserved.  
#
#   NAME
#       Ptdpm7.pm
#
#   DESCRIPTION
#       Collects opertating system details
#
#   NOTES
#
#   MODIFIED     (MM/DD/YY)
#      nsharma    03/22/06 - Correct the hardware bitmode reporting
#      mgoodric   11/17/04 - add MGMT_HC_xxx tablenames 
#      mgoodric   09/27/04 - code cleanup 

#      skumar     12/31/03 - AIX changes 
#      mgoodric   05/11/03 - added -debug tracing
#      mgoodric   04/08/03 - fix finding MAC address
#      goramamo   08/16/02 - 904  Changes
#      xxu        06/25/02 - remove /usr/local/bin/perl
#      goramamo   06/02/02 - GIT5 Changes
#      jmansur    05/07/02 - sort kernel params by name
#      aarasu     05/06/02 - aarasu_goramamo020506
#      goramamo   05/01/02 - Created by separating OS subroutines
#                            from Ptdpm1.pm
#
##*************************************************************

use strict;

package Ptdpm7;

use Carp;
require 5.005;

#require 5.6.1;
require Exporter;

use Ptdpm0;
use Ptdpm2;
use Ptdpm3;
use Ptdpm9;
use Ptdpm11;
use Ptdpm15;
use Ptdpm16;

#******************************************
#     Global Variables
#******************************************
use constant NIL => '';


#******************************************
#   Export Subroutines
#******************************************

@Ptdpm7::ISA    = ('Exporter');
@Ptdpm7::EXPORT = qw(
  &getOSSummary
  );

#******************************************
#   Exported Subroutines
#******************************************

sub getOSSummary
{
    debugTrace('Calling... getOSSummary()');

    #Arguments:
    #Outputs  : array containing
    #Function : returns os summary

    my (@os)    = ();
    my (@ossum) = ();
    my $i = 0;

    $os[0] = getOSName();
    $os[1] = getOSrelease();
    $os[2] = getOSversion();

    $ossum[$i] = joinValue($Ptdpm2::OS_TAG, $os[0]);
    $i++;
    if (index($os[0], 'SunOS') > -1)
    {
        $ossum[$i] = joinValue($Ptdpm2::OS_VENDOR_TAG, 'Sun Microsystems');
    }
    else
    {
        $ossum[$i] = joinValue($Ptdpm2::OS_VENDOR_TAG, 'IBM Corporation');
    }
    $i++;
    $ossum[$i] = joinValue($Ptdpm2::OS_BASE_VERSION_TAG, $os[1]);
    $i++;
    $ossum[$i] = joinValue($Ptdpm2::OS_UPDATE_LEVEL_TAG, $os[2]);
    $i++;
    my ($swap) = getMaxSwapSpace();

    $swap = sprintf('%.3f', (trim($swap)) / (1024 * 1024));
    $ossum[$i] = joinValue($Ptdpm2::OS_MAX_SWAP_SPACE_IN_MB_TAG, $swap);
    $i++;

    #my($dist) = getOSDistributorVersion();
    $ossum[$i] =
      joinValue($Ptdpm2::OS_DISTRIBUTOR_VERSION_TAG, $Ptdpm2::NOT_APPLICABLE);
    $i++;

    chomp(my $mach = `$Ptdpm0::GETCONF HARDWARE_BITMODE`);

    $ossum[$i++] = joinValue($Ptdpm2::OS_ADDRESS_LENGTH_IN_BITS_TAG, "${mach}-bit");

    @ossum = trim1DimArrayAfterSplit(@ossum);

    @ossum = verifyNotNullFields($Ptdpm2::MGMT_HC_OS_SUMMARY, \@ossum);
    if (scalar(@ossum) > 0)
    {
        @ossum = verifyNumericFields($Ptdpm2::MGMT_HC_OS_SUMMARY, \@ossum);
    }

    return @ossum;
}

1;

# End of the Program

