dom0/qvm-sync-clock: use timestamp in RFC2822 format to avoid locale issues
This commit is contained in:
parent
cbf05999fb
commit
9a90f499bc
@ -71,18 +71,19 @@ def main():
|
||||
print >> sys.stderr, 'Time sync failed, aborting!'
|
||||
sys.exit(1)
|
||||
|
||||
p = clock_vm.run('user:date -u', verbose=verbose, passio_popen=True, ignore_stderr=True)
|
||||
# Use the date format based on RFC2822 to avoid localisation issues
|
||||
p = clock_vm.run('user:date -u -R', verbose=verbose, passio_popen=True, ignore_stderr=True)
|
||||
date_out = p.stdout.read(100)
|
||||
date_out = date_out.strip()
|
||||
if not re.match(r'^[A-Za-z]* [A-Za-z]* [ 0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [A-Z]* [0-9][0-9][0-9][0-9]$', date_out):
|
||||
print >> sys.stderr, 'Invalid date output, aborting!'
|
||||
if not re.match(r'^[A-Za-z]+[,] [0-9][0-9] [A-Za-z]+ [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [+]0000$', date_out):
|
||||
print >> sys.stderr, date_out, 'Invalid date output, aborting!'
|
||||
sys.exit(1)
|
||||
|
||||
# Sync dom0 time
|
||||
if verbose:
|
||||
print >> sys.stderr, '--> Syncing dom0 clock.'
|
||||
|
||||
subprocess.check_call(['sudo', 'date', '-u', '-s', date_out])
|
||||
subprocess.check_call(['sudo', 'date', '-u', '-R', '-s', date_out])
|
||||
subprocess.check_call(['sudo', 'hwclock', '--systohc'])
|
||||
|
||||
# Sync other VMs clock
|
||||
@ -91,7 +92,7 @@ def main():
|
||||
if verbose:
|
||||
print >> sys.stderr, '--> Syncing \'%s\' clock.' % vm.name
|
||||
try:
|
||||
vm.run('root:date -u -s "%s"' % date_out, verbose=verbose)
|
||||
vm.run('root:date -u -R -s "%s"' % date_out, verbose=verbose)
|
||||
except Exception as e:
|
||||
print >> sys.stderr, "ERROR syncing time in VM '%s': %s" % (vm.name, str(e))
|
||||
pass
|
||||
|
Loading…
Reference in New Issue
Block a user