]> sourceware.org Git - lvm2.git/commitdiff
config: add profile arg to find_config_tree_int
authorPeter Rajnoha <prajnoha@redhat.com>
Tue, 25 Jun 2013 10:30:34 +0000 (12:30 +0200)
committerPeter Rajnoha <prajnoha@redhat.com>
Tue, 2 Jul 2013 13:19:09 +0000 (15:19 +0200)
17 files changed:
daemons/clvmd/lvm-functions.c
lib/commands/toolcontext.c
lib/config/config.c
lib/config/config.h
lib/format_text/format-text.c
lib/locking/locking.c
lib/metadata/lv_manip.c
lib/metadata/metadata.c
lib/metadata/thin_manip.c
lib/mm/memlock.c
tools/lvcreate.c
tools/lvm.c
tools/lvresize.c
tools/polldaemon.c
tools/pvscan.c
tools/toollib.c
tools/vgconvert.c

index 5be9ee18aeb3dd3375e4f064caf44f0b00af9634..9d62675cf8d52f66e01113d0c8ffa20d73ffc0e9 100644 (file)
@@ -803,7 +803,7 @@ static void check_config(void)
 {
        int locking_type;
 
-       locking_type = find_config_tree_int(cmd, global_locking_type_CFG);
+       locking_type = find_config_tree_int(cmd, global_locking_type_CFG, NULL);
 
        if (locking_type == 3) /* compiled-in cluster support */
                return;
index f5b8d48547f698d9622ff0476f735b12d4a08ec6..8fce261defc2083b89d64fd9e5da1f4690cfd207 100644 (file)
@@ -182,7 +182,7 @@ static void _init_logging(struct cmd_context *cmd)
                init_syslog(cmd->default_settings.syslog);
 
        /* Debug level for log file output */
-       cmd->default_settings.debug = find_config_tree_int(cmd, log_level_CFG);
+       cmd->default_settings.debug = find_config_tree_int(cmd, log_level_CFG, NULL);
        init_debug(cmd->default_settings.debug);
 
        /*
@@ -281,7 +281,7 @@ static int _process_config(struct cmd_context *cmd)
        }
 
        /* umask */
-       cmd->default_settings.umask = find_config_tree_int(cmd, global_umask_CFG);
+       cmd->default_settings.umask = find_config_tree_int(cmd, global_umask_CFG, NULL);
 
        if ((old_umask = umask((mode_t) cmd->default_settings.umask)) !=
            (mode_t) cmd->default_settings.umask)
@@ -426,7 +426,7 @@ static int _process_config(struct cmd_context *cmd)
        cn = find_config_tree_node(cmd, devices_global_filter_CFG, NULL);
        lvmetad_set_token(cn ? cn->v : NULL);
 
-       if (find_config_tree_int(cmd, global_locking_type_CFG) == 3 &&
+       if (find_config_tree_int(cmd, global_locking_type_CFG, NULL) == 3 &&
            find_config_tree_bool(cmd, global_use_lvmetad_CFG)) {
                log_warn("WARNING: configuration setting use_lvmetad overridden to 0 due to locking_type 3. "
                         "Clustered environment not supported by lvmetad yet.");
@@ -716,7 +716,7 @@ static int _init_dev_cache(struct cmd_context *cmd)
        int device_list_from_udev;
 
        init_dev_disable_after_error_count(
-               find_config_tree_int(cmd, devices_disable_after_error_count_CFG));
+               find_config_tree_int(cmd, devices_disable_after_error_count_CFG, NULL));
 
        if (!dev_cache_init(cmd))
                return_0;
@@ -1255,9 +1255,9 @@ static int _init_backup(struct cmd_context *cmd)
        cmd->default_settings.archive =
            find_config_tree_bool(cmd, backup_archive_CFG);
 
-       days = (uint32_t) find_config_tree_int(cmd, backup_retain_days_CFG);
+       days = (uint32_t) find_config_tree_int(cmd, backup_retain_days_CFG, NULL);
 
-       min = (uint32_t) find_config_tree_int(cmd, backup_retain_min_CFG);
+       min = (uint32_t) find_config_tree_int(cmd, backup_retain_min_CFG, NULL);
 
        if (dm_snprintf
            (default_dir, sizeof(default_dir), "%s/%s", cmd->system_dir,
index 15761534e7e4e45799154746fca8ea2eaa797fef..ae00461443e4e93ed6173c0ec471a7ace6a5eff1 100644 (file)
@@ -844,15 +844,25 @@ const char *find_config_tree_str_allow_empty(struct cmd_context *cmd, int id, st
        return str;
 }
 
-int find_config_tree_int(struct cmd_context *cmd, int id)
+int find_config_tree_int(struct cmd_context *cmd, int id, struct profile *profile)
 {
        cfg_def_item_t *item = cfg_def_get_item_p(id);
        const char *path = cfg_def_get_path(item);
+       int profile_applied = 0;
+       int i;
 
        if (item->type != CFG_TYPE_INT)
                log_error(INTERNAL_ERROR "%s cfg tree element not declared as integer.", path);
 
-       return dm_config_tree_find_int(cmd->cft, path, cfg_def_get_default_value(item, CFG_TYPE_INT));
+       if (profile && !cmd->profile_params->global_profile)
+               profile_applied = override_config_tree_from_profile(cmd, profile);
+
+       i = dm_config_tree_find_int(cmd->cft, path, cfg_def_get_default_value(item, CFG_TYPE_INT));
+
+       if (profile_applied)
+               remove_config_tree_by_source(cmd, CONFIG_PROFILE);
+
+       return i;
 }
 
 int64_t find_config_tree_int64(struct cmd_context *cmd, int id)
index 56ed4ea30f19532021b85bd16e75ba8ad45d984c..a93cef9c0c467d4d5156c1f76de8cb31527ec7b2 100644 (file)
@@ -167,7 +167,7 @@ int merge_config_tree(struct cmd_context *cmd, struct dm_config_tree *cft,
 const struct dm_config_node *find_config_tree_node(struct cmd_context *cmd, int id, struct profile *profile);
 const char *find_config_tree_str(struct cmd_context *cmd, int id, struct profile *profile);
 const char *find_config_tree_str_allow_empty(struct cmd_context *cmd, int id, struct profile *profile);
-int find_config_tree_int(struct cmd_context *cmd, int id);
+int find_config_tree_int(struct cmd_context *cmd, int id, struct profile *profile);
 int64_t find_config_tree_int64(struct cmd_context *cmd, int id);
 float find_config_tree_float(struct cmd_context *cmd, int id);
 int find_config_tree_bool(struct cmd_context *cmd, int id);
index 96c4f8bdef3460f0ca03bd0b182a98f166ac2d41..a5b9b6c11644772668f81f5a2e3c083e9b91a90f 100644 (file)
@@ -1478,7 +1478,7 @@ static int _text_pv_initialise(const struct format_type *fmt,
        unsigned long adjustment, final_alignment = 0;
 
        if (!data_alignment)
-               data_alignment = find_config_tree_int(pv->fmt->cmd, devices_data_alignment_CFG) * 2;
+               data_alignment = find_config_tree_int(pv->fmt->cmd, devices_data_alignment_CFG, NULL) * 2;
 
        if (set_pe_align(pv, data_alignment) != data_alignment &&
            data_alignment) {
index 044570f393e349edfe36a35709f78656482b96e8..7d9db60d2e79bbb6b66dd779e4b87fcb92ed2cc0 100644 (file)
@@ -225,7 +225,7 @@ int init_locking(int type, struct cmd_context *cmd, int suppress_messages)
                suppress_messages = 1;
 
        if (type < 0)
-               type = find_config_tree_int(cmd, global_locking_type_CFG);
+               type = find_config_tree_int(cmd, global_locking_type_CFG, NULL);
 
        _blocking_supported = find_config_tree_bool(cmd, global_wait_for_locks_CFG);
 
index ef7c75a9aab4bae9235d3a7944a84908dfb4a3c2..e74b6f1950fbe640fd2a904277774733fc0f3814 100644 (file)
@@ -182,8 +182,8 @@ int get_default_region_size(struct cmd_context *cmd)
         * 'mirror_region_size' is the old setting.  It is overridden
         * by the new setting, 'raid_region_size'.
         */
-       mrs = 2 * find_config_tree_int(cmd, activation_mirror_region_size_CFG);
-       rrs = 2 * find_config_tree_int(cmd, activation_raid_region_size_CFG);
+       mrs = 2 * find_config_tree_int(cmd, activation_mirror_region_size_CFG, NULL);
+       rrs = 2 * find_config_tree_int(cmd, activation_raid_region_size_CFG, NULL);
 
        if (!mrs && !rrs)
                return DEFAULT_RAID_REGION_SIZE * 2;
index 8a98aa6d7acd0f1cf8fefc1d0beb048c0997719e..0dfb23bb3e57547e76928a94fb9f83899e73795c 100644 (file)
@@ -65,7 +65,7 @@ unsigned long set_pe_align(struct physical_volume *pv, unsigned long data_alignm
                goto out;
        }
 
-       default_pe_align = find_config_tree_int(pv->fmt->cmd, devices_default_data_alignment_CFG);
+       default_pe_align = find_config_tree_int(pv->fmt->cmd, devices_default_data_alignment_CFG, NULL);
 
        if (default_pe_align)
                /* align on 1 MiB multiple */
index 7ddadcfc1e6cece40169a600c078c659509e7939..9fccc6f180fb3d18e7c8afb6933fbf3983cdd05b 100644 (file)
@@ -335,7 +335,7 @@ int pool_below_threshold(const struct lv_segment *pool_seg)
 {
        percent_t percent;
        int threshold = PERCENT_1 *
-               find_config_tree_int(pool_seg->lv->vg->cmd, activation_thin_pool_autoextend_threshold_CFG);
+               find_config_tree_int(pool_seg->lv->vg->cmd, activation_thin_pool_autoextend_threshold_CFG, NULL);
 
        /* Data */
        if (!lv_thin_pool_percent(pool_seg->lv, 0, &percent))
index d2cb61cbc6e2f741af282aff721e70b661fb9159..594687ea19986fd61b0368a449de420021896bad 100644 (file)
@@ -463,9 +463,9 @@ void memlock_init(struct cmd_context *cmd)
 {
        /* When threaded, caller already limited stack size so just use the default. */
        _size_stack = 1024ULL * (cmd->threaded ? DEFAULT_RESERVED_STACK :
-                                find_config_tree_int(cmd, activation_reserved_stack_CFG));
-       _size_malloc_tmp = find_config_tree_int(cmd, activation_reserved_memory_CFG) * 1024ULL;
-       _default_priority = find_config_tree_int(cmd, activation_process_priority_CFG);
+                                find_config_tree_int(cmd, activation_reserved_stack_CFG, NULL));
+       _size_malloc_tmp = find_config_tree_int(cmd, activation_reserved_memory_CFG, NULL) * 1024ULL;
+       _default_priority = find_config_tree_int(cmd, activation_process_priority_CFG, NULL);
 }
 
 void memlock_reset(void)
index e49b9cb4d61628f11b15ba65dcbb088a9378c370..dcd05d0ab0cd38cfd6bc1ccabd5c3c74cc94e705 100644 (file)
@@ -542,7 +542,7 @@ static int _read_raid_params(struct lvcreate_params *lp,
                }
                /* No stripe argument was given - default to 2 */
                lp->stripes = 2;
-               lp->stripe_size = find_config_tree_int(cmd, metadata_stripesize_CFG) * 2;
+               lp->stripe_size = find_config_tree_int(cmd, metadata_stripesize_CFG, NULL) * 2;
        }
 
        /*
index ebce811bc402c3e245430b2b428c7e05d0d415c3..51e92932a33f510d525df793db0af0d8e4bd619c 100644 (file)
@@ -165,7 +165,7 @@ static void _read_history(struct cmd_context *cmd)
        if (read_history(hist_file))
                log_very_verbose("Couldn't read history from %s.", hist_file);
 
-       stifle_history(find_config_tree_int(cmd, shell_history_size_CFG));
+       stifle_history(find_config_tree_int(cmd, shell_history_size_CFG, NULL));
 }
 
 static void _write_history(void)
index 1ba5a5c6ef173c59f2dc7fb2a0da61ee92689139..bd29bc64ff71f7fca19fe66e2c840bbf26608e7c 100644 (file)
@@ -306,16 +306,16 @@ static int _adjust_policy_params(struct cmd_context *cmd,
 
        if (lv_is_thin_pool(lv)) {
                policy_threshold =
-                       find_config_tree_int(cmd, activation_thin_pool_autoextend_threshold_CFG) * PERCENT_1;
+                       find_config_tree_int(cmd, activation_thin_pool_autoextend_threshold_CFG, NULL) * PERCENT_1;
                policy_amount =
-                       find_config_tree_int(cmd, activation_thin_pool_autoextend_percent_CFG);
+                       find_config_tree_int(cmd, activation_thin_pool_autoextend_percent_CFG, NULL);
                if (!policy_amount && policy_threshold < PERCENT_100)
                         return 0;
        } else {
                policy_threshold =
-                       find_config_tree_int(cmd, activation_snapshot_autoextend_threshold_CFG) * PERCENT_1;
+                       find_config_tree_int(cmd, activation_snapshot_autoextend_threshold_CFG, NULL) * PERCENT_1;
                policy_amount =
-                       find_config_tree_int(cmd, activation_snapshot_autoextend_percent_CFG);
+                       find_config_tree_int(cmd, activation_snapshot_autoextend_percent_CFG, NULL);
        }
 
        if (policy_threshold >= PERCENT_100)
@@ -754,7 +754,7 @@ static int _lvresize(struct cmd_context *cmd, struct volume_group *vg,
                                lp->stripe_size = seg_stripesize;
                        } else {
                                lp->stripe_size =
-                                       find_config_tree_int(cmd, metadata_stripesize_CFG) * 2;
+                                       find_config_tree_int(cmd, metadata_stripesize_CFG, NULL) * 2;
                                log_print_unless_silent("Using default stripesize %s",
                                                        display_size(cmd, (uint64_t) lp->stripe_size));
                        }
index 57246239c11c20da5ec13a605009def3b3e4e30b..c139d2ba508f7b4be3f8d7740f49eb32e8577966 100644 (file)
@@ -319,7 +319,7 @@ int poll_daemon(struct cmd_context *cmd, const char *name, const char *uuid,
        if (interval_sign == SIGN_MINUS)
                log_error("Argument to --interval cannot be negative");
        parms.interval = arg_uint_value(cmd, interval_ARG,
-                                       find_config_tree_int(cmd, activation_polling_interval_CFG));
+                                       find_config_tree_int(cmd, activation_polling_interval_CFG, NULL));
        parms.wait_before_testing = (interval_sign == SIGN_PLUS);
        parms.progress_display = 1;
        parms.progress_title = progress_title;
@@ -336,7 +336,7 @@ int poll_daemon(struct cmd_context *cmd, const char *name, const char *uuid,
 
                /* FIXME Disabled multiple-copy wait_event */
                if (!name)
-                       parms.interval = find_config_tree_int(cmd, activation_polling_interval_CFG);
+                       parms.interval = find_config_tree_int(cmd, activation_polling_interval_CFG, NULL);
        }
 
        if (parms.background) {
index a194c680c67f04aa61575b376da23e82db8aeb6b..f4d104a2961e8704937eb6b94368f9447e68bbab 100644 (file)
@@ -148,7 +148,7 @@ static int _pvscan_lvmetad(struct cmd_context *cmd, int argc, char **argv)
         * and to prevent hangs in clustered environment.
         */
        /* TODO: Remove this once lvmetad + cluster supported! */
-       if (find_config_tree_int(cmd, global_locking_type_CFG) == 3 ||
+       if (find_config_tree_int(cmd, global_locking_type_CFG, NULL) == 3 ||
            !find_config_tree_bool(cmd, global_use_lvmetad_CFG)) {
                log_debug_lvmetad("_pvscan_lvmetad: immediate return");
                return ret;
index f1ceecbdc57001c4471523f2c0860fd819c43aee..879e7f98259c025a1ceba92d3751adf4e7d519f0 100644 (file)
@@ -1288,7 +1288,7 @@ int vgcreate_params_set_from_args(struct cmd_context *cmd,
                vp_new->vgmetadatacopies = arg_int_value(cmd, vgmetadatacopies_ARG,
                                                        DEFAULT_VGMETADATACOPIES);
        } else {
-               vp_new->vgmetadatacopies = find_config_tree_int(cmd, metadata_vgmetadatacopies_CFG);
+               vp_new->vgmetadatacopies = find_config_tree_int(cmd, metadata_vgmetadatacopies_CFG, NULL);
        }
 
        return 1;
@@ -1503,11 +1503,11 @@ int pvcreate_params_validate(struct cmd_context *cmd,
 
        pp->pvmetadatasize = arg_uint64_value(cmd, metadatasize_ARG, UINT64_C(0));
        if (!pp->pvmetadatasize)
-               pp->pvmetadatasize = find_config_tree_int(cmd, metadata_pvmetadatasize_CFG);
+               pp->pvmetadatasize = find_config_tree_int(cmd, metadata_pvmetadatasize_CFG, NULL);
 
        pp->pvmetadatacopies = arg_int_value(cmd, pvmetadatacopies_ARG, -1);
        if (pp->pvmetadatacopies < 0)
-               pp->pvmetadatacopies = find_config_tree_int(cmd, metadata_pvmetadatacopies_CFG);
+               pp->pvmetadatacopies = find_config_tree_int(cmd, metadata_pvmetadatacopies_CFG, NULL);
 
        pp->rp.ba_size = arg_uint64_value(cmd, bootloaderareasize_ARG, pp->rp.ba_size);
 
@@ -1575,7 +1575,7 @@ int get_pool_params(struct cmd_context *cmd, int *passed_args,
                log_very_verbose("Setting pool chunk size: %s",
                                 display_size(cmd, *chunk_size));
        } else
-               *chunk_size = find_config_tree_int(cmd, allocation_thin_pool_chunk_size_CFG) * 2;
+               *chunk_size = find_config_tree_int(cmd, allocation_thin_pool_chunk_size_CFG, NULL) * 2;
 
        if ((*chunk_size < DM_THIN_MIN_DATA_BLOCK_SIZE) ||
            (*chunk_size > DM_THIN_MAX_DATA_BLOCK_SIZE)) {
@@ -1653,7 +1653,7 @@ static int _validate_stripe_params(struct cmd_context *cmd, uint32_t *stripes,
        }
 
        if (*stripes > 1 && !*stripe_size) {
-               *stripe_size = find_config_tree_int(cmd, metadata_stripesize_CFG) * 2;
+               *stripe_size = find_config_tree_int(cmd, metadata_stripesize_CFG, NULL) * 2;
                log_print_unless_silent("Using default stripesize %s",
                          display_size(cmd, (uint64_t) *stripe_size));
        }
index 3c984d753acc53fa96f977700a167b5484cd5d44..fbb1b4efc1f56334ed3ee0022d19e5ec71137c64 100644 (file)
@@ -49,12 +49,12 @@ static int vgconvert_single(struct cmd_context *cmd, const char *vg_name,
                                                  UINT64_C(0));
                if (!pvmetadatasize)
                        pvmetadatasize =
-                           find_config_tree_int(cmd, metadata_pvmetadatasize_CFG);
+                           find_config_tree_int(cmd, metadata_pvmetadatasize_CFG, NULL);
 
                pvmetadatacopies = arg_int_value(cmd, pvmetadatacopies_ARG, -1);
                if (pvmetadatacopies < 0)
                        pvmetadatacopies =
-                           find_config_tree_int(cmd, metadata_pvmetadatacopies_CFG);
+                           find_config_tree_int(cmd, metadata_pvmetadatacopies_CFG, NULL);
        }
 
        if (cmd->fmt->features & FMT_BAS) {
This page took 0.06252 seconds and 5 git commands to generate.