ó
½-'Nc           @   s’   d  d l  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 m Z d e f d	 „  ƒ  YZ d S(
   iÿÿÿÿN(   t   getProcessOutput(   t   succeed(   t   PackageStore(   t   PackageChanger(   t   ReleaseUpgrader(   t   ManagerPlugint   PackageManagerc           B   se   e  Z d  Z d
 Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d	 „  Z RS(   i  c         C   sµ   t  t |  ƒ j | ƒ | j |  _ |  j sX t j j | j j d ƒ } t	 | ƒ |  _ n  | j
 d |  j ƒ | j
 d |  j ƒ | j
 d |  j ƒ | j j d |  j ƒ |  j ƒ  d  S(   Ns   package/databases   change-packagess   change-package-lockss   release-upgrades   package-data-changed(   t   superR   t   registert   configt   _package_storet   ost   patht   joint	   data_pathR   t   register_messaget   handle_change_packagest   handle_change_package_lockst   handle_release_upgradet   reactort   call_ont   run(   t   selft   registryt   filename(    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR      s    			
	
	
c         C   s'   |  j  j | j | ƒ |  j | ƒ d S(   s9   Queue C{message} as a task, and spawn the proper handler.N(   R
   t   add_taskt
   queue_namet   spawn_handler(   R   t   clst   message(    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyt   _handle)   s    c         C   s   |  j  t | ƒ S(   N(   R   R   (   R   R   (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR   .   s    c         C   s   |  j  t | ƒ S(   N(   R   R   (   R   R   (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR   1   s    c         C   s   |  j  t | ƒ S(   N(   R   R   (   R   R   (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR   4   s    c         C   s&   |  j  j j ƒ  } | j |  j ƒ | S(   N(   R   t   brokert   get_accepted_message_typest   addCallbackt   _got_message_types(   R   t   result(    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR   7   s    c         C   s<   d | k r |  j  t ƒ n  d | k r8 |  j  t ƒ n  d  S(   Ns   change-packages-results   operation-result(   R   R   R   (   R   t   message_types(    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR"   <   s    c      
   C   s™   d g } |  j  j  r1 | j d |  j  j  g ƒ n  |  j j | j ƒ r‰ t | j ƒ  d | d t j d d d d  ƒ} | j
 |  j | ƒ n t d  ƒ } | S(   Ns   --quiets   -ct   argst   envt   errortooi   R   (   R	   t   extendR
   t   get_next_taskR   R    t   find_commandR   t   environt   NoneR!   t   _got_outputR   (   R   R   R%   R#   (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR   B   s    		c         C   s'   | r# t  j d | j | f ƒ n  d  S(   Ns   Package %s output:
%s(   t   loggingt   warningR   (   R   t   outputR   (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR-   R   s    	N(   t   __name__t
   __module__t   run_intervalR,   R
   R   R   R   R   R   R   R"   R   R-   (    (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyR      s   								(   R.   R   t   twisted.internet.utilsR    t   twisted.internet.deferR   t   landscape.package.storeR   t   landscape.package.changerR   t!   landscape.package.releaseupgraderR   t   landscape.manager.pluginR   R   (    (    (    sD   /usr/lib/python2.7/dist-packages/landscape/manager/packagemanager.pyt   <module>   s   