Merge pull request #5 from geissonator/master

BMC Dump fixes and enhancements
diff --git a/geissonator/openbmc-events/openbmc-events b/geissonator/openbmc-events/openbmc-events
index 49ba69d..08717e3 100755
--- a/geissonator/openbmc-events/openbmc-events
+++ b/geissonator/openbmc-events/openbmc-events
@@ -5,9 +5,6 @@
 import json
 
 import urllib3
-from warnings import catch_warnings
-urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
-
 
 class BMC:
     def __init__(self, server):
@@ -66,6 +63,9 @@
         r = self.session.get(self.url + 'xyz/openbmc_project/dump/entry/',
                              verify=False)
         j = r.json()
+        if j['message'] == '404 Not Found':
+            print "No dumps on system\n"
+            return []
         if j['status'] != 'ok':
             raise Exception("Failed to list dumps: \n" + r.text)
 
@@ -75,17 +75,18 @@
         return dumps
     
     def create_dump(self):
-        r = self.session.post(self.url + 'xyz/openbmc_project/dump/action/CreateDump')
+        r = self.session.post(self.url + 'xyz/openbmc_project/dump/action/CreateDump',
+                              headers={'Content-Type': 'application/json'},
+                              data='{"data":[]}')
         j = r.json()
         if j['status'] != 'ok':
             raise Exception("Failed to create dump: \n" + r.text)
         
     def get_dump(self,dump):
-        r = self.session.get(self.url + dump,
+        r = self.session.get(self.url + "/download/dump/" + dump,
                              verify=False)
-        j = r.json()
-        if j['status'] != 'ok':
-            raise Exception("Failed to get dump " + event + ": \n" + r.text)
+        with open("dump" + dump + ".tar.gz","wb") as dump:
+            dump.write(r.content)
 
     def clear_dump(self,dump):
         r = self.session.delete(self.url + dump)
@@ -155,6 +156,8 @@
 parser = argparse.ArgumentParser()
 parser.add_argument('--server', help='hostname or IP of BMC', type=str,
                     required=True)
+parser.add_argument('--suppress-insecure-warnings', '-I', action="store_true",
+                    default=False)
 
 subparsers = parser.add_subparsers()
 
@@ -202,6 +205,10 @@
 
 args = parser.parse_args()
 
+if args.suppress_insecure_warnings:
+    from requests.packages.urllib3.exceptions import InsecureRequestWarning
+    requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
+
 if 'func' in args:
     args.func(args)
 else: