[lvm-devel] [PATCH 16/21] Add lvm_vg_uuid with test code.
Dave Wysochanski
dwysocha at redhat.com
Mon Feb 9 04:22:04 UTC 2009
Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
---
lib/lvm2.h | 1 +
lib/metadata/metadata.c | 14 ++++++++++++++
test/api/test.c | 3 ++-
3 files changed, 17 insertions(+), 1 deletions(-)
diff --git a/lib/lvm2.h b/lib/lvm2.h
index e555291..1c1763b 100644
--- a/lib/lvm2.h
+++ b/lib/lvm2.h
@@ -78,6 +78,7 @@ typedef struct logical_volume lv_t;
const char *lvm_pv_name(const pv_t *pv);
const char *lvm_vg_name(const vg_t *vg);
const char *lvm_lv_name(const lv_t *lv);
+const char *lvm_vg_uuid(vg_t *vg);
int lvm_vg_get_attr_list(vg_t *vg, struct dm_list *list);
int lvm_vg_get_attr_value(vg_t *vg, const char *attr_name,
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index dcc0156..9405754 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -2717,6 +2717,20 @@ const char *lvm_vg_name(const vg_t *vg)
return vg->name;
}
+/* FIXME: signedness + null termination problem - export proper uuid type */
+const char *lvm_vg_uuid(vg_t *vg)
+{
+ char *value;
+
+ /* FIXME: leak - this is really bad */
+ if (!(value = dm_pool_zalloc(vg->cmd->mem, sizeof(vg->id.uuid)+1)))
+ return NULL;
+ strncpy(value, vg->id.uuid, sizeof(vg->id.uuid));
+ value[sizeof(vg->id.uuid)] = '\0';
+
+ return value;
+}
+
const char *lvm_lv_name(const lv_t *lv)
{
return lv->name;
diff --git a/test/api/test.c b/test/api/test.c
index 681c9a8..08daf30 100644
--- a/test/api/test.c
+++ b/test/api/test.c
@@ -273,7 +273,8 @@ static void _vg_close(char **argv, int argc)
static void _show_one_vg(vg_t *vg)
{
- printf("%s: mode = %s\n", lvm_vg_name(vg),
+ printf("%s: uuid = %s, mode = %s\n", lvm_vg_name(vg),
+ lvm_vg_uuid(vg),
lvm_vg_mode(vg) == O_RDWR ? "READ/WRITE" :
lvm_vg_mode(vg) == O_RDONLY ? "READ" :
"UNKNOWN");
--
1.6.0.5
More information about the lvm-devel
mailing list