genpwd: handle lack of password file nicer

From:

(kolla) 13:11 (s) marcin@puchatek:kolla-ansible$ kolla-genpwd
Traceback (most recent call last):
  File "/home/marcin/.virtualenvs/kolla/bin/kolla-genpwd", line 8, in <module>
    sys.exit(main())
  File "/home/marcin/.virtualenvs/kolla/lib/python3.10/site-packages/kolla_ansible/cmd/genpwd.py", line 135, in main
    genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys,
  File "/home/marcin/.virtualenvs/kolla/lib/python3.10/site-packages/kolla_ansible/cmd/genpwd.py", line 59, in genpwd
    with open(passwords_file, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/etc/kolla/passwords.yml'

To:

(kolla) 13:17 (s) marcin@puchatek:kolla-ansible$ kolla-genpwd
ERROR: Passwords file "/etc/kolla/passwords.yml" is missing

Change-Id: I18a9559daeb3d124a03dcb735ebb01a2cf24f617
This commit is contained in:
Marcin Juszkiewicz 2022-05-24 13:18:20 +02:00
parent 5d28a7c89b
commit 333c74feb4

View File

@ -56,8 +56,12 @@ def generate_RSA(bits=4096):
def genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys, def genpwd(passwords_file, length, uuid_keys, ssh_keys, blank_keys,
fernet_keys, hmac_md5_keys): fernet_keys, hmac_md5_keys):
with open(passwords_file, 'r') as f: try:
passwords = yaml.safe_load(f.read()) with open(passwords_file, 'r') as f:
passwords = yaml.safe_load(f.read())
except FileNotFoundError:
print(f"ERROR: Passwords file \"{passwords_file}\" is missing")
sys.exit(1)
if not isinstance(passwords, dict): if not isinstance(passwords, dict):
print("ERROR: Passwords file not in expected key/value format") print("ERROR: Passwords file not in expected key/value format")