master - vgextend: allow --yes to skip prompt
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=3f8048f28c4510...
Commit: 3f8048f28c45101fde391c3609a97ca116b8e92c
Parent: 1a840323229555889184e831000b0c22f273ef66
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri May 23 23:33:17 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri May 23 23:35:40 2014 +0200
vgextend: allow --yes to skip prompt
---
WHATS_NEW | 1 +
tools/vgextend.c | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/WHATS_NEW b/WHATS_NEW
index 491dece..a2b8af7 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.107 -
==================================
+ Allow --yes to skip prompt in vgextend (worked only with -f).
Don't use name mangling for LVM - it never uses dm names with wrong char set.
Remove default.profile and add {command,metadata}_profile_template.profile.
Use proper umask for systemd units generated by lvm2-activation-generator.
diff --git a/tools/vgextend.c b/tools/vgextend.c
index 0c00b7f..2dc1699 100644
--- a/tools/vgextend.c
+++ b/tools/vgextend.c
@@ -102,9 +102,9 @@ int vgextend(struct cmd_context *cmd, int argc, char **argv)
if (arg_count(cmd, metadataignore_ARG) &&
(vg_mda_copies(vg) != VGMETADATACOPIES_UNMANAGED) &&
- (pp.force == PROMPT) &&
+ (pp.force == PROMPT) && !pp.yes &&
yes_no_prompt("Override preferred number of copies "
- "of VG %s metadata? [y/n]: ",
+ "of VG %s metadata? [y/n]: ",
vg_name) == 'n') {
log_error("Volume group %s not changed", vg_name);
goto bad;
9 years, 11 months
master - cleanup: indent
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=1a840323229555...
Commit: 1a840323229555889184e831000b0c22f273ef66
Parent: bf6b69c46b77f7b61c688b99b2bbaab0c46d840c
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri May 23 14:25:12 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri May 23 21:37:12 2014 +0200
cleanup: indent
---
lib/metadata/lv_manip.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 5fa75e1..76a9103 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -4310,7 +4310,7 @@ int lv_resize_prepare(struct cmd_context *cmd, struct logical_volume *lv,
if (lp->poolmetadatasize &&
!_lvresize_poolmetadata_prepare(cmd, lp, lv))
- return_0;
+ return_0;
return 1;
}
9 years, 11 months
master - cleanup: use directly segtype->name
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=bf6b69c46b77f7...
Commit: bf6b69c46b77f7b61c688b99b2bbaab0c46d840c
Parent: 952514611d258f99e29b29daf25e285f9286c60a
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri May 23 14:24:46 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri May 23 21:36:55 2014 +0200
cleanup: use directly segtype->name
Simplify printing of segtype name.
---
lib/metadata/lv_manip.c | 1 -
lib/metadata/merge.c | 35 ++++++++++-------------------------
2 files changed, 10 insertions(+), 26 deletions(-)
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 37c7686..5fa75e1 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -6116,7 +6116,6 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
*/
log_error("Can't create %s without using "
"device-mapper kernel driver.",
- seg_is_thin_pool(lp) ? "thin pool volume" :
lp->segtype->name);
return NULL;
}
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index 319df4b..9d6df34 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -194,35 +194,23 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
if (seg_is_pool(seg)) {
if (seg->area_count != 1 ||
seg_type(seg, 0) != AREA_LV) {
- log_error("LV %s: %spool segment %u is missing a pool data LV",
- lv->name,
- seg_is_thin_pool(seg) ?
- "thin " : "cache",
- seg_count);
+ log_error("LV %s: %s segment %u is missing a pool data LV",
+ lv->name, seg->segtype->name, seg_count);
inc_error_count;
} else if (!(seg2 = first_seg(seg_lv(seg, 0))) || find_pool_seg(seg2) != seg) {
- log_error("LV %s: %spool segment %u data LV does not refer back to pool LV",
- lv->name,
- seg_is_thin_pool(seg) ?
- "thin " : "cache",
- seg_count);
+ log_error("LV %s: %s segment %u data LV does not refer back to pool LV",
+ lv->name, seg->segtype->name, seg_count);
inc_error_count;
}
if (!seg->metadata_lv) {
- log_error("LV %s: %spool segment %u is missing a pool metadata LV",
- lv->name,
- seg_is_thin_pool(seg) ?
- "thin " : "cache",
- seg_count);
+ log_error("LV %s: %s segment %u is missing a pool metadata LV",
+ lv->name, seg->segtype->name, seg_count);
inc_error_count;
} else if (!(seg2 = first_seg(seg->metadata_lv)) ||
find_pool_seg(seg2) != seg) {
- log_error("LV %s: %spool segment %u metadata LV does not refer back to pool LV",
- lv->name,
- seg_is_thin_pool(seg) ?
- "thin " : "cache",
- seg_count);
+ log_error("LV %s: %s segment %u metadata LV does not refer back to pool LV",
+ lv->name, seg->segtype->name, seg_count);
inc_error_count;
}
@@ -232,11 +220,8 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
(seg_is_cache_pool(seg) &&
((seg->chunk_size < DM_CACHE_MIN_DATA_BLOCK_SIZE) ||
(seg->chunk_size > DM_CACHE_MAX_DATA_BLOCK_SIZE)))) {
- log_error("LV %s: %spool segment %u has chunk size %u out of range.",
- lv->name,
- seg_is_thin_pool(seg) ?
- "thin " : "cache",
- seg_count, seg->chunk_size);
+ log_error("LV %s: %s segment %u has chunk size %u out of range.",
+ lv->name, seg->segtype->name, seg_count, seg->chunk_size);
inc_error_count;
}
} else {
9 years, 11 months
master - cleanup: add seg_is_pool macro
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=952514611d258f...
Commit: 952514611d258f99e29b29daf25e285f9286c60a
Parent: cb7bba9ffe48cecaf92912d04255171bf2f79bf6
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri May 23 14:24:28 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri May 23 21:36:55 2014 +0200
cleanup: add seg_is_pool macro
Simplify code querying for pool segtype.
---
lib/metadata/lv.c | 2 +-
lib/metadata/lv_manip.c | 8 +++-----
lib/metadata/merge.c | 2 +-
lib/metadata/pool_manip.c | 7 +++----
lib/metadata/segtype.h | 2 ++
5 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c
index 4dbcb20..5414d94 100644
--- a/lib/metadata/lv.c
+++ b/lib/metadata/lv.c
@@ -170,7 +170,7 @@ uint64_t lvseg_chunksize(const struct lv_segment *seg)
if (lv_is_cow(seg->lv))
size = (uint64_t) find_snapshot(seg->lv)->chunk_size;
- else if (seg_is_thin_pool(seg) || seg_is_cache_pool(seg))
+ else if (seg_is_pool(seg))
size = (uint64_t) seg->chunk_size;
else
size = UINT64_C(0);
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index 91a15f2..37c7686 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -6077,7 +6077,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
return NULL;
}
- if (seg_is_thin_pool(lp) || seg_is_cache_pool(lp)) {
+ if (seg_is_pool(lp)) {
if (((uint64_t)lp->extents * vg->extent_size < lp->chunk_size)) {
log_error("Unable to create %s smaller than 1 chunk.",
lp->segtype->name);
@@ -6107,8 +6107,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
if (!activation() &&
(seg_is_mirrored(lp) ||
seg_is_raid(lp) ||
- seg_is_thin_pool(lp) ||
- seg_is_cache_pool(lp))) {
+ seg_is_pool(lp))) {
/*
* FIXME: For thin pool add some code to allow delayed
* initialization of empty thin pool volume.
@@ -6208,8 +6207,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
if (!lv_extend(lv, lp->segtype,
lp->stripes, lp->stripe_size,
lp->mirrors,
- (seg_is_thin_pool(lp) || seg_is_cache_pool(lp)) ?
- lp->poolmetadataextents : lp->region_size,
+ seg_is_pool(lp) ? lp->poolmetadataextents : lp->region_size,
seg_is_thin_volume(lp) ? lp->voriginextents : lp->extents,
thin_name, lp->pvh, lp->alloc, lp->approx_alloc))
return_NULL;
diff --git a/lib/metadata/merge.c b/lib/metadata/merge.c
index 146034f..319df4b 100644
--- a/lib/metadata/merge.c
+++ b/lib/metadata/merge.c
@@ -191,7 +191,7 @@ int check_lv_segments(struct logical_volume *lv, int complete_vg)
}
}
- if (seg_is_thin_pool(seg) || seg_is_cache_pool(seg)) {
+ if (seg_is_pool(seg)) {
if (seg->area_count != 1 ||
seg_type(seg, 0) != AREA_LV) {
log_error("LV %s: %spool segment %u is missing a pool data LV",
diff --git a/lib/metadata/pool_manip.c b/lib/metadata/pool_manip.c
index fe14034..ab52ff1 100644
--- a/lib/metadata/pool_manip.c
+++ b/lib/metadata/pool_manip.c
@@ -27,7 +27,7 @@
int attach_pool_metadata_lv(struct lv_segment *pool_seg,
struct logical_volume *metadata_lv)
{
- if (!seg_is_thin_pool(pool_seg) && !seg_is_cache_pool(pool_seg)) {
+ if (!seg_is_pool(pool_seg)) {
log_error(INTERNAL_ERROR
"Unable to attach pool metadata LV to %s segtype.",
pool_seg->segtype->ops->name(pool_seg));
@@ -44,7 +44,7 @@ int attach_pool_metadata_lv(struct lv_segment *pool_seg,
int attach_pool_data_lv(struct lv_segment *pool_seg,
struct logical_volume *pool_data_lv)
{
- if (!seg_is_thin_pool(pool_seg) && !seg_is_cache_pool(pool_seg)) {
+ if (!seg_is_pool(pool_seg)) {
log_error(INTERNAL_ERROR
"Unable to attach pool data LV to %s segtype.",
pool_seg->segtype->ops->name(pool_seg));
@@ -199,8 +199,7 @@ struct lv_segment *find_pool_seg(const struct lv_segment *seg)
return NULL;
}
- if ((lv_is_thin_type(seg->lv) && !seg_is_thin_pool(pool_seg)) &&
- !seg_is_cache_pool(pool_seg)) {
+ if ((lv_is_thin_type(seg->lv) && !seg_is_pool(pool_seg))) {
log_error("%s on %s is not a %s pool segment",
pool_seg->lv->name, seg->lv->name,
lv_is_thin_type(seg->lv) ? "thin" : "cache");
diff --git a/lib/metadata/segtype.h b/lib/metadata/segtype.h
index 4f060cd..1a4a92f 100644
--- a/lib/metadata/segtype.h
+++ b/lib/metadata/segtype.h
@@ -48,6 +48,7 @@ struct dev_manager;
#define segtype_is_cache(segtype) ((segtype)->flags & SEG_CACHE ? 1 : 0)
#define segtype_is_cache_pool(segtype) ((segtype)->flags & SEG_CACHE_POOL ? 1 : 0)
#define segtype_is_mirrored(segtype) ((segtype)->flags & SEG_AREAS_MIRRORED ? 1 : 0)
+#define segtype_is_pool(segtype) ((segtype)->flags & (SEG_CACHE_POOL | SEG_THIN_POOL) ? 1 : 0)
#define segtype_is_raid(segtype) ((segtype)->flags & SEG_RAID ? 1 : 0)
#define segtype_is_striped(segtype) ((segtype)->flags & SEG_AREAS_STRIPED ? 1 : 0)
#define segtype_is_thin(segtype) ((segtype)->flags & (SEG_THIN_POOL|SEG_THIN_VOLUME) ? 1 : 0)
@@ -59,6 +60,7 @@ struct dev_manager;
#define seg_is_cache_pool(seg) segtype_is_cache_pool((seg)->segtype)
#define seg_is_linear(seg) (seg_is_striped(seg) && ((seg)->area_count == 1))
#define seg_is_mirrored(seg) segtype_is_mirrored((seg)->segtype)
+#define seg_is_pool(seg) segtype_is_pool((seg)->segtype)
#define seg_is_raid(seg) segtype_is_raid((seg)->segtype)
#define seg_is_replicator(seg) ((seg)->segtype->flags & SEG_REPLICATOR ? 1 : 0)
#define seg_is_replicator_dev(seg) ((seg)->segtype->flags & SEG_REPLICATOR_DEV ? 1 : 0)
9 years, 11 months
master - dev_manager: disable extra udev loop
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=cb7bba9ffe48ce...
Commit: cb7bba9ffe48cecaf92912d04255171bf2f79bf6
Parent: ec9da34d86f7d573b3925b0f33ed9d19afa4d846
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Fri May 23 21:22:38 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Fri May 23 21:36:55 2014 +0200
dev_manager: disable extra udev loop
Disable code which has postprocessed whole tree and reset udev flags.
We need to find out which case was troublesome - since this loop
was just hidding bug in other code parts (most probably preload tree)
---
lib/activate/dev_manager.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
index fb9625d..cfceab5 100644
--- a/lib/activate/dev_manager.c
+++ b/lib/activate/dev_manager.c
@@ -2436,6 +2436,7 @@ static int _add_segment_to_dtree(struct dev_manager *dm,
return 1;
}
+#if 0
static int _set_udev_flags_for_children(struct dev_manager *dm,
struct volume_group *vg,
struct dm_tree_node *dnode)
@@ -2486,6 +2487,7 @@ static int _set_udev_flags_for_children(struct dev_manager *dm,
return 1;
}
+#endif
static int _add_new_lv_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
struct logical_volume *lv, struct lv_activate_opts *laopts,
@@ -2648,8 +2650,11 @@ static int _add_new_lv_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
if (!_add_new_lv_to_dtree(dm, dtree, sl->seg->lv, laopts, NULL))
return_0;
+#if 0
+ /* Should not be needed, will be removed */
if (!_set_udev_flags_for_children(dm, lv->vg, dnode))
return_0;
+#endif
return 1;
}
9 years, 11 months
master - tests: check more things with vgchange
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=ec9da34d86f7d5...
Commit: ec9da34d86f7d573b3925b0f33ed9d19afa4d846
Parent: 65b0948c1e9baf65e7f1bffe0f01c355d094cf9c
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu May 22 12:00:59 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu May 22 12:01:44 2014 +0200
tests: check more things with vgchange
---
test/shell/vgchange-usage.sh | 80 +++++++++++++++++++++++++++++++++++++----
1 files changed, 72 insertions(+), 8 deletions(-)
diff --git a/test/shell/vgchange-usage.sh b/test/shell/vgchange-usage.sh
index 0ae9c14..0d57913 100644
--- a/test/shell/vgchange-usage.sh
+++ b/test/shell/vgchange-usage.sh
@@ -13,33 +13,97 @@ test_description='Exercise some vgchange diagnostics'
. lib/test
-aux prepare_pvs 3
+aux prepare_pvs 4
+
pvcreate --metadatacopies 0 "$dev1"
-vgcreate $vg $(cat DEVICES)
+vgcreate -s 4M $vg "$dev1" "$dev2" "$dev3"
+
+# cannot change anything in exported vg
+vgexport $vg
+fail vgchange -ay $vg
+fail vgchange -p 8 $vg
+fail vgchange -x n $vg
+fail vgchange --addtag tag $vg
+fail vgchange --deltag tag $vg
+fail vgchange -s 4k $vg
+fail vgchange --uuid $vg
+fail vgchange --alloc anywhere $vg
+fail vgchange -c y $vg
+vgimport $vg
+
+# unsupported combinations of options...
+invalid vgchange --ignorelockingfailure --uuid $vg
+invalid vgchange --sysinit --alloc normal $vg
+invalid vgchange --sysinit --poll y $vg
+invalid vgchange -an --poll y $vg
+invalid vgchange -an --monitor y $vg
+invalid vgchange -ay --refresh $vg
vgdisplay $vg
# vgchange -p MaxPhysicalVolumes (bz202232)
-aux check vg_field $vg max_pv 0
+check vg_field $vg max_pv 0
vgchange -p 128 $vg
-aux check vg_field $vg max_pv 128
+check vg_field $vg max_pv 128
pv_count=$(get vg_field $vg pv_count)
not vgchange -p 2 $vg 2>err
grep "MaxPhysicalVolumes is less than the current number $pv_count of PVs for" err
-aux check vg_field $vg max_pv 128
+check vg_field $vg max_pv 128
# vgchange -l MaxLogicalVolumes
-aux check vg_field $vg max_lv 0
+check vg_field $vg max_lv 0
+invalid vgchange -l -128 $vg
vgchange -l 128 $vg
-aux check vg_field $vg max_lv 128
+check vg_field $vg max_lv 128
+# vgchange -s
lvcreate -l4 -n $lv1 $vg
lvcreate -l4 -n $lv2 $vg
+SIZELV2=$(get lv_field $vg/$lv2 size)
+check lv_field $vg/$lv2 seg_size_pe "4"
+vgchange -s 4K $vg
+check vg_field $vg vg_extent_size "4.00k"
+check lv_field $vg/$lv2 size "$SIZELV2"
+check lv_field $vg/$lv2 seg_size_pe "4096"
+
lv_count=$(get vg_field $vg lv_count)
not vgchange -l 1 $vg 2>err
grep "MaxLogicalVolume is less than the current number $lv_count of LVs for" err
-aux check vg_field $vg max_lv 128
+check vg_field $vg max_lv 128
+
+# check non-resizebility
+fail vgchange -x y $vg
+check vg_attr_bit resizeable $vg "z"
+vgchange -x n $vg
+check vg_attr_bit resizeable $vg "-"
+fail vgchange -x n $vg
+fail vgextend $vg "$dev4"
+vgremove -ff $vg
+
+# set cluster bit
+vgcreate -cn $vg "$dev1" "$dev2" "$dev3"
+# check prompt to change cluster bit without giving explicit vg name
+fail vgchange -cy |& tee out
+grep "y/n" out
+check vg_attr_bit cluster $vg "-"
+vgchange -cy $vg
+fail vgchange -cy $vg
+
+# check on cluster
+# either skipped as clustered (non-cluster), or already clustered (on cluster)
+if test -e LOCAL_CLVMD ; then
+ check vg_attr_bit cluster $vg "c"
+ vgchange -cn $vg
+else
+ fail vgs $vg |& tee out
+ grep "Skipping clustered volume group" out
+ vgs --ignoreskippedcluster $vg |& tee out
+ not grep "Skipping clustered volume group" out
+ # reset back to non-clustered VG with disabled locking
+ vgchange -cn --config 'global{locking_type=0}' $vg
+fi
+check vg_attr_bit cluster $vg "-"
vgremove -ff $vg
9 years, 11 months
master - tests: swap tests
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=65b0948c1e9baf...
Commit: 65b0948c1e9baf65e7f1bffe0f01c355d094cf9c
Parent: 1208e92b3476d4350b0734897ed9adb30697dcfd
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu May 22 12:00:46 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu May 22 12:01:44 2014 +0200
tests: swap tests
---
test/shell/lvconvert-repair-raid.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/test/shell/lvconvert-repair-raid.sh b/test/shell/lvconvert-repair-raid.sh
index 7d4ea7e..df64f3b 100644
--- a/test/shell/lvconvert-repair-raid.sh
+++ b/test/shell/lvconvert-repair-raid.sh
@@ -11,8 +11,8 @@
. lib/test
-aux raid456_replace_works || skip
aux have_raid 1 1 0 || skip
+aux raid456_replace_works || skip
aux lvmconf 'allocation/maximise_cling = 0'
aux lvmconf 'allocation/mirror_logs_require_separate_pvs = 1'
9 years, 11 months
master - tests: add check vg_attr_bit
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=1208e92b3476d4...
Commit: 1208e92b3476d4350b0734897ed9adb30697dcfd
Parent: 406ce3760bb619a3104ca2ef58e809c29907d506
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu May 22 11:59:11 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu May 22 12:01:44 2014 +0200
tests: add check vg_attr_bit
Similar function like 'check lv_attr_bit'
---
test/lib/check.sh | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/test/lib/check.sh b/test/lib/check.sh
index 9c80d9a..cd29ef4 100644
--- a/test/lib/check.sh
+++ b/test/lib/check.sh
@@ -282,6 +282,21 @@ vg_field() {
die "vg_field: vg=$1, field=\"$2\", actual=\"$actual\", expected=\"$3\""
}
+vg_attr_bit() {
+ local actual=$(get vg_field "$2" vg_attr "${@:4}")
+ local offset=$1
+ case "$offset" in
+ perm*) offset=0 ;;
+ resiz*) offset=1 ;;
+ export*) offset=2 ;;
+ partial) offset=3 ;;
+ alloc*) offset=4 ;;
+ cluster*) offset=5 ;;
+ esac
+ test "${actual:$offset:1}" = "$3" || \
+ die "vg_attr_bit: vg=$2, ${offset} bit of \"$actual\" is \"${actual:$offset:1}\", but expected \"$3\""
+}
+
lv_field() {
local actual=$(get lv_field "$1" "$2" "${@:4}")
test "$actual" = "$3" || \
9 years, 11 months
master - tests: detect raid presence
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=406ce3760bb619...
Commit: 406ce3760bb619a3104ca2ef58e809c29907d506
Parent: 496953fb3915a7a985558a7a1b2edf534e170dfd
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu May 22 11:58:44 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu May 22 12:01:44 2014 +0200
tests: detect raid presence
---
test/shell/lvconvert-repair-raid-dmeventd.sh | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/test/shell/lvconvert-repair-raid-dmeventd.sh b/test/shell/lvconvert-repair-raid-dmeventd.sh
index a825aa2..f83e722 100644
--- a/test/shell/lvconvert-repair-raid-dmeventd.sh
+++ b/test/shell/lvconvert-repair-raid-dmeventd.sh
@@ -12,6 +12,7 @@
. lib/test
which mkfs.ext3 || skip
+aux have_raid 1 1 0 || skip
aux prepare_dmeventd
aux prepare_vg 5
9 years, 11 months
master - cleanup: use y/n instead of y|n
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=496953fb3915a7...
Commit: 496953fb3915a7a985558a7a1b2edf534e170dfd
Parent: 1c4fe47308e3638b95f042a1efc942c5ce8e4fdc
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu May 22 11:57:51 2014 +0200
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu May 22 12:01:43 2014 +0200
cleanup: use y/n instead of y|n
Use same for of yes no query everywhere.
---
man/fsadm.8.in | 2 +-
tools/lvconvert.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/man/fsadm.8.in b/man/fsadm.8.in
index 46be1ff..20ec4c8 100644
--- a/man/fsadm.8.in
+++ b/man/fsadm.8.in
@@ -55,7 +55,7 @@ A status code of 1 is used for other failures.
Resize the filesystem on logical volume /dev/vg/test to 1000 megabytes.
If /dev/vg/test contains ext2/ext3/ext4
filesystem it will be unmounted prior the resize.
-All [y|n] questions will be answered 'y'.
+All [y/n] questions will be answered 'y'.
.sp
.B fsadm \-e \-y resize /dev/vg/test 1000M
.SH ENVIRONMENT VARIABLES
diff --git a/tools/lvconvert.c b/tools/lvconvert.c
index 79f2be5..82ce360 100644
--- a/tools/lvconvert.c
+++ b/tools/lvconvert.c
@@ -2721,7 +2721,7 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
log_warn("THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)");
if (!lp->yes &&
- yes_no_prompt("Do you really want to convert \"%s/%s\"? [y|n]: ",
+ yes_no_prompt("Do you really want to convert \"%s/%s\"? [y/n]: ",
pool_lv->vg->name, pool_lv->name) == 'n') {
log_error("Conversion aborted.");
return 0;
@@ -2839,7 +2839,7 @@ static int _lvconvert_to_pool(struct cmd_context *cmd,
log_warn("THIS WILL DESTROY CONTENT OF LOGICAL VOLUME (filesystem etc.)");
if (!lp->yes &&
- yes_no_prompt("Do you really want to convert \"%s/%s\"? [y|n]: ",
+ yes_no_prompt("Do you really want to convert \"%s/%s\"? [y/n]: ",
metadata_lv->vg->name, metadata_lv->name) == 'n') {
log_error("Conversion aborted.");
return 0;
9 years, 11 months