-
Notifications
You must be signed in to change notification settings - Fork 103
Open
Description
I run attic check from cron (daily while testing, once a week in future). Attic uses a $ATTIC_PASSPHRASE set in the environment. This is running from cron.
attic check does the repository check OK but when it does the archive consistency check it fails with:
Starting repository check...
Repository check complete, no problems found.
Starting archive consistency check...
/usr/lib/python3.4/getpass.py:92: GetPassWarning: Can not control echo on the terminal.
passwd = fallback_getpass(prompt, stream)
Warning: Password input may be echoed.
Enter passphrase for /backup/attic/work-backup.attic: Traceback (most recent call last):
File "/usr/lib/python3.4/getpass.py", line 70, in unix_getpass
old = termios.tcgetattr(fd) # a copy to save
termios.error: (25, 'Inappropriate ioctl for device')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/bin/attic", line 3, in <module>
main()
File "/usr/local/lib/python3.4/dist-packages/attic/archiver.py", line 730, in main
exit_code = archiver.run(sys.argv[1:])
File "/usr/local/lib/python3.4/dist-packages/attic/archiver.py", line 720, in run
return args.func(args)
File "/usr/local/lib/python3.4/dist-packages/attic/archiver.py", line 85, in do_check
if not args.repo_only and not ArchiveChecker().check(repository, repair=args.repair):
File "/usr/local/lib/python3.4/dist-packages/attic/archive.py", line 542, in check
self.key = self.identify_key(repository)
File "/usr/local/lib/python3.4/dist-packages/attic/archive.py", line 576, in identify_key
return key_factory(repository, cdata)
File "/usr/local/lib/python3.4/dist-packages/attic/key.py", line 45, in key_factory
return PassphraseKey.detect(repository, manifest_data)
File "/usr/local/lib/python3.4/dist-packages/attic/key.py", line 187, in detect
passphrase = getpass(prompt)
File "/usr/lib/python3.4/getpass.py", line 92, in unix_getpass
passwd = fallback_getpass(prompt, stream)
File "/usr/lib/python3.4/getpass.py", line 127, in fallback_getpass
return _raw_input(prompt, stream)
File "/usr/lib/python3.4/getpass.py", line 149, in _raw_input
raise EOFError
EOFError
Is this a known issue and is there a command line parameter or environment variable or similar that I can set to make getpass.py not break when it thinks it's not talking to a terminal?
I think I could possibly get this working if I set up ssh key auth and have the cron job ssh to localhost to run attic-check. I'll test that (haven't yet) if there is no more standard way to fix.
Gerald Quimpo
Metadata
Metadata
Assignees
Labels
No labels