From d2632d60aa86f5f214eba2a10d338beb3b7722ca Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Wed, 10 Dec 2014 13:54:10 +0100 Subject: [PATCH] storage: unify permission formatting Volume and pool formatting functions took different approaches to unspecified uids/gids. When unknown, it is always parsed as -1, but one of the functions formatted it as unsigned int (wrong) and one as int (better). Due to that, our two of our XML files from tests cannot be parsed on 32-bit machines. RNG schema needs to be modified as well, but because both storagepool.rng and storagevol.rng need same schema for permission element, save some space by moving it to storagecommon.rng. Signed-off-by: Martin Kletzander --- docs/schemas/storagecommon.rng | 29 ++++++++++++++++++ docs/schemas/storagepool.rng | 30 +------------------ docs/schemas/storagevol.rng | 23 -------------- src/conf/storage_conf.c | 9 +++--- .../vol-gluster-dir-neg-uid.xml | 17 +++++++++++ .../vol-gluster-dir-neg-uid.xml | 17 +++++++++++ .../storagevolxml2xmlout/vol-gluster-dir.xml | 4 +-- tests/storagevolxml2xmlout/vol-sheepdog.xml | 4 +-- tests/storagevolxml2xmltest.c | 1 + 9 files changed, 73 insertions(+), 61 deletions(-) create mode 100644 tests/storagevolxml2xmlin/vol-gluster-dir-neg-uid.xml create mode 100644 tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml diff --git a/docs/schemas/storagecommon.rng b/docs/schemas/storagecommon.rng index 06b2f81fde..629505f147 100644 --- a/docs/schemas/storagecommon.rng +++ b/docs/schemas/storagecommon.rng @@ -93,4 +93,33 @@ + + + + + + + + + + + -1 + + + + + + -1 + + + + + + + + + + + + diff --git a/docs/schemas/storagepool.rng b/docs/schemas/storagepool.rng index 0f05c5cc5f..db6ff49a04 100644 --- a/docs/schemas/storagepool.rng +++ b/docs/schemas/storagepool.rng @@ -3,6 +3,7 @@ + @@ -224,35 +225,6 @@ - - - - - - - - - - - -1 - - - - - - -1 - - - - - - - - - - - - diff --git a/docs/schemas/storagevol.rng b/docs/schemas/storagevol.rng index 1b2d4cccad..7450547ffa 100644 --- a/docs/schemas/storagevol.rng +++ b/docs/schemas/storagevol.rng @@ -59,29 +59,6 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 3987470450..e1be06432d 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1203,7 +1203,6 @@ virStoragePoolDefFormat(virStoragePoolDefPtr def) (int) def->target.perms.uid); virBufferAsprintf(&buf, "%d\n", (int) def->target.perms.gid); - virBufferEscapeString(&buf, "\n", def->target.perms.label); @@ -1527,10 +1526,10 @@ virStorageVolTargetDefFormat(virStorageVolOptionsPtr options, virBufferAsprintf(buf, "0%o\n", def->perms->mode); - virBufferAsprintf(buf, "%u\n", - (unsigned int) def->perms->uid); - virBufferAsprintf(buf, "%u\n", - (unsigned int) def->perms->gid); + virBufferAsprintf(buf, "%d\n", + (int) def->perms->uid); + virBufferAsprintf(buf, "%d\n", + (int) def->perms->gid); virBufferEscapeString(buf, "\n", diff --git a/tests/storagevolxml2xmlin/vol-gluster-dir-neg-uid.xml b/tests/storagevolxml2xmlin/vol-gluster-dir-neg-uid.xml new file mode 100644 index 0000000000..f188cebd85 --- /dev/null +++ b/tests/storagevolxml2xmlin/vol-gluster-dir-neg-uid.xml @@ -0,0 +1,17 @@ + + dir + vol/dir + + + 0 + 0 + + gluster://example.com/vol/dir + + + 0600 + 4294967295 + 4294967295 + + + diff --git a/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml b/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml new file mode 100644 index 0000000000..538b31d08f --- /dev/null +++ b/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml @@ -0,0 +1,17 @@ + + dir + vol/dir + + + 0 + 0 + + gluster://example.com/vol/dir + + + 0600 + -1 + -1 + + + diff --git a/tests/storagevolxml2xmlout/vol-gluster-dir.xml b/tests/storagevolxml2xmlout/vol-gluster-dir.xml index f188cebd85..538b31d08f 100644 --- a/tests/storagevolxml2xmlout/vol-gluster-dir.xml +++ b/tests/storagevolxml2xmlout/vol-gluster-dir.xml @@ -10,8 +10,8 @@ 0600 - 4294967295 - 4294967295 + -1 + -1 diff --git a/tests/storagevolxml2xmlout/vol-sheepdog.xml b/tests/storagevolxml2xmlout/vol-sheepdog.xml index e08e36c1ca..0a1f32c787 100644 --- a/tests/storagevolxml2xmlout/vol-sheepdog.xml +++ b/tests/storagevolxml2xmlout/vol-sheepdog.xml @@ -9,8 +9,8 @@ 0600 - 4294967295 - 4294967295 + -1 + -1 diff --git a/tests/storagevolxml2xmltest.c b/tests/storagevolxml2xmltest.c index 234a2f1e8c..cf4d401bd3 100644 --- a/tests/storagevolxml2xmltest.c +++ b/tests/storagevolxml2xmltest.c @@ -122,6 +122,7 @@ mymain(void) DO_TEST("pool-logical", "vol-logical-backing"); DO_TEST("pool-sheepdog", "vol-sheepdog"); DO_TEST("pool-gluster", "vol-gluster-dir"); + DO_TEST("pool-gluster", "vol-gluster-dir-neg-uid"); return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE; }