def handle_moban_file(moban_file, options): """ act upon default moban file """ moban_file_configurations = data_loader.load_data(None, moban_file) yaml = YAML(typ="rt") dumped_yaml = StringIO() yaml.dump(moban_file_configurations, dumped_yaml) LOG.info(dumped_yaml.getvalue()) if moban_file_configurations is None: raise exceptions.MobanfileGrammarException( constants.ERROR_INVALID_MOBAN_FILE % moban_file) if (constants.LABEL_TARGETS not in moban_file_configurations and constants.LABEL_COPY not in moban_file_configurations): raise exceptions.MobanfileGrammarException(constants.ERROR_NO_TARGETS % moban_file) check_none(moban_file_configurations, moban_file) version = moban_file_configurations.get(constants.MOBAN_VERSION, constants.DEFAULT_MOBAN_VERSION) if version == constants.DEFAULT_MOBAN_VERSION: mobanfile.handle_moban_file_v1(moban_file_configurations, options) else: raise exceptions.MobanfileGrammarException( constants.MESSAGE_FILE_VERSION_NOT_SUPPORTED % version) hashstore.HASH_STORE.save_hashes()
def handle_moban_file(moban_file, options): """ act upon default moban file """ moban_file_configurations = open_yaml(None, moban_file) if moban_file_configurations is None: raise exceptions.MobanfileGrammarException( constants.ERROR_INVALID_MOBAN_FILE % moban_file ) if ( constants.LABEL_TARGETS not in moban_file_configurations and constants.LABEL_COPY not in moban_file_configurations ): raise exceptions.MobanfileGrammarException( constants.ERROR_NO_TARGETS % moban_file ) version = moban_file_configurations.get( constants.MOBAN_VERSION, constants.DEFAULT_MOBAN_VERSION ) if version == constants.DEFAULT_MOBAN_VERSION: mobanfile.handle_moban_file_v1(moban_file_configurations, options) else: raise exceptions.MobanfileGrammarException( constants.MESSAGE_FILE_VERSION_NOT_SUPPORTED % version ) HASH_STORE.save_hashes()
def _append_to_array_item_to_dictionary_key(adict, key, array_item): if array_item in adict[key]: raise exceptions.MobanfileGrammarException( constants.MESSAGE_SYNTAX_ERROR % (array_item, key) ) else: adict[key].append(array_item)
def check_none(data, moban_file): """ check whether the yaml data has empty value such as: """ if isinstance(data, dict): for k, v in data.items(): if check_none(v, moban_file) is None: loc = data.lc.key(k) raise exceptions.MobanfileGrammarException( constants.ERROR_MALFORMED_YAML % (moban_file, loc[0] + 1) # line number starts from 0 ) elif isinstance(data, list): for i, x in enumerate(data): if check_none(x, moban_file) is None: loc = data.lc.item(i) raise exceptions.MobanfileGrammarException( constants.ERROR_MALFORMED_YAML % (moban_file, loc[0] + 1)) return data