[Freeipa-devel] [PATCH] 387 Fix validation of ipa-restore options

Petr Vobornik pvoborni at redhat.com
Tue Jan 13 12:01:45 UTC 2015


On 01/12/2015 02:28 PM, Jan Cholasta wrote:
> Hi,
>
> the attached patch fixes <https://fedorahosted.org/freeipa/ticket/4797>.
>
> Note that --data with data-only backup and --logs-only with data-only
> restore are deliberately ignored and considered no-op.
>
> Honza
>

1. I'm not sure how relative path to backup dir should work:

I have a backup: /var/lib/ipa/backup/ipa-data-2015-01-13-10-53-06/

Absolute path works great. But:
-  ipa-data-2015-01-13-10-53-06
fails with `ipa-restore: error: must provide path to backup directory`

Ugly hybrid (I was in home dir):
     ../../var/lib/ipa/backup/ipa-data-2015-01-13-10-53-06/
fails with:
 
/var/lib/ipa/backup/../../var/lib/ipa/backup/ipa-data-2015-01-13-10-53-06/header

I.e., dir name won't pass
      if not os.path.isdir(self.args[0]):
and the second concatenation is weird.

2. Data backup cannot be done because the first 'for' never breaks

+                for instance in instances:
+                    for backend in backends:
+                        db_dir = (paths.SLAPD_INSTANCE_DB_DIR_TEMPLATE %
+                                  (instance, backend))
+                        if os.path.exists(db_dir):
+                            break
+                else:
+                    raise admintool.ScriptError(
+                        "Cannot restore a data backup into an empty 
system")

3. When #2 fixed, data backup with --no-logs doesn't raise warning as 
requested in ticket.

4. Since backup type is detected automatically(--data doesn't have to be 
specified for data restore), I guess that the ticket requirement: `Here 
expecting an error message that --online option can only provided along 
with --data option. ` is invalid, right?

Man page states that --online requires --data option, which is not true.

5. Nitpick: imho option validation should be done before temp dir creation.

6. pep8, fixing them is up to you:

./ipaserver/install/ipa_restore.py:150:5: E129 visually indented line 
with same indent as next logical line
./ipaserver/install/ipa_restore.py:184:13: E128 continuation line 
under-indented for visual indent
-- 
Petr Vobornik




More information about the Freeipa-devel mailing list