[CRIU] [PATCH 0/5 v5] Implementation of configuration files
Andrei Vagin
avagin at virtuozzo.com
Wed Jun 28 02:32:31 MSK 2017
Hi Veronika,
I have not forgotten about this series. The last week was very busy. I'm
going to review it in a few next days.
Thanks,
Andrei
On Tue, Jun 20, 2017 at 03:14:07PM +0200, vkabatov at redhat.com wrote:
> From: Veronika Kabatova <vkabatov at redhat.com>
>
> This patchset addresses GitHub issue #278 - add support for configuration files.
> Configuration files allow users to write their most used options into a file
> and reuse them instead of typing them all the time on the command line. Two
> methods for configuration file usage are introduced:
> -- passing a specific file with --config FILEPATH
> -- configuration files /etc/criu/default.conf and $HOME/.criu/default.conf
> are parsed (in this order) by default if present (can be disabled by
> --no-default-config option)
>
> Configuration file hierarchy aims to be consistent with command line usage (no
> difference between using configuration files and command line with the right
> order of options), which allows overriding of boolean options and partial
> specification when using options which can be used more times.
>
> Configuration file format allows comments and uses long options syntax,
> therefore a long version for verbosity option needed to be introduced first for
> users who would wish to specify verbosity settings in the configuration files.
>
> The test suite was modified to use --no-default-config to not break when run
> on system which would be using default configuration files and a simple test
> is added to check option parsing is working properly.
>
> Changes since v1:
> - code cleanup (mostly variable naming and indexing)
> - move #defines from header
> - fix bug with comparison branching
> - add comment to explain allocation of config init value
> - remove default switch branch
> - move all declaration to beginning of functions
> - move most of config-related stuff to separate functions and keep only
> minimum of code in main()
>
> Changes since v2:
> - implementation of fscanf() on my machine does not trigger warning about
> ignored return value (glibc-headers-2.23.1-11.fc24.x86_64)
>
> Changes since v3:
> - address avagin's comments
> - rework parser to accept arguments with spaces
> - rename configuration directories to criu and .criu instead of criu.d
> and .criu.d, respectively
> - merge functions for --help and --no-default-config detection to reduce
> number of iterations through argv (merging with --config NAME retrieval
> is not really possible due to the type of return value)
> - minor code changes (static function, move of xmalloc call, error
> reporting and fail)
> - removal of code for memory cleanup
>
> Changes since v4:
> - modify tcp-close option to have it's negation for configuration overriding
> since this option was added only now and without the negation support
>
> Veronika Kabatova (5):
> Add long option for verbosity changes
> Change tcp-close option to negated style
> Add support for configuration files
> Add documentation for configuration files
> Modify and add test for configuration file functionality
>
> Documentation/criu.txt | 44 +++++-
> criu/Makefile | 7 +
> criu/crtools.c | 237 +++++++++++++++++++++++++++--
> criu/include/cr_options.h | 2 +-
> test/Makefile | 2 +-
> test/zdtm.py | 7 +-
> test/zdtm/static/Makefile | 1 +
> test/zdtm/static/config_inotify_irmap.c | 91 +++++++++++
> test/zdtm/static/config_inotify_irmap.desc | 3 +
> 9 files changed, 374 insertions(+), 20 deletions(-)
> create mode 100644 test/zdtm/static/config_inotify_irmap.c
> create mode 100644 test/zdtm/static/config_inotify_irmap.desc
>
> --
> 2.7.4
>
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu
More information about the CRIU
mailing list