#!/opt/cloudlinux/venv/bin/python3 -sbb # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2026 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT """Run the one-time plugin-copy repair by hand (CLOS-7040). Normally it runs off the cron tick.""" import argparse import sys from clwpos.clsop_repair import LOGFILE_PATH, MARKER_PATH, is_done, run_once from clwpos.logsetup import init_wpos_sentry_safely def main(argv=None) -> int: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( '--dry-run', default=False, action='store_true', help='report what would be repaired and change nothing' ) parser.add_argument( '--force', default=False, action='store_true', help='run even though this machine already had its pass' ) args = parser.parse_args(argv) init_wpos_sentry_safely() if not args.force and not args.dry_run and is_done(): print(f'This machine already had its repair pass ({MARKER_PATH}). Pass --force to run it again.') return 0 summary = run_once(dry_run=args.dry_run, force=args.force) if not summary: print(f'The pass did not run. See {LOGFILE_PATH}.') return 1 print(summary) print(f'Details: {LOGFILE_PATH}') return 0 if __name__ == '__main__': sys.exit(main())