Timezone setting change
authoryuhuan.yang <yuhuan.yang@123.com>
Tue, 29 Aug 2017 11:33:16 +0000 (19:33 +0800)
committeryuhuan.yang <yuhuan.yang@123.com>
Tue, 29 Aug 2017 11:48:37 +0000 (19:48 +0800)
Change-Id: I90bdc068430589f04ab148b3b8b9b31d8b197613

mic/kickstart/__init__.py

index f568f99..76cc525 100755 (executable)
@@ -200,16 +200,23 @@ class TimezoneConfig(KickstartConfig):
         f.write("ZONE=\"" + tz + "\"\n")
         f.write("UTC=" + utc + "\n")
         f.close()
+        if not os.path.exists("/opt/etc"):
+            fs.makedirs("/opt/etc")
         tz_source = "/usr/share/zoneinfo/%s" % (tz)
+        tz_midst = "/opt/etc/localtime"
         tz_dest = "/etc/localtime"
         try:
             lncmd = fs.find_binary_inchroot('ln', self.instroot)
             if lncmd:
-                self.call([lncmd, "-s", tz_source, tz_dest])
+                self.call([lncmd, "-s", tz_source, tz_midst])
+                self.call([lncmd, "-s", tz_midst, tz_dest])
             else:
                 lncmd = fs.find_binary_path('ln')
                 subprocess.call([lncmd, "-s",
                                  self.path(tz_source),
+                                 self.path(tz_midst)])
+                subprocess.call([lncmd, "-s",
+                                 self.path(tz_midst),
                                  self.path(tz_dest)])
         except (IOError, OSError), (errno, msg):
             raise errors.KsError("Timezone setting error: %s" % msg)