ó
b=0Yc           @   s°   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d Z d „  Z i d d 6d d 6d d 6d d	 6Z d
 „  Z d e  j	 d „ Z
 d e  j	 d „ Z d „  Z d „  Z d S(   iÿÿÿÿNs   /proc/lve/listc          C   s¨   y€ t  t d ƒ }  |  j ƒ  } y t | d d ƒ d g } Wn! t k
 r_ d  d t g } n X| d d k r d d g } n  Wn! t k
 r£ d  d t g } n X| S(   Nt   ri    t   OKs/   clcommon: get_lve_version: Can`t get data from i   s+   clcommon: get_lve_version: Can`t open file (   t   opent   LVE_FILEt	   readlinest   intt
   IndexErrort   Nonet   IOError(   t   ft   linest   LVE_VERSIONt   LVE_VERISON(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   get_lve_version   s    i   t   Ki   t   Mt   Gt   Tc         C   s˜   t  |  ƒ } t j d ƒ } t j d ƒ } t j d t j ƒ } | j | ƒ } | j | ƒ } | j | ƒ } | d k s | d k s | d k r” |  Sd S(   sb    check that val is a valid CPU limit (0-100 int or speed (% or MHZ\GHZ))
   return val if ok a
   s
   \d{1,2}0?$s   \d+(?:\.\d+)?%$s   \d+(?:\.\d+)?(mhz|ghz)+$N(   t   strt   ret   compilet
   IGNORECASEt   matchR   (   t   valt   datat
   regexp_intt   regexp_speedpt   regexp_speedft   p1t   p2t   p3(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   validate_cpu    s    $i    c         C   sI   y t  |  ƒ } Wn t k
 r$ d SX| | k o< | k n rE |  Sd S(   sN   
    Check that val - is a string number 
    
    return val as a string
    N(   R   t
   ValueErrorR   (   R   t   min_valt   max_valt   dig_val(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   validate_int0   s    c         C   s–   yu |  d } | j  ƒ  r, d } |  | }  n  t t |  d  ƒ t | j ƒ  d ƒ } | | k ok | k n rt | SWn t t t f k
 r‘ n Xd  S(   NiÿÿÿÿR   i   (	   t   isdigitR   t   floatt   BYTES_CONVERSION_TABLEt   upperR   R    t   KeyErrorR   (   R   R!   R"   t   suffixt   result(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   memory_to_page>   s    
(c         C   st   |  d k  r t  |  d ƒ d S|  d k  rO t  t t |  ƒ d d d ƒ ƒ d St  t t |  ƒ d d	 d ƒ ƒ d S(
   Ni   i   R   i   i   i   R   R   i   (   R   t   roundR&   (   t   pages(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   page_to_memoryK   s
    %c         C   s¹   t  j d d | d | g d t  j ƒ} | j ƒ  d j d ƒ } xr | D]j } | j ƒ  j ƒ  } y2 | d j |  ƒ t j t	 | d ƒ t
 j ƒ WqG t t t f k
 r° qG qG XqG Wd  S(   Ns   /bin/pss   -Us   -ut   stdouti    s   
iÿÿÿÿ(   t
   subprocesst   Popent   PIPEt   communicatet   splitt   rstript   indext   ost   killR   t   signalt   SIGHUPR   R    t   OSError(   t   itemt   usernamet   psR
   t   rowt   parts(    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   reload_processesR   s    '!i   i   i   @(   t   sysR1   R8   R:   R   R   R   R'   R   t   maxintR$   R,   R/   RB   (    (    (    s3   /usr/lib/python2.7/site-packages/clcommon/clfunc.pyt   <module>   s   <	
		