<s> '''<STR_LIT>''' <EOL> from __future__ import absolute_import <EOL> import logging <EOL> import os <EOL> import os . path <EOL> import json <EOL> from salt . ext . six import string_types <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 , DomainName , <EOL> ElasticsearchClusterConfig = None , <EOL> EBSOptions = None , <EOL> AccessPolicies = None , <EOL> SnapshotOptions = None , <EOL> AdvancedOptions = None , <EOL> Tags = None , <EOL> region = None , key = None , keyid = None , profile = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : DomainName , <EOL> '<STR_LIT:result>' : True , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { } <EOL> } <EOL> if ElasticsearchClusterConfig is None : <EOL> ElasticsearchClusterConfig = { <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : <NUM_LIT:1> , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : False <EOL> } <EOL> if EBSOptions is None : <EOL> EBSOptions = { <EOL> '<STR_LIT>' : False , <EOL> } <EOL> if SnapshotOptions is None : <EOL> SnapshotOptions = { <EOL> '<STR_LIT>' : <NUM_LIT:0> <EOL> } <EOL> if AdvancedOptions is None : <EOL> AdvancedOptions = { <EOL> '<STR_LIT>' : '<STR_LIT:true>' <EOL> } <EOL> if Tags is None : <EOL> Tags = { } <EOL> if AccessPolicies is not None and isinstance ( AccessPolicies , string_types ) : <EOL> try : <EOL> AccessPolicies = json . loads ( AccessPolicies ) <EOL> except ValueError as e : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( e . message ) <EOL> return ret <EOL> r = __salt__ [ '<STR_LIT>' ] ( DomainName = DomainName , <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 ( DomainName ) <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> r = __salt__ [ '<STR_LIT>' ] ( DomainName = DomainName , <EOL> ElasticsearchClusterConfig = ElasticsearchClusterConfig , <EOL> EBSOptions = EBSOptions , <EOL> AccessPolicies = AccessPolicies , <EOL> SnapshotOptions = SnapshotOptions , <EOL> AdvancedOptions = AdvancedOptions , <EOL> region = region , key = key , <EOL> 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>' ] ( DomainName , <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 ( DomainName ) <EOL> return ret <EOL> ret [ '<STR_LIT>' ] = os . linesep . join ( [ ret [ '<STR_LIT>' ] , '<STR_LIT>' . format ( DomainName ) ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> _describe = __salt__ [ '<STR_LIT>' ] ( DomainName = DomainName , <EOL> region = region , key = key , keyid = keyid , <EOL> profile = profile ) [ '<STR_LIT>' ] <EOL> _describe [ '<STR_LIT>' ] = json . loads ( _describe [ '<STR_LIT>' ] ) <EOL> if not _describe . get ( '<STR_LIT>' , { } ) . get ( '<STR_LIT>' ) : <EOL> opts = _describe . get ( '<STR_LIT>' , { } ) <EOL> opts . pop ( '<STR_LIT>' , None ) <EOL> opts . pop ( '<STR_LIT>' , None ) <EOL> comm_args = { } <EOL> need_update = False <EOL> for k , v in { <EOL> '<STR_LIT>' : ElasticsearchClusterConfig , <EOL> '<STR_LIT>' : EBSOptions , <EOL> '<STR_LIT>' : AccessPolicies , <EOL> '<STR_LIT>' : SnapshotOptions , <EOL> '<STR_LIT>' : AdvancedOptions <EOL> } . iteritems ( ) : <EOL> if v != _describe [ k ] : <EOL> need_update = True <EOL> comm_args [ k ] = v <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ k ] = v <EOL> ret [ '<STR_LIT>' ] . setdefault ( '<STR_LIT>' , { } ) [ k ] = _describe [ k ] <EOL> if need_update : <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> msg = '<STR_LIT>' . format ( DomainName ) <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>' ] ( DomainName = DomainName , <EOL> region = region , key = key , <EOL> keyid = keyid , profile = profile , <EOL> ** comm_args ) <EOL> if not r . get ( '<STR_LIT>' ) : <EOL> ret [ '<STR_LIT:result>' ] = False <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( r [ '<STR_LIT:error>' ] ) <EOL> ret [ '<STR_LIT>' ] = { } <EOL> return ret <EOL> return ret <EOL> def absent ( name , DomainName , <EOL> region = None , key = None , keyid = None , profile = None ) : <EOL> '''<STR_LIT>''' <EOL> ret = { '<STR_LIT:name>' : DomainName , <EOL> '<STR_LIT:result>' : True , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { } <EOL> } <EOL> r = __salt__ [ '<STR_LIT>' ] ( DomainName , <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 ( DomainName ) <EOL> return ret <EOL> if __opts__ [ '<STR_LIT:test>' ] : <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( DomainName ) <EOL> ret [ '<STR_LIT:result>' ] = None <EOL> return ret <EOL> r = __salt__ [ '<STR_LIT>' ] ( DomainName , <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>' : DomainName } <EOL> ret [ '<STR_LIT>' ] [ '<STR_LIT>' ] = { '<STR_LIT>' : None } <EOL> ret [ '<STR_LIT>' ] = '<STR_LIT>' . format ( DomainName ) <EOL> return ret </s>
