better heuristic to find mount error
This commit is contained in:
+8
-5
@@ -161,17 +161,20 @@ async function getStatus(volume) {
|
||||
|
||||
let output = safe.child_process.execSync(`systemctl show --value -p ActiveState $(systemd-escape -p --suffix=mount ${volume.hostPath})`, { encoding: 'utf8' });
|
||||
let state = output ? output.trim() : '';
|
||||
let message = 'Mounted';
|
||||
let message;
|
||||
|
||||
if (state !== 'active') { // find why it failed
|
||||
output = safe.child_process.execSync(`journalctl -u $(systemd-escape -p --suffix=mount ${volume.hostPath}) -n 10 --no-pager -o cat`, { encoding: 'utf8' });
|
||||
|
||||
if (!output) {
|
||||
message = `Could not determine failure reason: ${safe.error.message}`;
|
||||
} else {
|
||||
message = output.split('\n').reverse().find(l => l.startsWith('mount.'));
|
||||
if (output) {
|
||||
const idx = output.split('\n').reverse().findIndex(l => l.includes('process exited'));
|
||||
if (idx > 0) message = output[idx-1]; // the line before probably has the error
|
||||
}
|
||||
if (!message) message = `Could not determine failure reason: ${safe.error.message}`;
|
||||
} else {
|
||||
message = 'Mounted';
|
||||
}
|
||||
|
||||
return { state, message };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user