[lvm-devel] master - dumpconfig: add --type profilable

Peter Rajnoha prajnoha at fedoraproject.org
Tue Jul 9 08:01:07 UTC 2013


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=953a438e93a1adb0df7c7931cd6271b9d32acd7d
Commit:        953a438e93a1adb0df7c7931cd6271b9d32acd7d
Parent:        f56a1819e90900487d6d58485dd658944922f251
Author:        Peter Rajnoha <prajnoha at redhat.com>
AuthorDate:    Tue Jul 9 09:57:46 2013 +0200
Committer:     Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Tue Jul 9 10:00:47 2013 +0200

dumpconfig: add --type profilable

The --type profilable shows all config settings that
are customizable by profiles:

  raw/~ $ lvm dumpconfig --type profilable
  allocation {
	  thin_pool_zero=1
	  thin_pool_discards="passdown"
	  thin_pool_chunk_size=64
  }
  activation {
	  thin_pool_autoextend_threshold=100
	  thin_pool_autoextend_percent=20
  }
---
 WHATS_NEW           |    1 +
 lib/config/config.c |    4 ++++
 lib/config/config.h |    3 ++-
 tools/commands.h    |    2 +-
 tools/dumpconfig.c  |    4 ++++
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/WHATS_NEW b/WHATS_NEW
index 68b3b78..b3b846c 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.99 - 
 ===================================
+  Add --type profilable to lvm dumpconfig to show profilable config settings.
   Add --mergedconfig to lvm dumpconfig for merged --config/--profile/lvm.conf.
   Relase memory and unblock signals in lock_vol error path.
   Define LVM2_* command errors in lvm2cmd.h and use in dmeventd plugins.
diff --git a/lib/config/config.c b/lib/config/config.c
index 4c1b415..7c4f8ba 100644
--- a/lib/config/config.c
+++ b/lib/config/config.c
@@ -1370,6 +1370,10 @@ static int _should_skip_def_node(struct config_def_tree_spec *spec, int section_
 			if (def->since_version != spec->version)
 				return 1;
 			break;
+		case CFG_DEF_TREE_PROFILABLE:
+			if (!(def->flags & CFG_PROFILABLE))
+				return 1;
+			break;
 		default:
 			if (def->since_version > spec->version)
 				return 1;
diff --git a/lib/config/config.h b/lib/config/config.h
index 94fd1d9..263da4f 100644
--- a/lib/config/config.h
+++ b/lib/config/config.h
@@ -101,7 +101,8 @@ typedef enum {
 	CFG_DEF_TREE_MISSING,		/* tree of nodes missing in current config using default values */
 	CFG_DEF_TREE_COMPLETE,		/* CURRENT + MISSING, the tree actually used within execution, not implemented yet */
 	CFG_DEF_TREE_DEFAULT,		/* tree of all possible config nodes with default values */
-	CFG_DEF_TREE_NEW		/* tree of all new nodes that appeared in given version */
+	CFG_DEF_TREE_NEW,		/* tree of all new nodes that appeared in given version */
+	CFG_DEF_TREE_PROFILABLE		/* tree of all nodes that are customizable by profiles */
 } cfg_def_tree_t;
 
 /* configuration definition tree specification */
diff --git a/tools/commands.h b/tools/commands.h
index 3f43260..98746b0 100644
--- a/tools/commands.h
+++ b/tools/commands.h
@@ -33,7 +33,7 @@ xx(dumpconfig,
    PERMITTED_READ_ONLY,
    "dumpconfig\n"
    "\t[-f|--file filename] \n"
-   "\t[--type {current|default|missing|new} \n"
+   "\t[--type {current|default|missing|new|profilable} \n"
    "\t[--withcomments] \n"
    "\t[--withversions] \n"
    "\t[--ignoreadvanced] \n"
diff --git a/tools/dumpconfig.c b/tools/dumpconfig.c
index 08f996a..da216f5 100644
--- a/tools/dumpconfig.c
+++ b/tools/dumpconfig.c
@@ -182,6 +182,10 @@ int dumpconfig(struct cmd_context *cmd, int argc, char **argv)
 		tree_spec.type = CFG_DEF_TREE_NEW;
 		/* new type does not require check status */
 	}
+	else if (!strcmp(type, "profilable")) {
+		tree_spec.type = CFG_DEF_TREE_PROFILABLE;
+		/* profilable type does not require check status */
+	}
 	else {
 		log_error("Incorrect type of configuration specified. "
 			  "Expected one of: current, default, missing, new.");




More information about the lvm-devel mailing list