notify-by-spark.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/local/bin/python2.7
  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 sparker
  28. import sys
  29. import logging
  30. import re
  31. import argparse
  32. import CLEUCreds
  33. if __name__ == '__main__':
  34. logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s : %(message)s',
  35. filename='/var/log/spark.log', level=logging.DEBUG)
  36. parser = argparse.ArgumentParser(
  37. prog=sys.argv[0], description="Send notifications to a Spark room")
  38. parser.add_argument('--team', '-t', metavar='<TEAM NAME>',
  39. help='Spark Team name to use')
  40. parser.add_argument('--room', '-r', metavar='<ROOM NAME>',
  41. help='Spark Room name to use', required=True)
  42. parser.set_defaults(team=None)
  43. args = parser.parse_args()
  44. spark = sparker.Sparker(logit=True, token=CLEUCreds.SPARK_TOKEN)
  45. if not args.team and re.search(r':', args.room):
  46. team,room = args.room.split(':')
  47. args.team = team
  48. args.room = room
  49. msg = ''
  50. for line in sys.stdin.read():
  51. msg += line
  52. spark.post_to_spark(args.team, args.room, msg)