ciner services check
diff --git a/sensu/files/checks/check_cinder_services.sh b/sensu/files/checks/check_cinder_services.sh
new file mode 100755
index 0000000..e294869
--- /dev/null
+++ b/sensu/files/checks/check_cinder_services.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+#check cinder service-list on ctls
+
+usage() {
+ echo "usage: ./check_cinder_services.sh -u <openstack.user> -p <openstack.password> -t <openstack.tenant> -h 'http://<openstack.host>:<openstack.port>/v2.0'"
+ exit 1
+}
+
+while getopts ":u:p:t:h:" opt; do
+ case $opt in
+ u)
+ user=${OPTARG};;
+ p)
+ passwd=${OPTARG};;
+ t)
+ tenant=${OPTARG};;
+ h)
+ host=${OPTARG};;
+ \? )
+ echo "Invalid option"
+ usage;;
+ : ) echo "Option -"$OPTARG" requires an argument." >&2
+ usage;;
+ esac
+done
+
+exit_critical() {
+ echo "CRITICAL: $*"
+ exit 2
+}
+
+exit_ok() {
+ echo "OK: $*"
+ exit 0
+}
+read -ra cinder_state <<< $(cinder --os-username $user --os-password $passwd --os-tenant-name $tenant --os-auth-url $host service-list)
+
+if [[ -z ${cinder_state[@]} ]]; then
+ exit_critical "Unknown error."
+fi
+
+read -ra cinder_state_down <<< $(cinder --os-username $user --os-password $passwd --os-tenant-name $tenant --os-auth-url $host service-list | head -n -1 | tr -d "|" | awk '/'down'/ {print "Service " $1 " on " $2 " is DOWN" ";"}')
+
+EXITVAL=0
+
+if [[ -n ${cinder_state_down[@]} ]]; then
+
+ read -ra scheduler_test <<< ${cinder_state_down[@]#cinder-scheduler}
+
+ if [ ${#cinder_state_down[@]} -ne ${#scheduler_test[@]} ]; then
+ EXITVAL=2
+ fi
+
+ read -ra volume_test <<< ${cinder_state_down[@]#cinder-volume}
+
+ if [ ${#cinder_state_down[@]} -ne ${#volume_test[@]} ]; then
+ EXITVAL=2
+ fi
+fi
+
+if [ $EXITVAL != 0 ]; then
+ exit_critical ${cinder_state_down[@]}
+else
+ exit_ok "All cinder services up."
+fi
\ No newline at end of file