#!/bin/bash
# ###########################################################################
# Copyright (c) 2011, Dell Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
#    * Redistributions of source code must retain the above copyright
#      notice, this list of conditions and the following disclaimer.
#    * Redistributions in binary form must reproduce the above copyright
#      notice, this list of conditions and the following disclaimer in the
#      documentation and/or other materials provided with the distribution.
#    * Neither the name of Dell Inc. nor the names of its contributors
#      may be used to endorse or promote products derived from this software
#      without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL DELL INC. BE LIABLE FOR ANY DIRECT,
# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ###########################################################################
# Authors: Chris A. Poblete
# Version: 1.0.0
# ###########################################################################

MYNAME=`basename $0`
. ${0%/*}/wsl-functions

usage() {
  fUsageheader
  cat <<EOF
USAGE: $MYNAME check

Sends SOAP message with WS-MAN IDENTIFY command. 

${CommonUsage1}
EOF
  $WSCOLORNORM
  exit 1
}

which wget 2>&1 >/dev/null; [ $? -ne 0 ] && usage
which xmllint 2>&1 >/dev/null; [ $? -ne 0 ] && usage

[ $# -lt 1 ] && usage

# initializations
fGetTarget
fSetWGET

doecn() {
  fGetUUID
  fReqRspNext
cat <<EOF >${REQUESTFILE}
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsman="http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd" xmlns:n1="http://schemas.openwsman.org/wbem/wscim/1/intrinsic">
  <s:Header>
    <wsa:Action s:mustUnderstand="true">http://schemas.openwsman.org/wbem/wscim/1/intrinsic/EnumerateClassNames</wsa:Action>
    <wsa:To s:mustUnderstand="true">${BURL}</wsa:To>
    <wsa:MessageID s:mustUnderstand="true">${UUID}</wsa:MessageID>
    <wsman:ResourceURI s:mustUnderstand="true">http://schemas.openwsman.org/wbem/wscim/1/intrinsic</wsman:ResourceURI>
    <wsa:ReplyTo>
      <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
    </wsa:ReplyTo>
  </s:Header>
  <s:Body>
    <n1:EnumerateClassNames_INPUT/>
  </s:Body>
</s:Envelope>
EOF
  fNormalizeXML ${REQUESTFILE}
  fDumpRequestFile
  wget ${WGOPT} --post-file=${REQUESTFILE} --output-document=${RESPONSEFILE} >>${LOGFILE} 2>&1
  export STAT=$?
}

doecn
fNormalizeXML ${RESPONSEFILE}
fDisplayResponse ${RESPONSEFILE}

/bin/cp ${RESPONSEFILE} ${RETURNFILE}
echo "Output is saved to ${RETURNFILE}"
exit ${STAT}

# ###########################################################################
# End of Code
# ###########################################################################
