diff options
author | Martin Basti <mbasti@redhat.com> | 2015-09-11 14:33:17 +0200 |
---|---|---|
committer | Martin Basti <mbasti@redhat.com> | 2015-09-25 13:22:19 +0200 |
commit | 28c25241fe7e1d8ff44a97daca44910b6ed57193 (patch) | |
tree | be189f5614f3f6fa3e4c588678e2ff3ffecbb836 | |
parent | 75cba4e8bfe0479078ba112d99628ed517e010a2 (diff) | |
download | freeipa-28c25241fe7e1d8ff44a97daca44910b6ed57193.tar.gz freeipa-28c25241fe7e1d8ff44a97daca44910b6ed57193.tar.xz freeipa-28c25241fe7e1d8ff44a97daca44910b6ed57193.zip |
CI: backup and restore with KRA
Reviewed-By: Milan KubĂk <mkubik@redhat.com>
-rw-r--r-- | ipatests/test_integration/test_backup_and_restore.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ipatests/test_integration/test_backup_and_restore.py b/ipatests/test_integration/test_backup_and_restore.py index 93f5d131c..1c79e318b 100644 --- a/ipatests/test_integration/test_backup_and_restore.py +++ b/ipatests/test_integration/test_backup_and_restore.py @@ -338,3 +338,80 @@ class TestBackupReinstallRestoreWithDNSSEC(BaseBackupAndRestoreWithDNSSEC): def test_full_backup_reinstall_restore_with_DNSSEC_zone(self): """backup, uninstall, install, restore""" self._full_backup_and_restore_with_DNSSEC_zone(reinstall=True) + + +class BaseBackupAndRestoreWithKRA(IntegrationTest): + """ + Abstract class for KRA restore tests + """ + topology = 'star' + + vault_name = "ci_test_vault" + vault_password = "password" + vault_data = "SSBsb3ZlIENJIHRlc3RzCg==" + + @classmethod + def install(cls, mh): + tasks.install_master(cls.master, setup_dns=True) + args = [ + "ipa-kra-install", + "-p", cls.master.config.dirman_password, + "-U", + ] + cls.master.run_command(args) + + def _full_backup_restore_with_vault(self, reinstall=False): + with restore_checker(self.master): + # create vault + self.master.run_command([ + "ipa", "vault-add", + self.vault_name, + "--password", self.vault_password, + "--type", "symmetric", + ]) + + # archive secret + self.master.run_command([ + "ipa", "vault-archive", + self.vault_name, + "--password", self.vault_password, + "--data", self.vault_data, + ]) + + # retrieve secret + self.master.run_command([ + "ipa", "vault-retrieve", + self.vault_name, + "--password", self.vault_password, + ]) + + backup_path = backup(self.master) + + self.master.run_command(['ipa-server-install', + '--uninstall', + '-U']) + + if reinstall: + tasks.install_master(self.master, setup_dns=True) + + dirman_password = self.master.config.dirman_password + self.master.run_command(['ipa-restore', backup_path], + stdin_text=dirman_password + '\nyes') + + # retrieve secret after restore + self.master.run_command([ + "ipa", "vault-retrieve", + self.vault_name, + "--password", self.vault_password, + ]) + + +class TestBackupAndRestoreWithKRA(BaseBackupAndRestoreWithKRA): + def test_full_backup_restore_with_vault(self): + """backup, uninstall, restore""" + self._full_backup_restore_with_vault(reinstall=False) + +class TestBackupReinstallRestoreWithKRA(BaseBackupAndRestoreWithKRA): + def test_full_backup_reinstall_restore_with_vault(self): + """backup, uninstall, reinstall, restore""" + self._full_backup_restore_with_vault(reinstall=True) |