Example #1
0
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))
Example #2
0
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)
Example #3
0
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)
Example #4
0
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))
Example #5
0
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))