3 .ŸgS"ã@sPddlZddlZddlZddlZddlZddlZddlTddlmZdZdZ dZ dZ dZ dZ ejeZde_d e_de_d d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zd>dd„Zd?dd„Zdd„Zdd „Zd!d"„Zd#d$„Z d%d&„Z!d'd(„Z"d)d*„Z#d+d*„Z#d,d-„Z$d.d/„Z%d0d1„Z&d2d3„Z'd4d5„Z(d6d7„Z)d8d9„Z*d:d;„Z+dÚdatarSZdironlyÚuserr+r r r Úrestart_external‘s.           r_c Csºi}i}tjdƒ}g}x¾|D]¶}t|ƒdkr<|dd…dkst|ƒdkrX|dd…dkst|ƒdkr†|dd…dks|dd…dkr†qd |}tj|ƒ}t|jƒd krtjd |d t|ƒƒ|j |ƒ|||<qWxn|D]f}d }x\|r@d}xL|D]D} || krqöt|ƒt| ƒkrö|| dt|ƒ…krö|j | ƒd }PqöWqæWqÜWxL|D]D}tj ||j ƒ} tj ||j ƒ} | |kr‚i|| <||| | <qLWtjdt|ƒdt|ƒƒ||fS)Nz/devrZloopéZcdromrZdmÚsrz/dev/rz filename: z statinfo: TFzFinal devices: z Block Devices: )r1ÚlistdirÚlenÚstatÚS_ISBLKÚst_moder r%r<r-ÚremoveÚmajorÚst_rdevÚminor) Z block_devicesZ statinfo_devÚfilesZdevicesrSÚfilenameZstatinfoZdeviceZretryÚinnerrhrjr r r Ú get_devices«s@  d      $   rncCsÜ|dkr dSt|ƒ}|dkr&d}d}n:|dkr8d}d}n(|dkrJd}d}n|dkr\d}d }n|St||ƒd kr˜d ||tt||d d ƒƒ|f}nd |||f}tt|ƒƒ|kr¼|Stjd tt|ƒƒ||fƒ|S)NÚlÚTi@ÚGiÚMiÚKé z%d.%d%sz%d%sz%s != %s use %s)ÚfloatÚroundr#r<Úint_num_valuesr r%)ÚvalstrÚvalZdivisorZ qualifierZstr_numr r r Ústr_num_valuesÍs.(rzcCs$|dks|dkrdS|jƒr$t|ƒSt|ƒdkrsL0    "