[lvm-devel] master - vg/lvremove: support --yes
Zdenek Kabelac
zkabelac at fedoraproject.org
Mon Oct 6 13:33:30 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=79ca382b2c24fd01aa25c98c0ab29b97a4358270
Commit: 79ca382b2c24fd01aa25c98c0ab29b97a4358270
Parent: fbf14b12d8710f10b7a7f1a0a23347ac5ad1a826
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Sat Oct 4 17:05:29 2014 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Oct 6 15:22:24 2014 +0200
vg/lvremove: support --yes
Make --yes equivalent to DONT_PROMT (--force).
So user could use 'lvremove --yes vg/lvol1' skipping prompt.
---
WHATS_NEW | 1 +
tools/lvremove.c | 12 ++++++++++--
tools/vgremove.c | 11 ++++++++---
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index d2b5303..3855bb1 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.112 -
=====================================
+ Support --yes like --force in vg/lvremove to skip y|n prompt.
Support --yes with lvconvert --splitsnapshot.
Fix detection of unsupported thin external lvconversions.
Fix detection of unsupported cache and thin pool lvconversions.
diff --git a/tools/lvremove.c b/tools/lvremove.c
index dfc435c..7d2fec1 100644
--- a/tools/lvremove.c
+++ b/tools/lvremove.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -18,7 +18,15 @@
static int lvremove_single(struct cmd_context *cmd, struct logical_volume *lv,
void *handle __attribute__((unused)))
{
- if (!lv_remove_with_dependencies(cmd, lv, (force_t) arg_count(cmd, force_ARG), 0))
+ /*
+ * Single force is equivalent to sinle --yes
+ * Even multiple --yes are equivalent to single --force
+ * When we require -ff it cannot be replaces with -f -y
+ */
+ force_t force = (force_t) arg_count(cmd, force_ARG)
+ ? : (arg_is_set(cmd, yes_ARG) ? DONT_PROMPT : PROMPT);
+
+ if (!lv_remove_with_dependencies(cmd, lv, force, 0))
return_ECMD_FAILED;
return ECMD_PROCESSED;
diff --git a/tools/vgremove.c b/tools/vgremove.c
index 52bdd2b..0bbca76 100644
--- a/tools/vgremove.c
+++ b/tools/vgremove.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2014 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -19,15 +19,20 @@ static int vgremove_single(struct cmd_context *cmd, const char *vg_name,
struct volume_group *vg,
void *handle __attribute__((unused)))
{
+ /*
+ * Single force is equivalent to sinle --yes
+ * Even multiple --yes are equivalent to single --force
+ * When we require -ff it cannot be replaces with -f -y
+ */
+ force_t force = (force_t) arg_count(cmd, force_ARG)
+ ? : (arg_is_set(cmd, yes_ARG) ? DONT_PROMPT : PROMPT);
unsigned lv_count, missing;
- force_t force;
if (!vg_check_status(vg, EXPORTED_VG))
return_ECMD_FAILED;
lv_count = vg_visible_lvs(vg);
- force = (force_t) arg_count(cmd, force_ARG);
if (lv_count) {
if (force == PROMPT) {
if ((missing = vg_missing_pv_count(vg)))
More information about the lvm-devel
mailing list