3 V3gS"@sPddlZddlZddlZddlZddlZddlZddlTddlmZdZdZ dZ dZ dZ dZ ejeZde_d e_de_d d Zd d ZddZddZddZddZddZd>ddZd?ddZddZdd Zd!d"Zd#d$Z d%d&Z!d'd(Z"d)d*Z#d+d*Z#d,d-Z$d.d/Z%d0d1Z&d2d3Z'd4d5Z(d6d7Z)d8d9Z*d:d;Z+ddatarSZdironlyuserr+r r r restart_externals.           r_c Csi}i}tjd}g}x|D]}t|dkr<|dddkst|dkrX|dddkst|dkr|dddks|dddkrqd |}tj|}t|jd krtjd |d t||j ||||<qWxn|D]f}d }x\|r@d}xL|D]D} || krqt|t| kr|| dt|kr|j | d }PqWqWqWxL|D]D}tj ||j } tj ||j } | |kri|| <||| | <qLWtjdt|dt|||fS)Nz/devrZloopZcdromrZdmsrz/dev/rz filename: z statinfo: TFzFinal devices: z Block Devices: )r1listdirlenstatS_ISBLKst_moder r%r<r-removemajorst_rdevminor) Z block_devicesZ statinfo_devfilesZdevicesrSfilenameZstatinfoZdeviceZretryinnerrhrjr r r get_devicess@  d      $   rncCs|dkr dSt|}|dkr&d}d}n:|dkr8d}d}n(|dkrJd}d}n|dkr\d}d }n|St||d krd ||tt||d d |f}nd |||f}tt||kr|Stjd tt|||f|S)NlTi@GiMiK z%d.%d%sz%d%sz%s != %s use %s)floatroundr#r<int_num_valuesr r%)valstrvalZdivisorZ qualifierZstr_numr r r str_num_valuess.(rzcCs$|dks|dkrdS|jr$t|St|dkrsL0    "