yabs_generate_conf.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from _common import sort_by_keywords
  2. def get_or_default(kv, name, default):
  3. if name in kv:
  4. return kv[name][0]
  5. return default
  6. def onyabs_generate_conf(unit, *args):
  7. flat, kv = sort_by_keywords({'MODE': 1, 'SCRIPT': 1, 'SRC': 1, 'TOOL': 1, 'CONF_DIR': 1, 'DEST': 1}, args)
  8. src = get_or_default(kv, 'SRC', 'yabs/server/phantom')
  9. mode = get_or_default(kv, 'MODE', 'production')
  10. script = src + "/" + get_or_default(kv, 'SCRIPT', 'mkconf.py')
  11. conf = src + "/" + get_or_default(kv, 'CONF_DIR', 'conf-tmpl')
  12. tool = src + "/" + get_or_default(kv, 'TOOL', 'yabs_conf')
  13. for name in flat:
  14. filename = "/".join([conf, name])
  15. unit.onpython(
  16. [
  17. script,
  18. "--cluster-conf-binary",
  19. tool,
  20. "--mode",
  21. mode,
  22. "--dest-dir",
  23. "${BINDIR}",
  24. filename,
  25. "IN",
  26. filename,
  27. "OUT_NOAUTO",
  28. "${BINDIR}/%s" % name,
  29. "TOOL",
  30. tool,
  31. ]
  32. )
  33. def onyabs_generate_phantom_conf_patch(unit, *args):
  34. flat, kv = sort_by_keywords({'SRC': 1, 'DST': 1}, args)
  35. src = '${ARCADIA_BUILD_ROOT}/' + get_or_default(kv, 'SRC', 'yabs/server/phantom/conf')
  36. dst = '${ARCADIA_BUILD_ROOT}/' + get_or_default(kv, 'DST', 'yabs/server/phantom/conf-test')
  37. for f in flat:
  38. lhs = src + '/' + f
  39. rhs = dst + '/' + f
  40. unit.onpython(['mkdiff.py', lhs, rhs, 'IN', lhs, 'IN', rhs, 'STDOUT', f + ".patch"])
  41. def onyabs_generate_phantom_conf_test_check(unit, *args):
  42. yabs_path = args[0]
  43. for name in args[1:]:
  44. unit.onpython(
  45. """
  46. build/scripts/wrapper.py mkcheckconf.sh ${{ARCADIA_BUILD_ROOT}}/{yabs_path}/phantom/conf-test/yabs-{role}.conf yabs-check-{role}.conf
  47. IN mkcheckconf.sh ${{ARCADIA_BUILD_ROOT}}/{yabs_path}/phantom/conf-test/yabs-{role}.conf
  48. OUT yabs-check-{role}.conf
  49. """.format(
  50. yabs_path=yabs_path, role=name
  51. ).split() # noqa
  52. )