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: