@@ -27,20 +27,20 @@ function parseMultipathOutput(input) {
27
27
for ( let i = 0 ; i < lines . length ; i ++ ) {
28
28
const line = lines [ i ] ;
29
29
30
- // Match: mpathX (wwid)
31
- const wwidMatch = line . match ( / ^ m p a t h \w + \s + \( ( .* ?) \) / ) ;
32
- if ( wwidMatch ) {
33
- const wwid = wwidMatch [ 1 ] ;
30
+ // Match: <alias> (wwid) or mpathX (wwid)
31
+ const match = line . match ( / ^ ( [ \w \- ] + ) \s + \( ( [ 0 - 9 a - f ] + ) \) / i) ;
32
+ if ( match ) {
33
+ const alias = match [ 1 ] ; // can be a friendly name or mpathX
34
+ const wwid = match [ 2 ] ;
34
35
let size = "UNKNOWN" ;
35
36
let lun = "UNKNOWN" ;
36
37
38
+ // Look ahead for size and LUN info
37
39
for ( let j = i ; j < i + 15 && j < lines . length ; j ++ ) {
38
40
const lookahead = lines [ j ] ;
39
41
40
- if ( lookahead . includes ( "size=" ) ) {
41
- const sizeMatch = lookahead . match ( / s i z e = ( [ \d \. ] + [ T G ] ) / ) ;
42
- if ( sizeMatch ) size = sizeMatch [ 1 ] ;
43
- }
42
+ const sizeMatch = lookahead . match ( / s i z e = ( [ \d . ] + [ T G ] ) / ) ;
43
+ if ( sizeMatch ) size = sizeMatch [ 1 ] ;
44
44
45
45
const lunMatch = lookahead . match ( / \d + : \d + : \d + : ( \d + ) / ) ;
46
46
if ( lunMatch ) {
@@ -49,13 +49,14 @@ function parseMultipathOutput(input) {
49
49
}
50
50
}
51
51
52
- entries . push ( { wwid, size, lun, alias : "unknown-alias" } ) ;
52
+ entries . push ( { alias , wwid, size, lun } ) ;
53
53
}
54
54
}
55
55
56
56
return entries ;
57
57
}
58
58
59
+
59
60
function formatMultipathConf ( entries ) {
60
61
const output = [ ] ;
61
62
output . push ( "multipaths {\n" ) ;
0 commit comments