verify_config_reference.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from __future__ import print_function
  2. from fileinput import input
  3. from sys import exit, stderr
  4. from celery.app.defaults import NAMESPACES, flatten
  5. ignore = frozenset([
  6. "CELERYD_POOL_PUTLOCKS",
  7. "BROKER_HOST",
  8. "BROKER_USER",
  9. "BROKER_PASSWORD",
  10. "BROKER_VHOST",
  11. "BROKER_PORT",
  12. "CELERY_REDIS_HOST",
  13. "CELERY_REDIS_PORT",
  14. "CELERY_REDIS_DB",
  15. "CELERY_REDIS_PASSWORD",
  16. ])
  17. def is_ignored(setting, option):
  18. return setting in ignore or option.deprecate_by
  19. def find_undocumented_settings(directive=".. setting:: "):
  20. settings = dict(flatten(NAMESPACES))
  21. all = set(settings)
  22. documented = set(line.strip()[len(directive):].strip()
  23. for line in input()
  24. if line.strip().startswith(directive))
  25. return [setting for setting in all ^ documented
  26. if not is_ignored(setting, settings[setting])]
  27. if __name__ == "__main__":
  28. sep = """\n * """
  29. missing = find_undocumented_settings()
  30. if missing:
  31. print("Error: found undocumented settings:{0}{1}".format(
  32. sep, sep.join(sorted(missing))), file=sys.stderr)
  33. exit(1)
  34. print("OK: Configuration reference complete :-)")
  35. exit(0)