<s> '''<STR_LIT>''' <EOL> from __future__ import absolute_import <EOL> import salt . utils . dictupdate as dictupdate <EOL> from salt . exceptions import SaltInvocationError <EOL> def __virtual__ ( ) : <EOL> '''<STR_LIT>''' <EOL> return '<STR_LIT>' if '<STR_LIT>' in __salt__ else False <EOL> def key_present ( <EOL> name , <EOL> policy , <EOL> description = None , <EOL> key_usage = None , <EOL> grants = None , <EOL> manage_grants = False , <EOL> key_rotation = False , <EOL> enabled = True , <EOL> region = None , <EOL> key = None , <EOL> keyid = None , <EOL> profile = None ) : <EOL> '''<STR_LIT>''' <EOL> if not policy : <EOL> raise SaltInvocationError ( '<STR_LIT>' ) <EOL> if grants and not isinstance ( grants , list ) : <EOL> raise SaltInvocationError ( '<STR_LIT>' ) <EOL> if not isinstance ( manage_grants , bool ) : <EOL> raise SaltInvocationError ( '<STR_LIT>' ) <EOL> if not isinstance ( key_rotation , bool ) : <EOL> raise SaltInvocationError ( '<STR_LIT>' ) <EOL> if not isinstance ( enabled , bool ) : <EOL> raise SaltInvocationError ( '<STR_LIT>' ) <EOL> ret = { '<STR_LIT:name>' : name , '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> _ret = _key_present ( <EOL> name , policy , description , key_usage , key_rotation , enabled , region , <EOL> key , keyid , profile <EOL> ) <EOL> ret [ '<STR_LIT>' ] = dictupdate . update ( ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT:U+0020>' . join ( [ ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ] ) <EOL> if not _ret [ '<STR_LIT:result>' ] : <EOL> ret [ '<STR_LIT:result>' ] = _ret [ '<STR_LIT:result>' ] <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> return ret <EOL> return ret <EOL> def _key_present ( <EOL> name , <EOL> policy , <EOL> description , <EOL> key_usage , <EOL> key_rotation , <EOL> enabled , <EOL> region , <EOL> key , <EOL> keyid , <EOL> profile ) : <EOL> ret = { '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> alias = '<STR_LIT>' . format ( name ) <EOL> r = __salt__ [ '<STR_LIT>' ] ( alias , region , key , keyid , profile ) <EOL> if '<STR_LIT:error>' in r : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( <EOL> r [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] <EOL> ) <EOL> return ret <EOL> if not r [ '<STR_LIT:result>' ] : <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> rc = __salt__ [ '<STR_LIT>' ] ( <EOL> policy , description , key_usage , region , key , keyid , profile <EOL> ) <EOL> key_metadata = rc [ '<STR_LIT>' ] <EOL> kms_key_id = key_metadata [ '<STR_LIT>' ] <EOL> if '<STR_LIT:error>' in rc : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( <EOL> rc [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] <EOL> ) <EOL> return ret <EOL> rn = __salt__ [ '<STR_LIT>' ] ( <EOL> alias , kms_key_id , region , key , keyid , profile <EOL> ) <EOL> if '<STR_LIT:error>' in rn : <EOL> msg = ( '<STR_LIT>' <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ) <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = msg . format ( kms_key_id , rn [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> return ret <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT:key>' : None } <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT:key>' : name } <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( name ) <EOL> else : <EOL> rd = __salt__ [ '<STR_LIT>' ] ( <EOL> alias , region , key , keyid , profile <EOL> ) <EOL> key_metadata = rd [ '<STR_LIT>' ] <EOL> if '<STR_LIT:error>' in rd : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( <EOL> rd [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] <EOL> ) <EOL> return ret <EOL> _ret = _key_description ( <EOL> key_metadata , description , region , key , keyid , profile <EOL> ) <EOL> ret [ '<STR_LIT>' ] = dictupdate . update ( ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT:U+0020>' . join ( [ ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ] ) <EOL> if not _ret [ '<STR_LIT:result>' ] : <EOL> ret [ '<STR_LIT:result>' ] = _ret [ '<STR_LIT:result>' ] <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> return ret <EOL> _ret = _key_policy ( <EOL> key_metadata , policy , region , key , keyid , profile <EOL> ) <EOL> ret [ '<STR_LIT>' ] = dictupdate . update ( ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT:U+0020>' . join ( [ ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ] ) <EOL> if not _ret [ '<STR_LIT:result>' ] : <EOL> ret [ '<STR_LIT:result>' ] = _ret [ '<STR_LIT:result>' ] <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> return ret <EOL> _ret = _key_enabled ( <EOL> key_metadata , enabled , region , key , keyid , profile <EOL> ) <EOL> ret [ '<STR_LIT>' ] = dictupdate . update ( ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT:U+0020>' . join ( [ ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ] ) <EOL> if not _ret [ '<STR_LIT:result>' ] : <EOL> ret [ '<STR_LIT:result>' ] = _ret [ '<STR_LIT:result>' ] <EOL> if ret [ '<STR_LIT:result>' ] is False : <EOL> return ret <EOL> _ret = _key_rotation ( <EOL> key_metadata , key_rotation , region , key , keyid , profile <EOL> ) <EOL> ret [ '<STR_LIT>' ] = dictupdate . update ( ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT:U+0020>' . join ( [ ret [ '<STR_LIT>' ] , _ret [ '<STR_LIT>' ] ] ) <EOL> if not _ret [ '<STR_LIT:result>' ] : <EOL> ret [ '<STR_LIT:result>' ] = _ret [ '<STR_LIT:result>' ] <EOL> return ret <EOL> def _key_enabled ( key_metadata , enabled , region , key , keyid , profile ) : <EOL> ret = { '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> kms_key_id = key_metadata [ '<STR_LIT>' ] <EOL> if key_metadata [ '<STR_LIT>' ] == enabled : <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> if enabled : <EOL> re = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , region , key , keyid , profile <EOL> ) <EOL> event = '<STR_LIT>' <EOL> else : <EOL> re = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , region , key , keyid , profile <EOL> ) <EOL> event = '<STR_LIT>' <EOL> if '<STR_LIT:error>' in re : <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = msg . format ( re [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> else : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( event ) <EOL> return ret <EOL> def _key_description ( key_metadata , description , region , key , keyid , profile ) : <EOL> ret = { '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> if key_metadata [ '<STR_LIT>' ] == description : <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> rdu = __salt__ [ '<STR_LIT>' ] ( <EOL> key_metadata [ '<STR_LIT>' ] , description , region , key , keyid , profile <EOL> ) <EOL> if '<STR_LIT:error>' in rdu : <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = msg . format ( rdu [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> else : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret <EOL> def _key_rotation ( key_metadata , key_rotation , region , key , keyid , profile ) : <EOL> ret = { '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> kms_key_id = key_metadata [ '<STR_LIT>' ] <EOL> rke = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , region , key , keyid , profile <EOL> ) <EOL> if rke [ '<STR_LIT:result>' ] == key_rotation : <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> if not key_metadata [ '<STR_LIT>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> if key_rotation : <EOL> rk = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , region , key , keyid , profile <EOL> ) <EOL> else : <EOL> rk = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , region , key , keyid , profile <EOL> ) <EOL> if '<STR_LIT:error>' in rk : <EOL> if '<STR_LIT>' in rk [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] : <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> ret [ '<STR_LIT>' ] = msg <EOL> return ret <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = msg . format ( rk [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> else : <EOL> ret [ '<STR_LIT>' ] = { '<STR_LIT>' : { '<STR_LIT>' : not key_rotation } , <EOL> '<STR_LIT>' : { '<STR_LIT>' : key_rotation } } <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( key_rotation ) <EOL> return ret <EOL> def _key_policy ( key_metadata , policy , region , key , keyid , profile ) : <EOL> ret = { '<STR_LIT:result>' : True , '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : { } } <EOL> kms_key_id = key_metadata [ '<STR_LIT>' ] <EOL> rkp = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , '<STR_LIT:default>' , region , key , keyid , profile <EOL> ) <EOL> if rkp [ '<STR_LIT>' ] == policy : <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT>' ] = msg . format ( ret [ '<STR_LIT>' ] ) <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> rpkp = __salt__ [ '<STR_LIT>' ] ( <EOL> kms_key_id , '<STR_LIT:default>' , policy , region , key , keyid , profile <EOL> ) <EOL> if '<STR_LIT:error>' in rpkp : <EOL> msg = '<STR_LIT>' <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = msg . format ( ret [ '<STR_LIT>' ] , rpkp [ '<STR_LIT:error>' ] [ '<STR_LIT:message>' ] ) <EOL> else : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> return ret </s>
