[virt-tools-list] [virt-install PATCH v2 04/14] osdict: Properly set the timezone for the install script config
Fabiano Fidêncio
fidencio at redhat.com
Fri Feb 22 08:40:11 UTC 2019
Let's try to guess the timezone from '/etc/localtime' and use it, if
possible. Otherwise, let's just let it be and libosinfo will use the
default 'America/New_York' one.
Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
virtinst/osdict.py | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/virtinst/osdict.py b/virtinst/osdict.py
index 53e03020..0408e232 100644
--- a/virtinst/osdict.py
+++ b/virtinst/osdict.py
@@ -13,7 +13,7 @@ import re
import gi
gi.require_version('Libosinfo', '1.0')
from gi.repository import Libosinfo as libosinfo
-from gi.repository import GLib as glib
+from gi.repository import GLib as glib, Gio as gio
###################
@@ -554,6 +554,24 @@ class _OsVariant(object):
def requires_admin_password(script):
return requires_param(libosinfo.INSTALL_CONFIG_PROP_ADMIN_PASSWORD)
+ def get_timezone():
+ TZ_FILE = "/etc/localtime"
+ localtime = gio.File.new_for_path(TZ_FILE)
+ if not localtime.query_exists():
+ return None
+ info = localtime.query_info(
+ gio.FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET,
+ gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS)
+ if not info:
+ return None
+ target = info.get_symlink_target()
+ if not target:
+ return None
+ tokens = target.split("zoneinfo/")
+ if not tokens or len(tokens) < 2:
+ return None
+ return tokens[1]
+
config = libosinfo.InstallConfig()
# Set user login and name based on the one from the system
@@ -593,6 +611,16 @@ class _OsVariant(object):
config.set_hardware_arch(arch)
config.set_hostname(hostname)
+ # Try to guess the timezone from '/etc/localtime', in case it's not
+ # possible 'America/New_York' will be used.
+ timezone = get_timezone()
+ if timezone:
+ config.set_l10n_timezone(timezone)
+ else:
+ logging.warning(
+ _("'America/New_York' timezone will be used for this "
+ "unattended installation."))
+
logging.debug("InstallScriptConfig created with the following params:")
logging.debug("username: %s", config.get_user_login())
logging.debug("realname: %s", config.get_user_realname())
@@ -601,6 +629,7 @@ class _OsVariant(object):
logging.debug("target disk: %s", config.get_target_disk())
logging.debug("hardware arch: %s", config.get_hardware_arch())
logging.debug("hostname: %s", config.get_hostname())
+ logging.debug("timezone: %s", config.get_l10n_timezone())
return config
--
2.20.1
More information about the virt-tools-list
mailing list