Repository URL to install this package:
| 
          
        
        Version: 
           
    
          4.1.130  ▾
        
   | 
ó
âí`c           @   s   d  Z  d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z d Z	 d Z
 d Z d   Z d   Z
 d	 e f d
     YZ d S(   s    Trilio S3 Backend implimentation
    This module contains the back end implimentation of all of all S3 specific
    support.
iÿÿÿÿN(   t   ClientErrort   s3iè  s$   80bc80ff-0c51-4534-86a2-ec5e719643c2c         C   s5   |  j  d d  } | t j d d d  j   } | S(   sè    Utility function used to convert a datetime to an OS timestamp.
    Args:
        modified_time (datetime): Datatime object to convert to a Unix Epoc timestamp.
    Returns:
        The value of modified_time as a timestamp.
    t   tzinfoi²  i   N(   t   replacet   Nonet   datetimet
   total_seconds(   t
   modified_timet
   naive_timet
   delta_seconds(    (    s2   /usr/lib/python2.7/dist-packages/s3fuse/vaults3.pyt   _make_timestamp   s    	c         C   s{   yj |  j  d |  t j j d d d d d d d  } |  j d | d	 | d
 d  |  j d | d	 |  Wn
   n Xd S(
   s   Validates the S3 credentials / permission on the provided bucket.
    Args:
        s3_client : Initialized boto3 S3 client object
        s3_bucket : User provided S3 bucket
    Returns:
        Does not return anything, But raises exception if validation fails.
    t   Buckets   tvault_config/s.   workload_f5190be6-7f80-4856-8c24-149cb40500c5/s.   snapshot_f2e5c6a7-3c21-4b7f-969c-915bb408c64f/s+   vm_id_e81d1ac8-b49a-4ccf-9d92-5f1ef358f1be/s3   vm_res_id_72477d99-c475-4a5d-90ae-2560f5f3b319_vda/s.   deac2b8a-dca9-4415-adc1-f3c6598204ed-segments/s   0000000000000000.00000000t   Keyt   Bodys	   Test DataN(   t   head_buckett   ost   patht   joint
   put_objectt
   delete_object(   t	   s3_clientt	   s3_buckett   long_key(    (    s2   /usr/lib/python2.7/dist-packages/s3fuse/vaults3.pyt   validate_s3_client,   s    
			t	   S3Backendc           B   s³   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d d  Z d   Z	 d	   Z
 d e d
  Z
 d   Z d d  Z d
   Z d   Z d   Z d   Z d   Z d   Z RS(   s´    S3 Backend implimentation.
    A Wrapper for the AWS S3 boto3 and botocore API. This class encapsulates all S3
    operations and exposes them as a backend storage instance.
    c         C   sM  d  } d  } | d d k rH t j j d | d d t | d   } n t j j d t | d   } | d d k rÓ t j d d	 | d
 d	 d | d d
 | d d | d d | d
 d d | d | d } nO t j d d	 | d
 d	 d | d d
 | d d | d d | d
 d d | } t | | d  | |  _ | d |  _ d  S(   Nt   s3_signaturet   defaultt   signature_versiont   read_timeoutt   s3_read_timeoutt   s3_ssl_certt    R   t   region_namet
   os_optionst   use_sslt   s3_sslt   aws_access_key_idt   usert   aws_secret_access_keyt   keyt   endpoint_urlt   object_storage_urlt   configt   verifyt   bucket(	   R   t   botocoret   clientt   Configt   intt   boto3R   t   _S3Backend__clientt   _S3Backend__bucket_name(   t   selft   optionst
   config_objectR   (    (    s2   /usr/lib/python2.7/dist-packages/s3fuse/vaults3.pyt   __init__R   s.    ,
		c         C   s¶   y x t  |  d k r g  } | t  } x>