3 =ã\ ã@shddlZddlZddlZddlmZddlmZGdd„dƒZddd„Zdd d „Z dd d „Z dd„Z dS)éN)ÚPrintMsg)ÚTaskCatExceptionc@s$eZdZdd„Zdd„Zdd„ZdS)Ú CommonToolscCs ||_dS)N)Ú stack_name)Úselfr©rúm/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-emcbgzcf/taskcat/taskcat/common_utils.pyÚ__init__ szCommonTools.__init__cCs&|j|ƒ}|rt|jƒƒStdƒSdS)zÏ Returns the matching string. :param re_object: Regex object :param data_line: String to be searched :return: Matching String if found, otherwise return 'Not-found' z Not-foundN)ÚsearchÚstrÚgroup)rZ re_objectZ data_lineZsgrrrÚregxfind s  zCommonTools.regxfindcCsBtƒ}tjdƒ}tjdƒ}|j||jƒ|d<|j||jƒ|d<|S)z Returns a dictionary object containing the region and stack name. :return: Dictionary object containing the region and stack name z(?<=:)(.\w-.+(\w*)-\d)(?=:)z(?<=:stack/)(tCaT.*.)(?=/)Zregionr)ÚdictÚreÚcompiler r)rÚ stack_infoZ region_reZ stack_name_rerrrÚparse_stack_infos   zCommonTools.parse_stack_infoN)Ú__name__Ú __module__Ú __qualname__r r rrrrrrsrÚcCs |rttj|ƒtjdƒdS)Né)ÚprintrÚERRORÚsysÚexit)ÚmsgrrrÚexit1+srcCs |rttj|ƒtjdƒdS)Nr)rrÚINFOrr)rrrrÚexit01srTcCs.tjj|ƒ}|r tjj|ƒr dStj|ƒdS)N)ÚosÚpathÚabspathÚisdirÚmakedirs)r!Z ignore_existsrrrÚmake_dir7s r%cCsvi}t|ƒtkrtdƒ‚xXt|ƒD]L\}}t|ƒtkrBtd|ƒ‚d|ksRd|kr^td|ƒ‚|d}|||<q"W|S)NzDInvalid parameter file, outermost json element must be a list ("[]")z;Invalid parameter %s parameters must be of type dict ("{}")Z ParameterKeyZParameterValuezRInvalid parameter %s all items must have both ParameterKey and ParameterValue keys)ÚtypeÚlistrÚ enumerater)Z original_keysZ param_indexÚidxZ param_dictÚkeyrrrÚparam_list_to_dict>s     r+)r)r)T) rrr Ztaskcat.colored_consolerZtaskcat.exceptionsrrrrr%r+rrrrÚs  #