fork download
  1. # your code goes here
  2. import base64
  3. import datetime
  4. import json
  5. from optparse import OptionParser
  6. import urllib2
  7.  
  8. def defineOptions():
  9. print("hiiiiiiiiiii 1 cal")
  10. parser = OptionParser();
  11.  
  12. # How to connect/login to the ServiceNow instance
  13. parser.add_option("--endPoint", dest="endPoint", help="The endpoint of the web service", default="https://d...content-available-to-author-only...w.com/api/now/table/em_event")
  14. parser.add_option("--user", dest="user", help="The user name credential", default="admin")
  15. parser.add_option("--password", dest="password", help="The user password credential", default="dasthu@1")
  16. print("hiiiiiiiiiii 2 cal")
  17.  
  18. # Fields on the Event
  19. parser.add_option("--source", dest="source", help="Source of the event", default="Icinga")
  20. parser.add_option("--eventClass", dest="eventClass", help="Event class", default="Icinga")
  21. parser.add_option("--messageKey", dest="messageKey", help="Message key", default="")
  22. parser.add_option("--node", dest="node", help="Name of the node", default="Default-Node")
  23. parser.add_option("--type", dest="type", help="Type of event", default="High Memory Utilization")
  24. parser.add_option("--resource", dest="resource", help="Represents the resource event is associated with", default="Default-Disk")
  25. parser.add_option("--severity", dest="severity", help="Severity of event", default="3")
  26. parser.add_option("--timeOfEvent", dest="timeOfEvent", help="Time of event in GMT format", default="")
  27. parser.add_option("--description", dest="description", help="Event description", default="Default event description")
  28. parser.add_option("--additionalInfo", dest="additionalInfo", help="Additional event information that can be used for third-party integration or other post-alert processing", default="{}")
  29. parser.add_option("--ciIdentifier", dest="ciIdentifier", help="Optional JSON string that represents a configuration item", default="{}")
  30.  
  31. (options, args) = parser.parse_args()
  32. return options
  33.  
  34. def execute():
  35. if (options.timeOfEvent == ""):
  36. options.timeOfEvent = datetime.datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S');
  37.  
  38. if options.eventClass == "":
  39. options.eventClass = options.source
  40.  
  41. if options.messageKey == "":
  42. options.messageKey = options.source +"__" + options.node +"__" + options.type + "__" + options.resource
  43.  
  44. data = {"source" : options.source, "node" : options.node , "type" : options.type,
  45. "resource" : options.resource, "severity" : options.severity,
  46. "time_of_event" : options.timeOfEvent, "description" : options.description,
  47. "additional_info" : options.additionalInfo, "ci_identifier" : options.ciIdentifier,
  48. "event_class" : options.eventClass, "message_key": options.messageKey}
  49. data = json.dumps(data)
  50.  
  51. headers = {'Content-type': 'application/json', 'Accept': 'application/json'}
  52. request = urllib2.Request(url=options.endPoint, data=data, headers=headers)
  53. base64string = base64.urlsafe_b64encode('%s:%s' % (options.user, options.password))
  54. request.add_header("Authorization", "Basic %s" % base64string)
  55. f = urllib2.urlopen(request)
  56. f.read()
  57. f.close()
  58.  
  59. if __name__ == '__main__':
  60. options = defineOptions();
  61. print("hiiiiiiiiiii 11 cal")
  62. print(options)
  63.  
  64. execute();
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/py_compile.py", line 117, in compile
    raise py_exc
py_compile.PyCompileError: Sorry: IndentationError: expected an indented block (prog.py, line 9)
stdout
Standard output is empty