1
1
import asyncio
2
2
import logging
3
+ import tempfile
3
4
from asyncio .subprocess import Process
4
5
from pathlib import Path
5
6
@@ -53,12 +54,25 @@ async def test_create_qemu_instance(mocker):
53
54
No network.
54
55
We don't actually check that the system ping since there is no network
55
56
"""
57
+
56
58
mocker .patch .object (settings , "ALLOW_VM_NETWORKING" , False )
57
59
mocker .patch .object (settings , "USE_FAKE_INSTANCE_BASE" , True )
58
60
mocker .patch .object (settings , "FAKE_INSTANCE_MESSAGE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
59
- mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
61
+ mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_QEMU_INSTANCE_BASE )
60
62
mocker .patch .object (settings , "ENABLE_CONFIDENTIAL_COMPUTING" , False )
61
63
mocker .patch .object (settings , "USE_JAILER" , False )
64
+ tmp_dir = tempfile .TemporaryDirectory (prefix = "alephtest_" )
65
+ tmp_path = Path (tmp_dir .name )
66
+ cache_root = tmp_path / "cache"
67
+ exec_root = tmp_path / "exec"
68
+ mocker .patch .object (settings , "CACHE_ROOT" , cache_root )
69
+ mocker .patch .object (settings , "EXECUTION_ROOT" , exec_root )
70
+ mocker .patch .object (settings , "PERSISTENT_VOLUMES_DIR" , exec_root / "volumes" / "persistent" )
71
+ mocker .patch .object (settings , "JAILER_BASE_DIRECTORY" , exec_root / "jailer" )
72
+ mocker .patch .object (settings , "EXECUTION_LOG_DIRECTORY" , exec_root / "executions" )
73
+
74
+ # Patch journal.stream so the output of qemu proecss is shown in the test output
75
+ mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
62
76
63
77
# Patch journal.stream so the output of qemu proecss is shown in the test output
64
78
mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
@@ -69,10 +83,12 @@ async def test_create_qemu_instance(mocker):
69
83
)
70
84
71
85
logging .basicConfig (level = logging .DEBUG )
72
-
86
+ logger = logging . getLogger ( __name__ )
73
87
# Ensure that the settings are correct and required files present.
74
88
settings .setup ()
75
89
settings .check ()
90
+ logger .info (settings .EXECUTION_ROOT )
91
+ logger .info (settings .PERSISTENT_VOLUMES_DIR )
76
92
77
93
# The database is required for the metrics and is currently not optional.
78
94
engine = metrics .setup_engine ()
@@ -121,10 +137,20 @@ async def test_create_qemu_instance_online(mocker):
121
137
mocker .patch .object (settings , "ALLOW_VM_NETWORKING" , True )
122
138
mocker .patch .object (settings , "USE_FAKE_INSTANCE_BASE" , True )
123
139
mocker .patch .object (settings , "FAKE_INSTANCE_MESSAGE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
124
- mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_INSTANCE_QEMU_MESSAGE )
140
+ mocker .patch .object (settings , "FAKE_INSTANCE_BASE" , settings .FAKE_QEMU_INSTANCE_BASE )
125
141
mocker .patch .object (settings , "ENABLE_CONFIDENTIAL_COMPUTING" , False )
126
142
mocker .patch .object (settings , "USE_JAILER" , False )
127
143
144
+ tmp_dir = tempfile .TemporaryDirectory (prefix = "alephtest_" )
145
+ tmp_path = Path (tmp_dir .name )
146
+ cache_root = tmp_path / "cache"
147
+ exec_root = tmp_path / "exec"
148
+ mocker .patch .object (settings , "CACHE_ROOT" , cache_root )
149
+ mocker .patch .object (settings , "EXECUTION_ROOT" , exec_root )
150
+ mocker .patch .object (settings , "PERSISTENT_VOLUMES_DIR" , exec_root / "volumes" / "persistent" )
151
+ mocker .patch .object (settings , "JAILER_BASE_DIRECTORY" , exec_root / "jailer" )
152
+ mocker .patch .object (settings , "EXECUTION_LOG_DIRECTORY" , exec_root / "executions" )
153
+
128
154
# Patch journal.stream so the output of qemu proecss is shown in the test output
129
155
mocker .patch ("aleph.vm.hypervisors.qemu.qemuvm.journal.stream" , return_value = None )
130
156
@@ -134,10 +160,12 @@ async def test_create_qemu_instance_online(mocker):
134
160
settings .FAKE_QEMU_INSTANCE_BASE
135
161
)
136
162
)
163
+ logger = logging .getLogger (__name__ )
137
164
# Ensure that the settings are correct and required files present.
138
165
settings .setup ()
139
166
settings .check ()
140
-
167
+ logger .info (settings .EXECUTION_ROOT )
168
+ logger .info (settings .PERSISTENT_VOLUMES_DIR )
141
169
# The database is required for the metrics and is currently not optional.
142
170
engine = metrics .setup_engine ()
143
171
await metrics .create_tables (engine )
0 commit comments