3 =\[@sddlmZddlZddlmZddlZdZdZdZdZ dZ dZ dZ dZ dZd ZdZd Zd Zd Zd jeeeZdjeeeZdjeeeZdje eeZdje eeZejdZejejejZejejej dZ!ej"e!ej#eGddde$Z%dS))print_functionN) ClientErrorz z z z z z z zz{1}[ERROR {0} ]{2} :z{1}[DEBUG {0} ]{2} :z{1}[PASS {0} ]{2} :z{1}[FAIL {0} ]{2} :z{1}[INFO {0} ]{2} :Reaperz4%(asctime)s - %(name)s - %(levelname)s - %(message)sc@s<eZdZddZddZddZddZd d Zd d Zd S)rcCs$|jjd}tjd||j|}tjdy$|jj}x|D] }|jq>WWndtk r}zH|j dddkr~tj d|j dddkrtj d nt |WYdd}~XnXtjd |y |jWnPt j jk r}z.|j dddkrtj d nt |WYdd}~XnXdS) NZs3zWorking on bucket [%s]z(Getting and deleting all object versionsErrorCode AccessDeniedz0Unable to delete object versions. (AccessDenied)Z NoSuchBucketz&Unable to get versions. (NoSuchBucket)zDeleting bucket [%s]z*Bucket was already deleted. (NoSuchBucket))sessionresourceloggerinfoZBucketobject_versionsalldeleterresponsewarningprintbotocore exceptions)selfZ bucket_nameZ s3_resourceZbucket_resourcer Zobject_versionerg/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/taskcat/taskcat/reaper.pyZ__delete_s3_bucket?s*           zReaper.__delete_s3_bucketcCsv|jjd}tjd|y|j|dWnHtk rp}z,|jdddkrXtjdnt|WYdd}~XnXdS)Nec2zDeleting EBS Volume [%s])ZVolumeIdrrrz'Unable to delete volume. (AccessDenied)) r clientr r Z delete_volumerrrr)rZ volume_id ec2_clientrrrrZ__delete_volume^s   zReaper.__delete_volumecCs|jjd}tjd|y|j|dWndtk r}zH|jdddkrVtjd|jdddkrttjd nt|WYdd}~XnXdS) NrzDeleting Security Group [%s])ZGroupIdrrzInvalidGroup.InUsez.Unable to delete Security group. It is in-use.zInvalidGroup.NotFoundz-Unable to delete Security group. (not found).) r rr r Zdelete_security_grouprrrr)rZsg_idrrrrrZ __delete_sgms   zReaper.__delete_sgcCsHtjdx8|D]0}x*|dD]}|j|d|d|dqWqWdS)NzDeleting all resources resourcesZ logicalIdZ resourceTypeZ physicalId)r r _Reaper__delete_resource)rZ stack_liststackr rrr delete_alls   zReaper.delete_allcCsX|dkrtjd|j||dkr8tjd|j||dkrTtjd|j|dS)NzAWS::EC2::SecurityGroupzFound Security Group resourcezAWS::EC2::VolumezFound Volume resourcezAWS::S3::BucketzFound Bucket resource)r debug_Reaper__delete_sg_Reaper__delete_volume_Reaper__delete_s3_bucket)rZlidZrtypepidrrrZ__delete_resources     zReaper.__delete_resourcecCs ||_dS)N)r )rr rrr__init__szReaper.__init__N) __name__ __module__ __qualname__r#r"r!rrr%rrrrr:s    )& __future__rrZbotocore.exceptionsrloggingr errorcheckfailr headerZ hightlightZ name_colorZaquaZgreenZwhiteZorangeZredZ rst_colorformatEDPFI getLoggerr setLevelDEBUG StreamHandlerch Formatter formatter setFormatter addHandlerobjectrrrrr s>