def di_report_warn(datasource, cfg): if 'di_report' not in cfg: LOG.debug("no di_report found in config.") return dicfg = cfg.get('di_report', {}) if not isinstance(dicfg, dict): LOG.warning("di_report config not a dictionary: %s", dicfg) return dslist = dicfg.get('datasource_list') if dslist is None: LOG.warning("no 'datasource_list' found in di_report.") return elif not isinstance(dslist, list): LOG.warning("di_report/datasource_list not a list: %s", dslist) return # ds.__module__ is like cloudinit.sources.DataSourceName # where Name is the thing that shows up in datasource_list. modname = datasource.__module__.rpartition(".")[2] if modname.startswith(sources.DS_PREFIX): modname = modname[len(sources.DS_PREFIX):] else: LOG.warning("Datasource '%s' came from unexpected module '%s'.", datasource, modname) if modname in dslist: LOG.debug("used datasource '%s' from '%s' was in di_report's list: %s", datasource, modname, dslist) return warnings.show_warning('dsid_missing_source', cfg, source=modname, dslist=str(dslist))
def warn_if_necessary(cfgval, cfg): try: mode, sleep = parse_strict_mode(cfgval) except ValueError as e: LOG.warning(e) return if mode == "false": return warnings.show_warning("non_ec2_md", cfg, mode=True, sleep=sleep)
def warn_if_necessary(cfgval, cfg): try: mode, sleep = parse_strict_mode(cfgval) except ValueError as e: LOG.warning(e) return if mode == "false": return warnings.show_warning('non_ec2_md', cfg, mode=True, sleep=sleep)
def di_report_warn(datasource, cfg): if "di_report" not in cfg: LOG.debug("no di_report found in config.") return dicfg = cfg["di_report"] if dicfg is None: # ds-identify may write 'di_report:\n #comment\n' # which reads as {'di_report': None} LOG.debug("di_report was None.") return if not isinstance(dicfg, dict): LOG.warning("di_report config not a dictionary: %s", dicfg) return dslist = dicfg.get("datasource_list") if dslist is None: LOG.warning("no 'datasource_list' found in di_report.") return elif not isinstance(dslist, list): LOG.warning("di_report/datasource_list not a list: %s", dslist) return # ds.__module__ is like cloudinit.sources.DataSourceName # where Name is the thing that shows up in datasource_list. modname = datasource.__module__.rpartition(".")[2] if modname.startswith(sources.DS_PREFIX): modname = modname[len(sources.DS_PREFIX):] else: LOG.warning( "Datasource '%s' came from unexpected module '%s'.", datasource, modname, ) if modname in dslist: LOG.debug( "used datasource '%s' from '%s' was in di_report's list: %s", datasource, modname, dslist, ) return warnings.show_warning("dsid_missing_source", cfg, source=modname, dslist=str(dslist))
def di_report_warn(datasource, cfg): if 'di_report' not in cfg: LOG.debug("no di_report found in config.") return dicfg = cfg['di_report'] if dicfg is None: # ds-identify may write 'di_report:\n #comment\n' # which reads as {'di_report': None} LOG.debug("di_report was None.") return if not isinstance(dicfg, dict): LOG.warning("di_report config not a dictionary: %s", dicfg) return dslist = dicfg.get('datasource_list') if dslist is None: LOG.warning("no 'datasource_list' found in di_report.") return elif not isinstance(dslist, list): LOG.warning("di_report/datasource_list not a list: %s", dslist) return # ds.__module__ is like cloudinit.sources.DataSourceName # where Name is the thing that shows up in datasource_list. modname = datasource.__module__.rpartition(".")[2] if modname.startswith(sources.DS_PREFIX): modname = modname[len(sources.DS_PREFIX):] else: LOG.warning("Datasource '%s' came from unexpected module '%s'.", datasource, modname) if modname in dslist: LOG.debug("used datasource '%s' from '%s' was in di_report's list: %s", datasource, modname, dslist) return warnings.show_warning('dsid_missing_source', cfg, source=modname, dslist=str(dslist))