#! /bin/bash

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

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

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

emit_XML_OperatingSystem ()
{
cat <<EOF

<ce:OperatingSystem
  ce:Name="${_os_name}"
  ce:Release="${_os_release}"
  ce:Version="${_os_version}"
  xmlns:ce="http://glue.base.ogsa.globus.org/ce/1.1"
/>

EOF

}

emit_resource_os_summary ()
{
    # $1 is dn suffix
    # $2 .. $N are additional object entries
cat <<EOF
${_line_class_dn}dn: $1
${_line_class_oc}objectclass: MdsOs
EOF
    shift
    while [ $# -gt 0 ]
    do
	cat <<EOF
$1
EOF
	shift
    done
cat <<EOF
${_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
}

emit_resource_os_swd ()
{
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}
`emit_mds_object_timestamps`

EOF
}

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`

    # run this in initialized subshell environment
    emit_XML_OperatingSystem;
}

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