Reseteando HIs desde la línea de comandos en BSM

HPEn la línea habitual de HP los nuevos productos crecen como setas y en cuestión de meses te encuentras con multitud de nuevas integraciones donde se redefine de nuevo el rol de cada aplicación.

Es el caso por ejemplo de BSM, OMi y OM: supuestamente OM se convierte ahora en un simple data collector y OMi pretende ser la nueva consola central de operaciones. Esto sería genial si OMi tuviese siquiera la mitad de funcionalidad que la consola de OM, y también sería fantástico si hubiese un poco más de inteligencia en el cálculo de estados de los Health Indicators.

Concretamente dado que esto último no es así acaba siendo necesario montarnos nuestros apaños con TBEC, SBEC y/o TBEA (con las posibles licencias adicionales que eso supone), e incluso echar mano al API de Service Health Rules.

Y sobre ese API va este mini-artículo: en la documentación correspondiente (BSM Extensibility Guide) nos indican la URL para realizar las llamadas y nos informan también de que el API está basado en REST y debemos llamarlo mediante un PUT.

OK. Un PUT. Y con autenticación, por supuesto. ¿Cómo hago eso?

Si intento lanzar la URL desde un navegador obtengo un precioso error 405:

HTTP 405

 

Obviamente el navegador no está realizando un PUT, y de todas formas lo que quiero es poder lanzar esto desde un script para automatizar acciones.

Si en el navegador no funciona tampoco va a funcionar con wget ya que no permite forzar el método PUT, así que tiramos de curl:

#!/bin/bash

CIID=$1
HI=$2
USUARIO=$3
PASSWORD=$4
BSMGWFQDN=$5
RESPONSE=$(curl --user $USUARIO:$PASSWORD -i -X PUT http://$BSMGWFQDN/topaz/servicehealth/customers/1/cis/$CIID/his/$HI/reset)

OKRESPONSE=$(echo $RESPONSE |grep -ic "HTTP/1.1 200 OK")
 if [ $OKRESPONSE > 0 ]; then 
 echo OK
else 
 echo Oops
fi
 exit 0

Con algo como esto (añadiendo comprobaciones de parámetros y demás) al menos tenemos una forma de resetear el estado de cualquier HI… ahora sería extremadamente útil si en vez de resetearlo tuviese alguna forma de recalcular el estado en base a las alertas que han impactado en él y siguen activas (es decir, lo que hace por defecto el árbol de servicios de OM).

Va a ser mucho pedir, supongo.