Skip to content

Commit

Permalink
Fix: Could not launch a VM without building it locally (#588)
Browse files Browse the repository at this point in the history
This tests that a VM from the aleph.im network can be downloaded and launched.

Co-authored-by: ajin <[email protected]>
  • Loading branch information
2 people authored and hoh committed Apr 10, 2024
1 parent 11e5a5b commit 968585b
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions tests/supervisor/test_execution.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,41 @@ async def test_create_execution():

await execution.start()
await execution.stop()


@pytest.mark.asyncio
async def test_create_execution_online():
"""
Create a new VM execution without building it locally and check that it starts properly.
"""

# Ensure that the settings are correct and required files present.
settings.setup()
settings.check()

# The database is required for the metrics and is currently not optional.
engine = metrics.setup_engine()
await metrics.create_tables(engine)

vm_hash = ItemHash("3fc0aa9569da840c43e7bd2033c3c580abb46b007527d6d20f2d4e98e867f7af")
message = await get_message(ref=vm_hash)

execution = VmExecution(
vm_hash=vm_hash,
message=message.content,
original=message.content,
snapshot_manager=None,
systemd_manager=None,
persistent=False,
)

# Downloading the resources required may take some time, limit it to 10 seconds
await asyncio.wait_for(execution.prepare(), timeout=30)

vm = execution.create(vm_id=3, tap_interface=None)
# Test that the VM is created correctly. It is not started yet.
assert isinstance(vm, AlephFirecrackerProgram)
assert vm.vm_id == 3

await execution.start()
await execution.stop()

0 comments on commit 968585b

Please sign in to comment.