<s> '''<STR_LIT>''' <EOL> from __future__ import absolute_import <EOL> import logging <EOL> import os <EOL> import os . path <EOL> import salt . utils <EOL> log = logging . getLogger ( __name__ ) <EOL> def __virtual__ ( ) : <EOL> '''<STR_LIT>''' <EOL> return '<STR_LIT>' if '<STR_LIT>' in __salt__ else False <EOL> def present ( name , Name , <EOL> S3BucketName , S3KeyPrefix = None , <EOL> SnsTopicName = None , <EOL> IncludeGlobalServiceEvents = True , <EOL> IsMultiRegionTrail = None , <EOL> EnableLogFileValidation = False , <EOL> CloudWatchLogsLogGroupArn = None , <EOL> CloudWatchLogsRoleArn = None , <EOL> KmsKeyId = None , <EOL> LoggingEnabled = True , <EOL> Tags = None , <EOL> region = None , key = None , keyid = None , profile = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : Name , <EOL> '<STR_LIT:result>' : True , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { } <EOL> } <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if '<STR_LIT:error>' in r : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> return ret <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( Name ) <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> S3BucketName = S3BucketName , <EOL> S3KeyPrefix = S3KeyPrefix , <EOL> SnsTopicName = SnsTopicName , <EOL> IncludeGlobalServiceEvents = IncludeGlobalServiceEvents , <EOL> IsMultiRegionTrail = IsMultiRegionTrail , <EOL> EnableLogFileValidation = EnableLogFileValidation , <EOL> CloudWatchLogsLogGroupArn = CloudWatchLogsLogGroupArn , <EOL> CloudWatchLogsRoleArn = CloudWatchLogsRoleArn , <EOL> KmsKeyId = KmsKeyId , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> return ret <EOL> _describe = __salt__ [ '<STR_LIT>' ] ( Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT>' : None } <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = _describe <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( Name ) <EOL> if LoggingEnabled : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if '<STR_LIT:error>' in r : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] = True <EOL> else : <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] = False <EOL> if bool ( Tags ) : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile , ** Tags ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] [ '<STR_LIT>' ] = Tags <EOL> return ret <EOL> ret [ '<STR_LIT>' ] = os . linesep . join ( [ ret [ '<STR_LIT>' ] , '<STR_LIT>' . format ( Name ) ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> _describe = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if '<STR_LIT:error>' in _describe : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( _describe [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> _describe = _describe . get ( '<STR_LIT>' ) <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> _describe [ '<STR_LIT>' ] = r . get ( '<STR_LIT>' , { } ) . get ( '<STR_LIT>' , False ) <EOL> need_update = False <EOL> for invar , outvar in { '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' } . iteritems ( ) : <EOL> if _describe [ outvar ] != locals ( ) [ invar ] : <EOL> need_update = True <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ invar ] = locals ( ) [ invar ] <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ invar ] = _describe [ outvar ] <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> _describe [ '<STR_LIT>' ] = r . get ( '<STR_LIT>' , { } ) <EOL> tagchange = salt . utils . compare_dicts ( _describe [ '<STR_LIT>' ] , Tags ) <EOL> if bool ( tagchange ) : <EOL> need_update = True <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ '<STR_LIT>' ] = Tags <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ '<STR_LIT>' ] = _describe [ '<STR_LIT>' ] <EOL> if need_update : <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> msg = '<STR_LIT>' . format ( Name ) <EOL> ret [ '<STR_LIT>' ] = msg <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> ret [ '<STR_LIT>' ] = os . linesep . join ( [ ret [ '<STR_LIT>' ] , '<STR_LIT>' ] ) <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> S3BucketName = S3BucketName , <EOL> S3KeyPrefix = S3KeyPrefix , <EOL> SnsTopicName = SnsTopicName , <EOL> IncludeGlobalServiceEvents = IncludeGlobalServiceEvents , <EOL> IsMultiRegionTrail = IsMultiRegionTrail , <EOL> EnableLogFileValidation = EnableLogFileValidation , <EOL> CloudWatchLogsLogGroupArn = CloudWatchLogsLogGroupArn , <EOL> CloudWatchLogsRoleArn = CloudWatchLogsRoleArn , <EOL> KmsKeyId = KmsKeyId , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> if LoggingEnabled : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> else : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> if bool ( tagchange ) : <EOL> adds = { } <EOL> removes = { } <EOL> for k , diff in tagchange . iteritems ( ) : <EOL> if diff . get ( '<STR_LIT>' , '<STR_LIT>' ) != '<STR_LIT>' : <EOL> adds [ k ] = Tags [ k ] <EOL> elif diff . get ( '<STR_LIT>' , '<STR_LIT>' ) != '<STR_LIT>' : <EOL> removes [ k ] = _describe [ '<STR_LIT>' ] [ k ] <EOL> if bool ( adds ) : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile , ** adds ) <EOL> if bool ( removes ) : <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name = Name , <EOL> region = region , key = key , keyid = keyid , profile = profile , <EOL> ** removes ) <EOL> return ret <EOL> def absent ( name , Name , <EOL> region = None , key = None , keyid = None , profile = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : Name , <EOL> '<STR_LIT:result>' : True , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { } <EOL> } <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name , <EOL> region = region , key = key , keyid = keyid , profile = profile ) <EOL> if '<STR_LIT:error>' in r : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> return ret <EOL> if r and not r [ '<STR_LIT>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( Name ) <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( Name ) <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> r = __salt__ [ '<STR_LIT>' ] ( Name , <EOL> region = region , key = key , <EOL> keyid = keyid , profile = profile ) <EOL> if not r [ '<STR_LIT>' ] : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> return ret <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT>' : Name } <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT>' : None } <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( Name ) <EOL> return ret </s>
