Re: [libvirt] [PATCH] lxc: convert to typesafe virConf accessors in lxc_native.c
On Fri, 2018-05-04 at 18:46 +0530, Prafull wrote: > From: Prafullkumar Tale> > Signed-off-by: Prafullkumar Tale > --- > src/lxc/lxc_native.c | 141 > +-- > 1 file changed, 70 insertions(+), 71 deletions(-) > > diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c > index 55ea774..35077e1 100644 > --- a/src/lxc/lxc_native.c > +++ b/src/lxc/lxc_native.c > @@ -199,19 +199,15 @@ lxcSetRootfs(virDomainDefPtr def, > virConfPtr properties) > { > int type = VIR_DOMAIN_FS_TYPE_MOUNT; > -virConfValuePtr value; > +char *value = NULL; > > -if (!(value = virConfGetValue(properties, "lxc.rootfs")) || > -!value->str) { > -virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > - _("Missing lxc.rootfs configuration")); > +if (virConfGetValueString(properties, "lxc.rootfs", ) <= 0) > return -1; > -} > > -if (STRPREFIX(value->str, "/dev/")) > +if (STRPREFIX(value, "/dev/")) > type = VIR_DOMAIN_FS_TYPE_BLOCK; > > -if (lxcAddFSDef(def, type, value->str, "/", false, 0) < 0) > +if (lxcAddFSDef(def, type, value, "/", false, 0) < 0) > return -1; > > return 0; > @@ -684,17 +680,17 @@ lxcConvertNetworkSettings(virDomainDefPtr def, > virConfPtr properties) > static int > lxcCreateConsoles(virDomainDefPtr def, virConfPtr properties) > { > -virConfValuePtr value; > +char *value = NULL; > int nbttys = 0; > virDomainChrDefPtr console; > size_t i; > > -if (!(value = virConfGetValue(properties, "lxc.tty")) || !value->str) > +if (virConfGetValueString(properties, "lxc.tty", ) <= 0) > return 0; > > -if (virStrToLong_i(value->str, NULL, 10, ) < 0) { > +if (virStrToLong_i(value, NULL, 10, ) < 0) { > virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to parse int: > '%s'"), > - value->str); > + value); > return -1; > } > > @@ -761,89 +757,91 @@ lxcIdmapWalkCallback(const char *name, virConfValuePtr > value, void *data) > static int > lxcSetMemTune(virDomainDefPtr def, virConfPtr properties) > { > -virConfValuePtr value; > +char *value = NULL; > unsigned long long size = 0; > > -if ((value = virConfGetValue(properties, > -"lxc.cgroup.memory.limit_in_bytes")) && > -value->str && STRNEQ(value->str, "-1")) { > -if (lxcConvertSize(value->str, ) < 0) > -return -1; > +if (virConfGetValueString(properties, > + "lxc.cgroup.memory.limit_in_bytes", > + ) > 0) { > +if (lxcConvertSize(value, ) < 0) > +goto error; > size = size / 1024; > virDomainDefSetMemoryTotal(def, size); > def->mem.hard_limit = virMemoryLimitTruncate(size); > } > > -if ((value = virConfGetValue(properties, > -"lxc.cgroup.memory.soft_limit_in_bytes")) && > -value->str && STRNEQ(value->str, "-1")) { > -if (lxcConvertSize(value->str, ) < 0) > -return -1; > - > +if (virConfGetValueString(properties, > + "lxc.cgroup.memory.soft_limit_in_bytes", > + ) > 0) { > +if (lxcConvertSize(value, ) < 0) > +goto error; > def->mem.soft_limit = virMemoryLimitTruncate(size / 1024); > } > > -if ((value = virConfGetValue(properties, > -"lxc.cgroup.memory.memsw.limit_in_bytes")) && > -value->str && STRNEQ(value->str, "-1")) { > -if (lxcConvertSize(value->str, ) < 0) > -return -1; > - > +if (virConfGetValueString(properties, > + "lxc.cgroup.memory.memsw.limit_in_bytes", > + ) > 0) { > +if (lxcConvertSize(value, ) < 0) > +goto error; > def->mem.swap_hard_limit = virMemoryLimitTruncate(size / 1024); > } > return 0; > + > + error: > +virReportError(VIR_ERR_INTERNAL_ERROR, > + _("failed to parse integer: '%s'"), value); > +return -1; > + > } > > static int > lxcSetCpuTune(virDomainDefPtr def, virConfPtr properties) > { > -virConfValuePtr value; > +char *value = NULL; > > -if ((value = virConfGetValue(properties, "lxc.cgroup.cpu.shares")) && > -value->str) { > -if (virStrToLong_ull(value->str, NULL, 10, >cputune.shares) < 0) > +if (virConfGetValueString(properties, "lxc.cgroup.cpu.shares", > + ) > 0) { > +if (virStrToLong_ull(value, NULL, 10, >cputune.shares) < 0) > goto error; > def->cputune.sharesSpecified = true; > } > > -if ((value = virConfGetValue(properties, > - "lxc.cgroup.cpu.cfs_quota_us")) && > -
[libvirt] [PATCH] lxc: convert to typesafe virConf accessors in lxc_native.c
From: Prafullkumar TaleSigned-off-by: Prafullkumar Tale --- src/lxc/lxc_native.c | 141 +-- 1 file changed, 70 insertions(+), 71 deletions(-) diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c index 55ea774..35077e1 100644 --- a/src/lxc/lxc_native.c +++ b/src/lxc/lxc_native.c @@ -199,19 +199,15 @@ lxcSetRootfs(virDomainDefPtr def, virConfPtr properties) { int type = VIR_DOMAIN_FS_TYPE_MOUNT; -virConfValuePtr value; +char *value = NULL; -if (!(value = virConfGetValue(properties, "lxc.rootfs")) || -!value->str) { -virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", - _("Missing lxc.rootfs configuration")); +if (virConfGetValueString(properties, "lxc.rootfs", ) <= 0) return -1; -} -if (STRPREFIX(value->str, "/dev/")) +if (STRPREFIX(value, "/dev/")) type = VIR_DOMAIN_FS_TYPE_BLOCK; -if (lxcAddFSDef(def, type, value->str, "/", false, 0) < 0) +if (lxcAddFSDef(def, type, value, "/", false, 0) < 0) return -1; return 0; @@ -684,17 +680,17 @@ lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties) static int lxcCreateConsoles(virDomainDefPtr def, virConfPtr properties) { -virConfValuePtr value; +char *value = NULL; int nbttys = 0; virDomainChrDefPtr console; size_t i; -if (!(value = virConfGetValue(properties, "lxc.tty")) || !value->str) +if (virConfGetValueString(properties, "lxc.tty", ) <= 0) return 0; -if (virStrToLong_i(value->str, NULL, 10, ) < 0) { +if (virStrToLong_i(value, NULL, 10, ) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("failed to parse int: '%s'"), - value->str); + value); return -1; } @@ -761,89 +757,91 @@ lxcIdmapWalkCallback(const char *name, virConfValuePtr value, void *data) static int lxcSetMemTune(virDomainDefPtr def, virConfPtr properties) { -virConfValuePtr value; +char *value = NULL; unsigned long long size = 0; -if ((value = virConfGetValue(properties, -"lxc.cgroup.memory.limit_in_bytes")) && -value->str && STRNEQ(value->str, "-1")) { -if (lxcConvertSize(value->str, ) < 0) -return -1; +if (virConfGetValueString(properties, + "lxc.cgroup.memory.limit_in_bytes", + ) > 0) { +if (lxcConvertSize(value, ) < 0) +goto error; size = size / 1024; virDomainDefSetMemoryTotal(def, size); def->mem.hard_limit = virMemoryLimitTruncate(size); } -if ((value = virConfGetValue(properties, -"lxc.cgroup.memory.soft_limit_in_bytes")) && -value->str && STRNEQ(value->str, "-1")) { -if (lxcConvertSize(value->str, ) < 0) -return -1; - +if (virConfGetValueString(properties, + "lxc.cgroup.memory.soft_limit_in_bytes", + ) > 0) { +if (lxcConvertSize(value, ) < 0) +goto error; def->mem.soft_limit = virMemoryLimitTruncate(size / 1024); } -if ((value = virConfGetValue(properties, -"lxc.cgroup.memory.memsw.limit_in_bytes")) && -value->str && STRNEQ(value->str, "-1")) { -if (lxcConvertSize(value->str, ) < 0) -return -1; - +if (virConfGetValueString(properties, + "lxc.cgroup.memory.memsw.limit_in_bytes", + ) > 0) { +if (lxcConvertSize(value, ) < 0) +goto error; def->mem.swap_hard_limit = virMemoryLimitTruncate(size / 1024); } return 0; + + error: +virReportError(VIR_ERR_INTERNAL_ERROR, + _("failed to parse integer: '%s'"), value); +return -1; + } static int lxcSetCpuTune(virDomainDefPtr def, virConfPtr properties) { -virConfValuePtr value; +char *value = NULL; -if ((value = virConfGetValue(properties, "lxc.cgroup.cpu.shares")) && -value->str) { -if (virStrToLong_ull(value->str, NULL, 10, >cputune.shares) < 0) +if (virConfGetValueString(properties, "lxc.cgroup.cpu.shares", + ) > 0) { +if (virStrToLong_ull(value, NULL, 10, >cputune.shares) < 0) goto error; def->cputune.sharesSpecified = true; } -if ((value = virConfGetValue(properties, - "lxc.cgroup.cpu.cfs_quota_us")) && -value->str && virStrToLong_ll(value->str, NULL, 10, - >cputune.quota) < 0) -goto error; +if (virConfGetValueString(properties, "lxc.cgroup.cpu.cfs_quota_us", + ) > 0) { +if (virStrToLong_ll(value, NULL, 10, >cputune.quota) < 0) +