summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add lvmlockddev-dct-lvmlockd-AZDavid Teigland2015-07-0294-441/+15680
|
* report: adjust shared flags based on expected type for reserved valuesPeter Rajnoha2015-07-021-0/+8
| | | | | | Generic numbers and time values share some operators so make sure we have the flags correctly adjusted based on expected type if we're using reserved values.
* tests: add test for 454782f (select with synonyms for string field types)Peter Rajnoha2015-07-021-0/+2
|
* report: fix regression while selecting string fields using synonymsPeter Rajnoha2015-07-022-2/+3
| | | | | | | | | | | | | | | $ lvs -o name,cache_policy vg/lvol0 LV Cache Policy lvol0 Before this patch: $ lvs -o name,cache_policy -S 'cache_policy=undefined' vg/lvol0 (no match) With this patch applied: $ lvs -o name,cache_policy -S 'cache_policy=undefined' vg/lvol0 LV Cache Policy lvol0
* display: missed to count with 0Zdenek Kabelac2015-07-022-1/+2
| | | | | | | | dm_snprintf() returns upon success the number of characters printed (excluding the null byte used to end output to strings). So add extra byte to preserve \0. This fixes regression when displaying more then a single lv name.
* libdm: enhance tracing messagesZdenek Kabelac2015-07-012-7/+11
| | | | Use new _node_name() and print name major:minor for thin-pool device.
* libdm: add helper function to print _node_nameZdenek Kabelac2015-07-011-0/+14
| | | | | | | | _node_name() prepares into dm_tree internal buffer device name and it (major:minor) for easy usage for debug messages. To avoid any allocation a small buffer in struct dm_tree is preallocated to store this message.
* config: report/time_format appeared in v2.02.123Peter Rajnoha2015-07-011-1/+1
|
* locking: Add missing error handling.Alasdair G Kergon2015-06-3012-21/+68
| | | | | Add missing error logging and detection to unlock_vg and callers of sync_local_dev_names etc.
* post-releaseAlasdair G Kergon2015-06-304-2/+8
|
* pre-releasev2_02_123Alasdair G Kergon2015-06-304-5/+7
|
* conf: Regenerate.Alasdair G Kergon2015-06-301-1/+1
| | | | Fix missing --clear-needs-check-flag.
* libdm: Rename struct time_value variables.Alasdair G Kergon2015-06-301-24/+24
| | | | warning: declaration of ‘time’ shadows a global declaration
* report: add support for time (basic)Peter Rajnoha2015-06-306-26/+591
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for time values used in reporting fields. The raw values are always stored as number of seconds since epoch. The support that comes with this patch is the basic one which allows only for recognition of strictly formatted date and time in selection criteria (the format follows a subset of formats defined by ISO 8601): date time timezone date: YYYY-MM-DD (or shortly YYYYMMDD) YYYY-MM (shortly YYYYMM), auto DD=1 YYYY, auto MM=01 and DD=01 time: hh:mm:ss (or shortly hhmmss) hh:mm (or shortly hhmm), auto ss=0 hh (or shortly hh), auto mm=0, auto ss=0 timezone (always with + or - sign): +hh:mm or -hh:mm (or shortly +hhmm or -hhmm) +hh or -hh Or directly the time (number of seconds) since Epoch (1970-01-01 00:00:00 UTC) when the number value is prefixed by "@": @number_of_seconds_since_epoch This patch also adds aliases for comparison operators used together with time values which are more intuitive to use: since (as alias for >=) after (as alias for >) until (as alias for <=) before (as alias for <) For example: $ lvmconfig --type full report/time_format time_format="%Y-%m-%d %T %z %Z [%s]" $ lvs -o name,time vg LV Time lvol0 2015-06-28 21:25:41 +0200 CEST [1435519541] lvol1 2015-06-30 03:25:43 +0200 CEST [1435627543] lvol2 2015-04-26 14:52:20 +0200 CEST [1430052740] lvol3 2015-06-30 14:52:23 +0200 CEST [1435668743] $ lvs vg -o name,time -S 'time since "2015-04-26 15:00" && time until "2015-06-30"' LV Time lvol0 2015-06-28 21:25:41 +0200 CEST [1435519541] lvol1 2015-06-30 03:25:43 +0200 CEST [1435627543] lvol3 2015-06-30 14:52:23 +0200 CEST [1435668743] $ lvs vg -o name,time -S 'time since "2015-04-26 15:00" && time until "2015-06-30 6:00"' LV Time lvol0 2015-06-28 21:25:41 +0200 CEST [1435519541] lvol1 2015-06-30 03:25:43 +0200 CEST [1435627543] $ lvs vg -o name,time -S 'time since @1435519541' LV Time lvol0 2015-06-28 21:25:41 +0200 CEST [1435519541] lvol1 2015-06-30 03:25:43 +0200 CEST [1435627543] lvol3 2015-06-30 14:52:23 +0200 CEST [1435668743] This is basic time recognition support that is directly a part of libdevmapper. Recognition of more free-form expressions will be a part of subsequent patches.
* configure: set DEFAULT_FALLBACK_TO_LVM1 in configure and use it in ↵Peter Rajnoha2015-06-306-8/+22
| | | | | | | | | | config_settings.h Just like we have DEFAULT_USE_LVMETAD (or DEFUALT_USE_LVMPOLLD), use fallback_to_lvm1=1 lvm.conf setting if we configured lvm2 with --enable-lvm1-fallback and use fallback_to_lvm1=0 otherwise. Also, generate proper lvm.conf.in with unconfigured value.
* cleanup: report: use internal wrapper for various variables used for ↵Peter Rajnoha2015-06-301-36/+57
| | | | | | | handling reserved values Just a cleanup - wrap several variables we use to handle reserved values into a structure for easier manipulation in the code.
* select: add support for range reserved values and flagging named-only valuesPeter Rajnoha2015-06-305-139/+304
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows for registration and recognition of reserved values which are ranges, so they're composed of two values actually to denote the lower and upper bound for the range (stored as an array with exactly two items to define the boundaries). Also, this patch allows for flagging reserved values as named-only which means that such values are not strictly reserved. The strictly reserved values are reserved values as used before this patch. Distinction between strictly-reserved and named-only values is clearly visible with comparisons. Normally, strictly reserved value is not accounted for if we do "greater than" or "lower than" comparisons, for example: 1 2 3 .... | abc - we have "abc" as reserved value for field with value "2" - the value reported for the field is "abc" (or "2", it doesn't matter here) - the selection we're processing is -S 'field < abc' - the result of the selection gives nothing as "abc" is strictly reserved value (bound to "2") and there's no order defined for it and it would only match if we directly compared the value (so -S 'field = abc' would match) With named-only values, the "abc" is named-only value for "2", so selection -S 'field < abc" is the same as using -S 'field < 2'. The "abc" is just an alias for some value so the value or its assigned name can be used equally in selection criteria.
* cleanup: time: error out on incorrect time_format and indentation in ↵Peter Rajnoha2015-06-293-10/+12
| | | | config_settings.h
* lv: time: increase buffer to 4k in lv_time_dupPeter Rajnoha2015-06-291-1/+1
|
* toolcontext: use proper set of chars to check time format againstPeter Rajnoha2015-06-291-2/+2
|
* conf: make time format configurablePeter Rajnoha2015-06-2911-8/+209
| | | | | | | | | | | | | | | | | | | | | | | | Make it possible to define format for time that is displayed. The way the format is defined is equal to the way that is used for strftime function, although not all formatting options as used in strftime are available for LVM2 - the set is restricted (e.g. we do not allow newline to be printed). The lvm.conf comments contain the whole list that LVM2 accepts for time format together with brief description (copied from strftime man page). For example: (defaults used - the format is the same as used before this patch) $ lvs -o+time vg/lvol0 vg/lvol1 LV VG Attr LSize Time lvol0 vg -wi-a----- 4.00m 2015-06-25 16:18:34 +0200 lvol1 vg -wi-a----- 4.00m 2015-06-29 09:17:11 +0200 (using 'time_format = "@%s"' in lvm.conf - number of seconds since the Epoch) $ lvs -o+time vg/lvol0 vg/lvol1 LV VG Attr LSize Time lvol0 vg -wi-a----- 4.00m @1435241914 lvol1 vg -wi-a----- 4.00m @1435562231
* config: regenerate lvm.conf.in and lvmlocal.conf.inPeter Rajnoha2015-06-292-20/+0
|
* refactor: rename _out_tags fn to _out_list and use it for string lists in ↵Peter Rajnoha2015-06-291-11/+12
| | | | general
* cleanup: remove unused tags.c filePeter Rajnoha2015-06-292-22/+0
|
* refactor: rename alloc_printed_tags fn to _alloc_printed_str_list and use it ↵Peter Rajnoha2015-06-293-44/+42
| | | | for string lists in general
* refactor: rename read_tags fn to _read_str_list and use it for string lists ↵Peter Rajnoha2015-06-293-25/+25
| | | | in general
* tests: tests needs pre 1.13 thin-pool extorgZdenek Kabelac2015-06-261-0/+4
| | | | This test is testing older style, so disable feature when present.
* tests: deactivate before removeZdenek Kabelac2015-06-261-0/+1
| | | | | | Testing if this avoids udev race with removal of snapshot on some test machines. See: https://bugzilla.redhat.com/show_bug.cgi?id=1217819
* makefiles: avoid bash == operator syntax, use = insteadFerenc Wágner2015-06-262-2/+6
| | | | | | | | | Commit e587b0677b705786a78f21bac1966621f70b2752 broke the build on systems where /bin/sh is Dash, for example. Origin patch by Ferenc Wágner <wferi@niif.hu> changed later to avoid using shell call, so makefile add 'server' target when one of metad or polld daemon is requested.
* lvmconfig: do not display settings with undefined default valuesPeter Rajnoha2015-06-251-5/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not display settings with undefined default values, but do display these settings in case the value is defined directly in any part of the existing config cascade. For example, the lvmconfig --type current always displays these settings (as it's somewhere in "current" configuration cascade that makes it defined). The lvmconfig --type full displays these settings only if it's defined somewhere in the cascade, but not if default value is used instead The lvmconfig --type default never displays these settings... More concrete example - let's have activation/volume_list directly set in lvm.conf and activation/read_only_volume_list not set. Both of these settings have *undefined default* values. $lvmconfig --type full activation/volume_list activation/read_only_volume_list volume_list="/dev/vg/lv" (...only volume_list is defined, hence it's printed) However, the comments will display more info (see also previous commit): $lvmconfig --type full activation/volume_list activation/read_only_volume_list --withsummary # Configuration option activation/volume_list. # Only LVs selected by this list are activated. # This configuration option does not have a default value defined. # Value defined in existing configuration has been used for this setting. volume_list="/dev/vg/lv" # Configuration option activation/read_only_volume_list. # LVs in this list are activated in read-only mode. # This configuration option does not have a default value defined.
* lvmconfig: display comment about value from existing config being usedPeter Rajnoha2015-06-252-1/+8
| | | | | | | | | | | | | | | Display comment abour value from existing config being used. For example: $ lvmconfig --type full --withsummary report/compact_output report/buffered # Configuration option report/compact_output. # Do not print empty report fields. # Value defined in existing configuration has been used for this setting. compact_output=1 # Configuration option report/buffered. # Buffer report output. buffered=1
* lvmconfig: add --type full to display full tree of settingsPeter Rajnoha2015-06-256-32/+91
| | | | | | | | | | | | | | The lvmconfig --type full is actually a combination of --type current and --type missing together with --mergedconfig options used. The overall outcome is a configuration tree with settings as LVM sees it when it looks for the values - that means, if the setting is defined in some config source (lvm.conf, --config, lvmlocal.conf or any profile that is used), the setting is used. Otherwise, if the setting is not defined in any part of the config cascade, the defaults are used. The --type full displays exactly this final tree with all the values defined, either coming from configuration tree or from defaults.
* config: also clone associated id when cloning node using ↵Peter Rajnoha2015-06-251-0/+2
| | | | dm_config_clone_node{_with_mem}
* man: Add missing env vars to lvm man page.Alasdair G Kergon2015-06-242-6/+30
|
* libdaemon: add comment about using main and initDavid Teigland2015-06-241-0/+5
|
* tests: workaround udev problemZdenek Kabelac2015-06-241-0/+5
| | | | | If udev has not removed 'dir' entry - just issue TEST WARNING, clear dir, but do not fail whole rest of test.
* snapshot: add synchronization pointZdenek Kabelac2015-06-242-0/+4
| | | | | | | | | | | | | | Synchronize with udev logic before reusing device as snapshot. This patch tries to fix the problem with udev, where we manage to 'active' LV for clearing, then we deactivate such device and active again as member of 'origin&snapshot' tree all in 1 step. There needs to be a sync point where udev has time to remove all links, otherwise we race with scans and we may end-up with mysterious 'free' links in the system pointing to wrong dm names. This patch tries to fix failing topology cluster tests..
* commands: --withspaces also for config and lvmconfig cmd aliasesPeter Rajnoha2015-06-241-2/+4
|
* make: use lvmconfig ... --withspaces when generating lvm.conf and lvmlocal.confPeter Rajnoha2015-06-241-2/+2
|
* lvmconfig: add --withspaces optionPeter Rajnoha2015-06-247-4/+18
| | | | | | | | | | We shouldn't be adding spaces by default in output as that may be be used already in scripts and especially for the eval in shell scripts where spaces are not allowed between key and value! Add --withspaces option to lvmconfig for pretty output with more space in for readability.
* WHATS_NEW: recent commits - config value format flagsPeter Rajnoha2015-06-241-0/+3
|
* config: regenerate configure.in to accomodate all recent changesPeter Rajnoha2015-06-242-38/+45
| | | | Hopefully closer to the ideal.
* config: devices/filter and devices/global_filter setting have 'a/.*/' as ↵Peter Rajnoha2015-06-241-2/+2
| | | | default value
* config: allow empty values for {thin,cache}_{check,repair}_optionsPeter Rajnoha2015-06-241-4/+4
| | | | | | It's not an error to define empty values for {thin,cache}_{check,repair}_options - such empty value means no options are passed when these external commands are called.
* configure: add DEFAULT_USE_BLKID_WIPINGPeter Rajnoha2015-06-244-3/+23
| | | | | | | | | If blkid wiping is possible, than set use_blkid_wiping=1 and use_blkid_wiping=0 otherwise for its default value. If blkid wiping is disabled during configure and use_blkid_wiping=1 is set by chance, it's simply ignored - this patch is just a cleanup that makes it more obvious for the user (we use similar logic for use_lvmetad and use_lvmpolld settings).
* config: display global/umask in octal formPeter Rajnoha2015-06-241-1/+1
|
* config: use proper unconfigured default values for use_lvmetad and ↵Peter Rajnoha2015-06-241-2/+2
| | | | | | | | | | | | | | | | use_lvmpolld settings Default value for lvmetad and lvmpolld has hooks in configure script, the "lvmconfig --type default --unconfigured" should display: use_lvmetad = @DEFAULT_USE_LVMETAD@ use_lvmpolld = @DEFAULT_USE_LVMPOLLD@ Note that these settings are not of string type. Recent change (the DM_CONFIG_VALUE_FMT_STRING_NO_QUOTES formatting flag) makes it possible to recognize that the setting is not of string type and if there's unconfigured value defined for it, the enclosing " " is automatically removed on output.
* config: cleanup default values for some configuration settings with array valuesPeter Rajnoha2015-06-242-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Do not use "#S" (blank string) as default value as that ends up with 'key = [ "" ]' to be generated which is not what we want in most cases. Also, fix default values for global/{thin,cache}_{check,repair}_options and avoid assigning blank values. For example, the thin_check_options had this set as default value previously: "#S" DEFAULT_THIN_CHECK_OPTION1 "#S" DEFAULT_THIN_CHECK_OPTION2 If any (or both) of DEFAULT_THIN_CHECK_OPTION* variables was set to "", we ended up with clumsy default value generated like: thin_check_options = [ "-q", "" ] With this patch, we end up with correct: thin_check_options = [ "-q" ] or, if all options are undefined: thin_check_options = [ ] Which is the correct way to express this.
* config: add support for config value formatting flagsPeter Rajnoha2015-06-246-15/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are two basic groups of formatting flags (32 bits): - common ones applicable for all config value types (lower 16 bits) - type-related formatting flags (higher 16 bits) With this patch, we initially support four new flags that modify the the way the config value is displayed: Common flags: ============= DM_CONFIG_VALUE_FMT_COMMON_ARRAY - causes array config values to be enclosed in "[ ]" even if there's only one item (previously, there was no way to recognize an array with one item and scalar value, hence array values with one member were always displayed without "[ ]" which libdm accepted when reading, but it may have been misleading for users) DM_CONFIG_VALUE_FMT_COMMON_EXTRA_SPACE - causes extra spaces to be inserted in "key = value" (or key = [ value, value, ... ] in case of arrays), compared to "key=value" seen on output before. This makes the output more readable for users. Type-related flags: =================== DM_CONFIG_VALUE_FMT_INT_OCTAL - prints integers in octal form with "0" as a prefix (libdm's config reading code can handle this via strtol just fine so it's properly recognized as number in octal form already if there's "0" used as prefix) DM_CONFIG_VALUE_FMT_STRING_NO_QUOTES - makes it possible to print strings without enclosing " " This patch also adds dm_config_value_set_format_flags and dm_config_value_get_format_flags functions to set and get these formatting flags.
* libdaemon: allow main processing function to be specifiedDavid Teigland2015-06-232-1/+8
|