#! /bin/bash

# default libexecdir used to bootstrap scripts
libexecdir=${GLOBUS_LOCATION}/libexec

# load GRIS common code and initialization
. ${libexecdir}/grid-info-common

######################################################################

emit_resource_os_summary ()
{
    # $1 is dn suffix
    # $2 .. $N are additional object entries
cat <<EOF
${_line_class_dn}dn: $1
EOF
    shift
    while [ $# -gt 0 ]
    do
	cat <<EOF
$1
EOF
	shift
    done

if [ "X${_mds_want_glue}" = "Xtrue" ]
then
cat <<EOF
${_line_class_oc}objectclass: EDTTop
${_line_class_oc}objectclass: ClusterTop
${_line_class_oc}objectclass: OSVersion
${_line_class_av}OSName: ${_os_name}
${_line_class_av}OSRelease: ${_os_release}
${_line_class_av}OSVersion: ${_os_version}

EOF
else
cat <<EOF
${_line_class_oc}objectclass: MdsOs
${_line_class_av}Mds-OS-name: ${_os_name}
${_line_class_av}Mds-OS-release: ${_os_release}
${_line_class_av}Mds-OS-version: ${_os_version}

EOF
fi
}

emit_resource_os_swd ()
{
if [ "X${_mds_want_glue}" = "Xtrue" ]
then
cat <<EOF
${_line_class_dn}dn: sclInfo=OperatingSystem, $1
${_line_class_oc}objectclass: EDTTop
${_line_class_oc}objectclass: ClusterTop
${_line_class_oc}objectclass: OSVersion
${_line_class_av}OSName: ${_os_name}
${_line_class_av}OSRelease: ${_os_release}
${_line_class_av}OSVersion: ${_os_version}
`emit_mds_object_timestamps`

EOF
else
cat <<EOF
${_line_class_dn}dn: Mds-Software-deployment=operating system, $1
${_line_class_oc}objectclass: MdsSoftware
${_line_class_oc}objectclass: MdsOs
${_line_class_av}Mds-Software-deployment: operating system
${_line_class_av}Mds-Os-name: ${_os_name}
${_line_class_av}Mds-Os-release: ${_os_release}
${_line_class_av}Mds-Os-version: ${_os_version}

EOF
fi
}

emit_resource_os_descriptions ()
{
    probe_mds_object_timestamps

    if [ "X${_dump_host_object}" = "Xtrue" ]
    then
	emit_resource_os_summary "${_suffix}"
    fi

    if [ "X${_dump_devclass_object}" = "Xtrue" ]
    then
	emit_resource_os_swd "${_suffix}"
    fi
}

probe_resource_os ()
{
	_os_name="`${GLOBUS_SH_UNAME-uname} -s`"
	_os_release="`${GLOBUS_SH_UNAME-uname} -r`"
	_os_version="`${GLOBUS_SH_UNAME-uname} -v | ${GLOBUS_SH_SED-sed} s/#//g`"

    # run this in initialized subshell environment
    	emit_resource_os_descriptions
}

#############
# do the work
probe_resource_os
