Skip to content

Commit c76735f

Browse files
committed
Do not set timezone for VMs with anon-timezone feature
This is implemented as a feature so that the standard check-with-template mechanism can be used. Fixes: QubesOS/qubes-issues#8381
1 parent 3494e02 commit c76735f

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

qubes/tests/vm/qubesvm.py

+28-24
Original file line numberDiff line numberDiff line change
@@ -2160,31 +2160,35 @@ def test_620_qdb_standalone(
21602160
"-A FORWARD -i vif+ -o vif+ -j DROP\n"
21612161
"COMMIT\n".format(datetime.datetime.now().ctime())
21622162
)
2163+
data = {
2164+
"/name": "test-inst-test",
2165+
"/type": "StandaloneVM",
2166+
"/default-user": "user",
2167+
"/qubes-vm-type": "AppVM",
2168+
"/qubes-debug-mode": "0",
2169+
"/qubes-base-template": "",
2170+
"/qubes-timezone": "UTC",
2171+
"/qubes-random-seed": base64.b64encode(b"A" * 64),
2172+
"/qubes-vm-persistence": "full",
2173+
"/qubes-vm-updateable": "True",
2174+
"/qubes-block-devices": "",
2175+
"/qubes-usb-devices": "",
2176+
"/qubes-iptables": "reload",
2177+
"/qubes-iptables-error": "",
2178+
"/qubes-iptables-header": iptables_header,
2179+
"/qubes-service/qubes-update-check": "0",
2180+
"/qubes-service/meminfo-writer": "1",
2181+
"/connected-ips": "",
2182+
"/connected-ips6": "",
2183+
}
21632184

2164-
self.assertEqual(
2165-
test_qubesdb.data,
2166-
{
2167-
"/name": "test-inst-test",
2168-
"/type": "StandaloneVM",
2169-
"/default-user": "user",
2170-
"/qubes-vm-type": "AppVM",
2171-
"/qubes-debug-mode": "0",
2172-
"/qubes-base-template": "",
2173-
"/qubes-timezone": "UTC",
2174-
"/qubes-random-seed": base64.b64encode(b"A" * 64),
2175-
"/qubes-vm-persistence": "full",
2176-
"/qubes-vm-updateable": "True",
2177-
"/qubes-block-devices": "",
2178-
"/qubes-usb-devices": "",
2179-
"/qubes-iptables": "reload",
2180-
"/qubes-iptables-error": "",
2181-
"/qubes-iptables-header": iptables_header,
2182-
"/qubes-service/qubes-update-check": "0",
2183-
"/qubes-service/meminfo-writer": "1",
2184-
"/connected-ips": "",
2185-
"/connected-ips6": "",
2186-
},
2187-
)
2185+
self.assertEqual(test_qubesdb.data, data)
2186+
2187+
test_qubesdb.data.clear()
2188+
vm.features["anon-timezone"] = "1"
2189+
vm.create_qdb_entries()
2190+
del data["/qubes-timezone"]
2191+
self.assertEqual(test_qubesdb.data, data)
21882192

21892193
@unittest.mock.patch("datetime.datetime")
21902194
@unittest.mock.patch("qubes.utils.get_timezone")

qubes/vm/qubesvm.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -2612,8 +2612,12 @@ def create_qdb_entries(self):
26122612
)
26132613

26142614
tzname = qubes.utils.get_timezone()
2615-
if tzname:
2615+
if tzname and not self.features.check_with_template(
2616+
"anon-timezone", False
2617+
):
26162618
self.untrusted_qdb.write("/qubes-timezone", tzname)
2619+
else:
2620+
self.untrusted_qdb.rm("/qubes-timezone")
26172621

26182622
self.untrusted_qdb.write("/qubes-block-devices", "")
26192623
self.untrusted_qdb.write("/qubes-usb-devices", "")

0 commit comments

Comments
 (0)