[libvirt] [PREPOST 12/17] src/xenxs:Refactor virtual time config options formating code
Jim Fehlig
jfehlig at suse.com
Mon Jul 14 22:28:04 UTC 2014
David Kiarie wrote:
> From: Kiarie Kahurani <davidkiarie4 at gmail.com>
>
> Introduce function
> xenFormatXMTimeOffset(......)
> which formats virtual time config
>
Ah, on the format side you split TimeOffset and EventActions as I
requested on the parse side. Looks good with the exception of the usual
whitespace comments.
Regards,
Jim
> signed-off-by:David Kiarie<davidkiarie4 at gmail.com>
> ---
> src/xenxs/xen_xm.c | 149 ++++++++++++++++++++++++++++-------------------------
> 1 file changed, 78 insertions(+), 71 deletions(-)
>
> diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c
> index a907252..c91fa73 100644
> --- a/src/xenxs/xen_xm.c
> +++ b/src/xenxs/xen_xm.c
> @@ -1634,12 +1634,88 @@ static int xenFormatXMMem(virConfPtr conf, virDomainDefPtr def)
>
> return 0;
> }
> +static int xenFormatXMTimeOffset(virConfPtr conf, virDomainDefPtr def,
> + int xendConfigVersion)
> +{
> + int vmlocaltime;
> + if (xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
> + /* <3.1: UTC and LOCALTIME */
> + switch (def->clock.offset) {
> + case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> + vmlocaltime = 0;
> + break;
> + case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> + vmlocaltime = 1;
> + break;
> + default:
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("unsupported clock offset='%s'"),
> + virDomainClockOffsetTypeToString(def->clock.offset));
> + return -1;
> + }
> + } else {
> + if (STREQ(def->os.type, "hvm")) {
> + /* >=3.1 HV: VARIABLE */
> + int rtc_timeoffset;
> + switch (def->clock.offset) {
> + case VIR_DOMAIN_CLOCK_OFFSET_VARIABLE:
> + vmlocaltime = (int)def->clock.data.variable.basis;
> + rtc_timeoffset = def->clock.data.variable.adjustment;
> + break;
> + case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> + if (def->clock.data.utc_reset) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("unsupported clock adjustment='reset'"));
> + return -1;
> + }
> + vmlocaltime = 0;
> + rtc_timeoffset = 0;
> + break;
> + case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> + if (def->clock.data.utc_reset) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> + _("unsupported clock adjustment='reset'"));
> + return -1;
> + }
> + vmlocaltime = 1;
> + rtc_timeoffset = 0;
> + break;
> + default:
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("unsupported clock offset='%s'"),
> + virDomainClockOffsetTypeToString(def->clock.offset));
> + return -1;
> + }
> + if (xenXMConfigSetInt(conf, "rtc_timeoffset", rtc_timeoffset) < 0)
> + return -1;
> + } else {
> + /* >=3.1 PV: UTC and LOCALTIME */
> + switch (def->clock.offset) {
> + case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> + vmlocaltime = 0;
> + break;
> + case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> + vmlocaltime = 1;
> + break;
> + default:
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("unsupported clock offset='%s'"),
> + virDomainClockOffsetTypeToString(def->clock.offset));
> + return -1;
> + }
> + } /* !hvm */
> + }
> + if (xenXMConfigSetInt(conf, "localtime", vmlocaltime) < 0)
> + return -1;
> +
> + return 0;
> +}
> virConfPtr xenFormatXM(virConnectPtr conn,
> virDomainDefPtr def,
> int xendConfigVersion)
> {
> virConfPtr conf = NULL;
> - int hvm = 0, vmlocaltime = 0;
> + int hvm = 0;
> size_t i;
> char *cpus = NULL;
> const char *lifecycle;
> @@ -1778,78 +1854,9 @@ virConfPtr xenFormatXM(virConnectPtr conn,
> goto cleanup;
> } /* !hvm */
>
> -
> - if (xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) {
> - /* <3.1: UTC and LOCALTIME */
> - switch (def->clock.offset) {
> - case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> - vmlocaltime = 0;
> - break;
> - case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> - vmlocaltime = 1;
> - break;
> - default:
> - virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> - _("unsupported clock offset='%s'"),
> - virDomainClockOffsetTypeToString(def->clock.offset));
> - goto cleanup;
> - }
> - } else {
> - if (hvm) {
> - /* >=3.1 HV: VARIABLE */
> - int rtc_timeoffset;
> - switch (def->clock.offset) {
> - case VIR_DOMAIN_CLOCK_OFFSET_VARIABLE:
> - vmlocaltime = (int)def->clock.data.variable.basis;
> - rtc_timeoffset = def->clock.data.variable.adjustment;
> - break;
> - case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> - if (def->clock.data.utc_reset) {
> - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> - _("unsupported clock adjustment='reset'"));
> - goto cleanup;
> - }
> - vmlocaltime = 0;
> - rtc_timeoffset = 0;
> - break;
> - case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> - if (def->clock.data.utc_reset) {
> - virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> - _("unsupported clock adjustment='reset'"));
> - goto cleanup;
> - }
> - vmlocaltime = 1;
> - rtc_timeoffset = 0;
> - break;
> - default:
> - virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> - _("unsupported clock offset='%s'"),
> - virDomainClockOffsetTypeToString(def->clock.offset));
> - goto cleanup;
> - }
> - if (xenXMConfigSetInt(conf, "rtc_timeoffset", rtc_timeoffset) < 0)
> - goto cleanup;
> - } else {
> - /* >=3.1 PV: UTC and LOCALTIME */
> - switch (def->clock.offset) {
> - case VIR_DOMAIN_CLOCK_OFFSET_UTC:
> - vmlocaltime = 0;
> - break;
> - case VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME:
> - vmlocaltime = 1;
> - break;
> - default:
> - virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> - _("unsupported clock offset='%s'"),
> - virDomainClockOffsetTypeToString(def->clock.offset));
> - goto cleanup;
> - }
> - } /* !hvm */
> - }
> - if (xenXMConfigSetInt(conf, "localtime", vmlocaltime) < 0)
> + if (xenFormatXMTimeOffset(conf, def, xendConfigVersion) < 0)
> goto cleanup;
>
> -
> if (!(lifecycle = virDomainLifecycleTypeToString(def->onPoweroff))) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> _("unexpected lifecycle action %d"), def->onPoweroff);
>
More information about the libvir-list
mailing list