Repository URL to install this package:
| 
      
     
      
        
        
        Version: 
        
         
  
        
    
          
          4.0.105  ▾
        
         
  
      
        
      
  
      
  
     | 
ó
±EYc           @   s@  d  Z  d d l Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d l Z d d l m
 Z
 d d	 l m Z d d
 l m Z d d l m Z e j e  Z e j j Z e j   Z e j d d
 d d e
 j  Z d d  Z e d  Z e d  Z  d   Z! d   Z" d   Z# d   Z$ d S(   s   
Handling of VM disk images.
iÿÿÿÿN(   t   processutils(   t   log(   t	   fileutils(   t
   imageutils(   t   units(   t	   exception(   t   _(   t   image(   t   utilst   cpu_timei   t
   address_spacei   c         C   s  t  j j |   r: t j j d k r: t j d |    n  y¡ t  j j |   r t  j j t  j j	 |  d   r t  j j	 |  d  }  n  d d d d d	 |  f } | d k	 r¿ | d
 | f } n  t j d t
 |  \ } } Wnv t j k
 rS} | j d k r t d
  i |  d 6| d 6} n t d  i |  d 6| d 6} t j d |   n X| st d  i |  d 6| d 6} t j d |   n  t j |  S(   sA   Return an object containing the parsed output from qemu-img info.t   rbdt   locations   DiskDescriptor.xmls   root.hdst   envs   LC_ALL=Cs   LANG=Cs   qemu-imgt   infos   -ft   prlimiti÷ÿÿÿs?   qemu-img aborted by prlimits when inspecting %(path)s : %(exp)st   patht   exps0   qemu-img failed to execute on %(path)s : %(exp)st   reasons3   Failed to run qemu-img info on %(path)s : %(error)st   errorN(   t   osR   t   existst   CONFt   libvirtt   images_typeR   t   DiskNotFoundt   isdirt   joint   NoneR   t   executet   QEMU_IMG_LIMITSR    t   ProcessExecutionErrort	   exit_codeR   t   InvalidDiskInfoR   t   QemuImgInfo(   R   t   formatt   cmdt   outt   errR   t   msg(    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyt
   qemu_img_info.   s,    %!			c         C   s5   | d k r t d   n  t |  | | | |  d S(   s   Convert image to other format.s5   convert_image without input format is a security riskN(   R   t   RuntimeErrort   _convert_image(   t   sourcet   destt	   in_formatt
   out_formatt   run_as_root(    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyt
   convert_imageR   s    c         C   s   t  |  | d | |  d S(   sq   Convert image to other format, doing unsafe automatic input format
    detection. Do not call this function.
    N(   R*   R   (   R+   R,   R.   R/   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyt   convert_image_unsafeZ   s    
c         C   s¡   d d d | |  | f } | d  k	 r7 | d | f } n  y t j d | |  WnL t j k
 r } t d  i | d 6| d 6} t j d	 |  d
 |   n Xd  S(   Ns   qemu-imgt   converts   -Os   -fR/   s.   Unable to convert image to %(format)s: %(exp)sR#   R   t   image_idR   (   R   R   R   R    R   R   R   t   ImageUnacceptable(   R+   R,   R-   R.   R/   R$   R   R'   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyR*   g   s    	c      	   C   s0   t  j |   t j |  | d | Wd  QXd  S(   Nt	   dest_path(   R   t   remove_path_on_errort	   IMAGE_APIt   download(   t   contextt
   image_hrefR   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyt   fetchs   s    c         C   s   t  j |  |  S(   N(   R7   t   get(   R9   R:   (    (    sE   /home/tvault/.virtenv/lib/python2.7/site-packages/nova/virt/images.pyt   get_infox   s    c   	      C   sÒ  d | } t  |  | |  t j |  £t |  } | j } | d  k rl t j d t d  d |   n  | j	 } | d  k	 r´ t j d | d t d  i | d 6| d 6  n  | d k r¸t
 j r¸d	 | } t j
 d
 | |  t j |  ¾ y t | | | d  Wn? t j k
 rN} t j d | d t d  i | d 6  n Xt j |  t |  } | j d k rt j d | d t d
  | j   n  t j | |  Wd  QXn t j | |  Wd  QXd  S(   Ns   %s.partR   s   'qemu-img info' parsing failed.R3   s'   fmt=%(fmt)s backed by: %(backing_file)st   fmtt   backing_filet   raws   %s.converteds   %s was %s, converting to raws'   Unable to convert image to raw: %(exp)sR   s&