observium-to-spark.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/local/bin/python3.6
  2. # -*- coding: utf-8 -*-
  3. #
  4. # Copyright (c) 2017-2019 Joe Clarke <jclarke@cisco.com>
  5. # All rights reserved.
  6. #
  7. # Redistribution and use in source and binary forms, with or without
  8. # modification, are permitted provided that the following conditions
  9. # are met:
  10. # 1. Redistributions of source code must retain the above copyright
  11. # notice, this list of conditions and the following disclaimer.
  12. # 2. Redistributions in binary form must reproduce the above copyright
  13. # notice, this list of conditions and the following disclaimer in the
  14. # documentation and/or other materials provided with the distribution.
  15. #
  16. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  17. # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19. # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  20. # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21. # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  22. # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  23. # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  24. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  25. # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  26. # SUCH DAMAGE.
  27. import sys
  28. import os
  29. from subprocess import Popen, PIPE
  30. import shlex
  31. if __name__ == '__main__':
  32. if len(sys.argv) != 2:
  33. print('usage: {} <TEAM NAME>'.format(sys.argv[0]))
  34. sys.exit(1)
  35. msg = '_<a href="https://cl-monitoring.ciscolive.network:8080">Observium</a> on cl-monitoring_<br><br>**Notification Type:** {}<br><br>**Element:** {}<br>**Host:** {}<br>**State:** {}<br><br>**Date/Time:** {}<br>'.format(
  36. os.environ['OBSERVIUM_ALERT_STATE'], os.environ['OBSERVIUM_ENTITY_LINK'], os.environ['OBSERVIUM_DEVICE_LINK'], os.environ['OBSERVIUM_TITLE'], os.environ['OBSERVIUM_ALERT_TIMESTAMP'], os.environ['OBSERVIUM_ALERT_TIMESTAMP'])
  37. proc = Popen(shlex.split('/usr/local/bin/notify-by-spark.py -r {}'.format(
  38. sys.argv[1])), stdin=PIPE, stdout=PIPE, stderr=PIPE)
  39. out, err = proc.stdin.write(msg)
  40. proc.communicate()
  41. proc.stdin.close()
  42. print(out)
  43. print(err)