aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadosław Piliszek <radoslaw.piliszek@gmail.com>2020-02-08 16:24:53 +0100
committerRadosław Piliszek <radoslaw.piliszek@gmail.com>2020-02-08 16:28:33 +0100
commited225a36d88abefc9a52100a44f7d5f8d4d8322c (patch)
tree766edcfc80667892541a45cf541e3775b1a757c5
parent42000897166fdd2c4c1abfc784fdc21e04bf575f (diff)
downloadkolla-ansible-ed225a36d88abefc9a52100a44f7d5f8d4d8322c.tar.gz
kolla-ansible-ed225a36d88abefc9a52100a44f7d5f8d4d8322c.zip
Add --clean to kolla-mergepwd
to clean old keys on merge. Change-Id: Ifcc99e7c737707eea9e951db066dc94fd85bd9f7
-rw-r--r--doc/source/user/operating-kolla.rst5
-rwxr-xr-xkolla_ansible/cmd/mergepwd.py16
-rw-r--r--releasenotes/notes/feature-mergepwd-clean-18cbed4d39967e70.yaml5
3 files changed, 23 insertions, 3 deletions
diff --git a/doc/source/user/operating-kolla.rst b/doc/source/user/operating-kolla.rst
index 18f946590..5cb6ff0f1 100644
--- a/doc/source/user/operating-kolla.rst
+++ b/doc/source/user/operating-kolla.rst
@@ -217,3 +217,8 @@ For example:
kolla-genpwd -p passwords.yml.new
kolla-mergepwd --old passwords.yml.old --new passwords.yml.new --final /etc/kolla/passwords.yml
+.. note::
+
+ ``kolla-mergepwd``, by default, keeps old, unused passwords intact.
+ To alter this behavior, and remove such entries, use the ``--clean``
+ argument when invoking ``kolla-mergepwd``.
diff --git a/kolla_ansible/cmd/mergepwd.py b/kolla_ansible/cmd/mergepwd.py
index 4c697629a..850a36cf3 100755
--- a/kolla_ansible/cmd/mergepwd.py
+++ b/kolla_ansible/cmd/mergepwd.py
@@ -16,14 +16,21 @@ import argparse
import yaml
-def mergepwd(old, new, final):
+def mergepwd(old, new, final, clean=False):
with open(old, "r") as old_file:
old_passwords = yaml.safe_load(old_file)
with open(new, "r") as new_file:
new_passwords = yaml.safe_load(new_file)
- new_passwords.update(old_passwords)
+ if clean:
+ # keep only new keys
+ for key in new_passwords:
+ if key in old_passwords:
+ new_passwords[key] = old_passwords[key]
+ else:
+ # old behavior
+ new_passwords.update(old_passwords)
with open(final, "w") as destination:
yaml.safe_dump(new_passwords, destination, default_flow_style=False)
@@ -34,8 +41,11 @@ def main():
parser.add_argument("--old", help="old password file", required=True)
parser.add_argument("--new", help="new password file", required=True)
parser.add_argument("--final", help="merged password file", required=True)
+ parser.add_argument("--clean",
+ help="clean (keep only new keys)",
+ action='store_true')
args = parser.parse_args()
- mergepwd(args.old, args.new, args.final)
+ mergepwd(args.old, args.new, args.final, args.clean)
if __name__ == '__main__':
diff --git a/releasenotes/notes/feature-mergepwd-clean-18cbed4d39967e70.yaml b/releasenotes/notes/feature-mergepwd-clean-18cbed4d39967e70.yaml
new file mode 100644
index 000000000..dd60d9bdf
--- /dev/null
+++ b/releasenotes/notes/feature-mergepwd-clean-18cbed4d39967e70.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Adds ``--clean`` argument to ``kolla-mergepwd``. It allows to clean old
+ (not used anymore) keys from the passwords file.