Lock answers file.

This commit is contained in:
Dimitri John Ledkov 2019-04-12 17:36:12 +01:00
parent d4e8cb7ffa
commit 488f6fd2c0
No known key found for this signature in database
GPG Key ID: E8E84908F903AFB5
2 changed files with 11 additions and 1 deletions

View File

@ -17,6 +17,7 @@
import argparse
import logging
import os
import fcntl
import signal
import sys
@ -126,6 +127,15 @@ def main():
logger.debug("Autoloading answers from %s", AUTO_ANSWERS_FILE)
opts.answers = AUTO_ANSWERS_FILE
if opts.answers:
opts.answers = open(opts.answers)
try:
fcntl.flock(opts.answers, fcntl.LOCK_EX | fcntl.LOCK_NB)
except OSError:
logger.exception('Failed to lock auto answers file, proceding without it.')
opts.answers.close()
opts.answers = None
ui = SubiquityUI()
try:

View File

@ -263,7 +263,7 @@ class Application:
answers = {}
if opts.answers is not None:
answers = yaml.safe_load(open(opts.answers).read())
answers = yaml.safe_load(opts.answers.read())
log.debug("Loaded answers %s", answers)
if not opts.dry_run:
open('/run/casper-no-prompt', 'w').close()