self._url = None
self._gdb_script = '/tmp/ogdb'
self._debug_path = '/tmp/lustre-log'
+ self._dump_file = None
self._src_dir = None
def verbose(self, flag = None):
return self._debug_path
def src_dir(self, val = None):
- if val: self._url = val
- return self._url
+ if val: self._src_dir = val
+ return self._src_dir
+
+ def dump_file(self, val = None):
+ if val: self._dump_file = val
+ return self._dump_file
config = Config()
quit""" % (mdsuuid, uuid, stripe_cnt, stripe_sz, stripe_off, pattern, devlist)
self.run(cmds)
+ # cleanup a device
+ def dump(self, dump_file):
+ cmds = """
+ debug_kernel %s 1
+ quit""" % (dump_file)
+ self.run(cmds)
+
# ============================================================
# Various system-level functions
# (ideally moved to their own module)
for dev_dir, mod in rev:
if not self.mod_loaded(mod):
continue
+ # debug hack
+ if mod == 'portals' and config.dump_file():
+ lctl.dump(config.dump_file())
log('unloading module:', mod)
if config.noexec():
continue
n.cleanup()
else:
panic('osc not found:', osc_uuid)
+ lov.cleanup()
else:
osc = OSC(l)
osc.cleanup()
short_opts = "hdnv"
long_opts = ["ldap", "reformat", "lustre=", "verbose", "gdb",
"portals=", "makeldiff", "cleanup", "noexec",
- "help", "node=", "get=", "nomod", "nosetup"]
+ "help", "node=", "get=", "nomod", "nosetup",
+ "dump="]
opts = []
args = []
try:
config.nomod(1)
if o == "--nosetup":
config.nosetup(1)
+ if o == "--dump":
+ config.dump_file(a)
return args
def fetch(url):