ó
¼S]c           @   sB   d  Z  d d l m Z d d l j j Z d e f d „  ƒ  YZ d S(   s   Redis-related requirements.iÿÿÿÿ(   t   ServiceRequirementNt   RedisRequirementc           B   s2   e  Z d  Z e d „  ƒ Z d „  Z d d „ Z RS(   sW   A requirement for REDIS_URL (or another specified env var) to point to a running Redis.c         C   s   |  j  d |  j ƒ S(   s.   Override superclass to supply our description.s:   A running Redis server, located by a redis: URL set as %s.(   t   _descriptiont   env_var(   t   self(    (    sX   lib/python2.7/site-packages/anaconda_project/requirements_registry/requirements/redis.pyt   description   s    c         C   s¶   |  j  | ƒ } | d  k r% |  j ƒ  St j j | ƒ } | j d k r_ d j d |  j d | ƒ Sd } | j	 d  k	 r€ | j	 } n  t j
 | j | ƒ r™ d  Sd j d | d |  j ƒ Sd  S(   Nt   rediss6   {env_var} value '{url}' does not have 'redis:' scheme.R   t   urlië  s!   Cannot connect to Redis at {url}.(   t   _get_value_of_env_vart   Nonet   _unset_messaget   network_utilt   urlparset   urlsplitt   schemet   formatR   t   portt   can_connect_to_sockett   hostname(   R   t   environR   t   splitR   (    (    sX   lib/python2.7/site-packages/anaconda_project/requirements_registry/requirements/redis.pyt   _why_not_provided   s    
c   	      C   sn   |  j  | ƒ } | d k } | r7 d |  j | ƒ } n | } |  j | | | d | d | d | d d d | ƒS(	   s&   Override superclass to get our status.s   Using Redis server at %st	   overridest   has_been_providedt   status_descriptiont   provider_class_namet   RedisProvidert   latest_provide_resultN(   R   R	   R   t   _create_status(	   R   R   t   local_state_filet   default_env_spec_nameR   R   t   why_not_providedR   R   (    (    sX   lib/python2.7/site-packages/anaconda_project/requirements_registry/requirements/redis.pyt   check_status&   s    N(   t   __name__t
   __module__t   __doc__t   propertyR   R   R	   R    (    (    (    sX   lib/python2.7/site-packages/anaconda_project/requirements_registry/requirements/redis.pyR      s   	(   R#   t;   anaconda_project.requirements_registry.requirements.serviceR    t3   anaconda_project.requirements_registry.network_utilt   requirements_registryR   R   (    (    (    sX   lib/python2.7/site-packages/anaconda_project/requirements_registry/requirements/redis.pyt   <module>   s   