David Kiarie wrote: > From: Kiarie Kahurani <davidkiarie4@xxxxxxxxx> > > introduce function > xenFormatXMTimeOffset(virConfPtr conf, .......); > which formats time offset config instead > > signed-off-by: David Kiarie<davidkiarie4@xxxxxxxxx> > --- > src/xenxs/xen_xm.c | 156 ++++++++++++++++++++++++++++------------------------- > 1 file changed, 84 insertions(+), 72 deletions(-) > > diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c > index 78dc949..9d868d7 100644 > --- a/src/xenxs/xen_xm.c > +++ b/src/xenxs/xen_xm.c > @@ -1686,12 +1686,94 @@ int xenFormatXMMem(virConfPtr conf, virDomainDefPtr def) > } > > > +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; > @@ -1827,78 +1909,8 @@ 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; > - > - > Removed one too many blank lines :-). Regards, Jim > if (!(lifecycle = virDomainLifecycleTypeToString(def->onPoweroff))) { > virReportError(VIR_ERR_INTERNAL_ERROR, > _("unexpected lifecycle action %d"), def->onPoweroff); > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list