From: wysochanski@sourceware.org <wysochanski@sourceware.org>
To: lvm-devel@redhat.com
Subject: LVM2/test/api test.c
Date: 25 Oct 2010 14:09:20 -0000 [thread overview]
Message-ID: <20101025140920.20758.qmail@sourceware.org> (raw)
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: wysochanski at sourceware.org 2010-10-25 14:09:20
Modified files:
test/api : test.c
Log message:
Add interactive tests for lvm_{pv|vg|lv}_get_property().
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/api/test.c.diff?cvsroot=lvm2&r1=1.30&r2=1.31
--- LVM2/test/api/test.c 2010/05/19 11:53:30 1.30
+++ LVM2/test/api/test.c 2010/10/25 14:09:19 1.31
@@ -91,6 +91,12 @@
"Issue a lvm_config_override() with accept device filter\n");
printf("'vg_get_tags vgname': "
"List the tags of a VG\n");
+ printf("'lv_get_property vgname lvname property_name': "
+ "Display the value of LV property\n");
+ printf("'vg_get_property vgname property_name': "
+ "Display the value of VG property\n");
+ printf("'pv_get_property pvname property_name': "
+ "Display the value of PV property\n");
printf("'lv_get_tags vgname lvname': "
"List the tags of a LV\n");
printf("'vg_{add|remove}_tag vgname tag': "
@@ -180,6 +186,23 @@
}
return vg;
}
+
+static pv_t _lookup_pv_by_name(char **argv, int argc)
+{
+ pv_t pv;
+
+ if (argc < 2) {
+ printf ("Please enter vg_name\n");
+ return NULL;
+ }
+ if (!(pv = dm_hash_lookup(_pvname_hash, argv[1]))) {
+ printf ("Can't find %s in open PVs - run vg_open first\n",
+ argv[1]);
+ return NULL;
+ }
+ return pv;
+}
+
static void _add_lvs_to_lvname_hash(struct dm_list *lvs)
{
struct lvm_lv_list *lvl;
@@ -546,6 +569,89 @@
add ? "adding":"removing", argv[2], argv[1]);
}
+static void _print_property_value(struct lvm_property_value value)
+{
+ if (value.is_string)
+ printf(", value = %s\n", value.value.string);
+ else
+ printf(", value = %"PRIu64"\n", value.value.integer);
+}
+
+static void _pv_get_property(char **argv, int argc)
+{
+ pv_t pv;
+ struct lvm_property_value v;
+
+ if (argc < 3) {
+ printf("Please enter pvname, field_id\n");
+ return;
+ }
+ if (!(pv = _lookup_pv_by_name(argv, argc)))
+ return;
+ v = lvm_pv_get_property(pv, argv[2]);
+ if (!v.is_valid)
+ printf("Error ");
+ else
+ printf("Success ");
+ printf("obtaining value of property %s in PV %s",
+ argv[2], argv[1]);
+ if (!v.is_valid) {
+ printf("\n");
+ return;
+ }
+ _print_property_value(v);
+}
+
+static void _vg_get_property(char **argv, int argc)
+{
+ vg_t vg;
+ struct lvm_property_value v;
+
+ if (argc < 3) {
+ printf("Please enter vgname, field_id\n");
+ return;
+ }
+ if (!(vg = _lookup_vg_by_name(argv, argc)))
+ return;
+ v = lvm_vg_get_property(vg, argv[2]);
+ if (!v.is_valid)
+ printf("Error ");
+ else
+ printf("Success ");
+ printf("obtaining value of property %s in VG %s",
+ argv[2], argv[1]);
+ if (!v.is_valid) {
+ printf("\n");
+ return;
+ }
+ _print_property_value(v);
+}
+
+static void _lv_get_property(char **argv, int argc)
+{
+ lv_t lv;
+ struct lvm_property_value v;
+
+ if (argc < 4) {
+ printf("Please enter vgname, lvname, field_id\n");
+ return;
+ }
+ if (!(lv = _lookup_lv_by_name(argv[2])))
+ return;
+ v = lvm_lv_get_property(lv, argv[3]);
+ if (!v.is_valid)
+ printf("Error ");
+ else
+ printf("Success ");
+ printf("obtaining value of property %s in LV %s",
+ argv[3], argv[2]);
+ if (!v.is_valid) {
+ printf("\n");
+ return;
+ }
+ _print_property_value(v);
+}
+
static void _lv_get_tags(char **argv, int argc)
{
lv_t lv;
@@ -796,6 +902,12 @@
_vg_tag(argv, argc, 0);
} else if (!strcmp(argv[0], "vg_get_tags")) {
_vg_get_tags(argv, argc);
+ } else if (!strcmp(argv[0], "lv_get_property")) {
+ _lv_get_property(argv, argc);
+ } else if (!strcmp(argv[0], "vg_get_property")) {
+ _vg_get_property(argv, argc);
+ } else if (!strcmp(argv[0], "pv_get_property")) {
+ _pv_get_property(argv, argc);
} else if (!strcmp(argv[0], "lv_add_tag")) {
_lv_tag(argv, argc, 1);
} else if (!strcmp(argv[0], "lv_remove_tag")) {
next reply other threads:[~2010-10-25 14:09 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-25 14:09 wysochanski [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-03-01 23:29 LVM2/test/api test.c zkabelac
2011-03-01 23:18 zkabelac
2010-11-25 14:35 mornfall
2010-11-17 20:13 mornfall
2010-11-17 19:17 mornfall
2010-05-19 11:53 wysochanski
2010-02-24 18:16 wysochanski
2009-08-07 21:22 wysochanski
2009-07-28 14:12 wysochanski
2009-07-28 13:49 wysochanski
2009-07-27 21:02 wysochanski
2009-07-27 17:45 wysochanski
2009-07-26 20:59 wysochanski
2009-07-26 20:58 wysochanski
2009-07-26 14:37 wysochanski
2009-07-26 13:08 wysochanski
2009-07-26 13:07 wysochanski
2009-07-26 2:35 wysochanski
2009-07-26 2:35 wysochanski
2009-07-24 12:51 wysochanski
2009-07-24 4:15 wysochanski
2009-07-23 23:40 wysochanski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101025140920.20758.qmail@sourceware.org \
--to=wysochanski@sourceware.org \
--cc=lvm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.