Merge ~adam-collard/maas-ci/+git/system-tests:lxd-vm-bug into ~maas-committers/maas-ci/+git/system-tests:master

Proposed by Adam Collard
Status: Merged
Approved by: Adam Collard
Approved revision: de8373d48cf0a1a4d1bfc87205f3d0fa155dbcde
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~adam-collard/maas-ci/+git/system-tests:lxd-vm-bug
Merge into: ~maas-committers/maas-ci/+git/system-tests:master
Diff against target: 147 lines (+18/-10)
5 files modified
systemtests/conftest.py (+1/-0)
systemtests/env_builder/test_basic.py (+2/-4)
systemtests/tests_per_machine/test_hardware_sync.py (+3/-0)
systemtests/tests_per_machine/test_machine.py (+4/-1)
systemtests/utils.py (+8/-5)
Reviewer Review Type Date Requested Status
Jack Lloyd-Walters Approve
MAAS Lander Approve
Review via email: mp+427483@code.launchpad.net

Commit message

wait_for_{,new_}machine: use machine name not hostname for error

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b lxd-vm-bug lp:~adam-collard/maas-ci/+git/system-tests into -b master lp:~maas-committers/maas-ci/+git/system-tests

STATUS: SUCCESS
COMMIT: de8373d48cf0a1a4d1bfc87205f3d0fa155dbcde

review: Approve
Revision history for this message
Jack Lloyd-Walters (lloydwaltersj) wrote :

looks good

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/systemtests/conftest.py b/systemtests/conftest.py
2index cccd490..e669a69 100644
3--- a/systemtests/conftest.py
4+++ b/systemtests/conftest.py
5@@ -190,6 +190,7 @@ def hardware_sync_machine(
6 machine,
7 status="Ready",
8 abort_status="Releasing failed",
9+ machine_id=machine_config.name,
10 timeout=40 * 60,
11 delay=10,
12 )
13diff --git a/systemtests/env_builder/test_basic.py b/systemtests/env_builder/test_basic.py
14index f6e91f6..f346095 100644
15--- a/systemtests/env_builder/test_basic.py
16+++ b/systemtests/env_builder/test_basic.py
17@@ -158,10 +158,7 @@ class TestSetup:
18 ), f"Don't know how to handle lxd_vm status: {vm_details['status']}"
19
20 _boot_vm(vm_name)
21- machine = wait_for_new_machine(
22- maas_api_client,
23- mac_address,
24- )
25+ machine = wait_for_new_machine(maas_api_client, mac_address, vm_name)
26
27 # Make sure we have power parameters set
28 if not machine["power_type"]:
29@@ -177,6 +174,7 @@ class TestSetup:
30 machine,
31 status="Ready",
32 abort_status="Failed commissioning",
33+ machine_id=vm_name,
34 timeout=20 * 60,
35 )
36 assert machine["status_name"] == "Ready"
37diff --git a/systemtests/tests_per_machine/test_hardware_sync.py b/systemtests/tests_per_machine/test_hardware_sync.py
38index 636d72b..05533c3 100644
39--- a/systemtests/tests_per_machine/test_hardware_sync.py
40+++ b/systemtests/tests_per_machine/test_hardware_sync.py
41@@ -133,6 +133,7 @@ def test_hardware_sync(
42 hardware_sync_machine.machine,
43 status="Deployed",
44 abort_status="Failed deployment",
45+ machine_id=hardware_sync_machine.name,
46 # Bump timeout to 40m since VMs are slower
47 timeout=40 * 60,
48 )
49@@ -182,6 +183,7 @@ def test_hardware_sync(
50 hardware_sync_machine.machine,
51 status="Ready",
52 abort_status="Releasing failed",
53+ machine_id=hardware_sync_machine.name,
54 timeout=40 * 60,
55 )
56 for device_config in hardware_sync_machine.devices_config:
57@@ -210,6 +212,7 @@ def test_hardware_sync(
58 hardware_sync_machine.machine,
59 status="Deployed",
60 abort_status="Failed deployment",
61+ machine_id=hardware_sync_machine.name,
62 timeout=40 * 60,
63 )
64
65diff --git a/systemtests/tests_per_machine/test_machine.py b/systemtests/tests_per_machine/test_machine.py
66index 8cdc653..4267ba7 100644
67--- a/systemtests/tests_per_machine/test_machine.py
68+++ b/systemtests/tests_per_machine/test_machine.py
69@@ -54,7 +54,7 @@ def test_full_circle(
70
71 mac_address = machine_config.mac_address
72
73- machine = wait_for_new_machine(maas_api_client, mac_address)
74+ machine = wait_for_new_machine(maas_api_client, mac_address, machine_config.name)
75
76 if not machine["power_type"]:
77 machine = maas_api_client.update_machine(
78@@ -88,6 +88,7 @@ def test_full_circle(
79 machine,
80 status="Ready",
81 abort_status="Failed commissioning",
82+ machine_id=machine_config.name,
83 timeout=timeout,
84 )
85 yield
86@@ -101,6 +102,7 @@ def test_full_circle(
87 machine,
88 status="Deployed",
89 abort_status="Failed deployment",
90+ machine_id=machine_config.name,
91 timeout=timeout,
92 )
93
94@@ -144,6 +146,7 @@ def test_full_circle(
95 machine,
96 status="Ready",
97 abort_status="Releasing failed",
98+ machine_id=machine_config.name,
99 timeout=timeout,
100 )
101 yield
102diff --git a/systemtests/utils.py b/systemtests/utils.py
103index 98456d2..74917c6 100644
104--- a/systemtests/utils.py
105+++ b/systemtests/utils.py
106@@ -154,10 +154,13 @@ def wait_for_machine(
107 machine: api.Machine,
108 status: str,
109 abort_status: Optional[str] = None,
110+ machine_id: Optional[str] = None,
111 timeout: float = 10 * 60,
112 delay: float = 30,
113 ) -> api.Machine:
114 """Blocks execution until machine reaches given status."""
115+ if machine_id is None:
116+ machine_id = machine["hostname"]
117 quiet_client = api.QuietAuthenticatedAPIClient.from_api_client(api_client)
118 for retry_info in retries(timeout, delay):
119 tmp_machine = quiet_client.read_machine(machine)
120@@ -176,14 +179,12 @@ def wait_for_machine(
121 + (f": {event['description']}" if event["description"] else "")
122 for event in reversed(events["events"])
123 )
124- raise UnexpectedMachineStatus(
125- machine["hostname"], status, retry_info.elapsed, debug_outputs
126- )
127+ raise UnexpectedMachineStatus(machine_id, status, retry_info.elapsed, debug_outputs)
128
129
130 # XXX: Move to api.py
131 def wait_for_new_machine(
132- api_client: api.AuthenticatedAPIClient, mac_address: str
133+ api_client: api.AuthenticatedAPIClient, mac_address: str, machine_name: str
134 ) -> api.Machine:
135 """Blocks execution until a machine with the given mac_address appears as New."""
136 quiet_client = api.QuietAuthenticatedAPIClient.from_api_client(api_client)
137@@ -199,7 +200,9 @@ def wait_for_new_machine(
138 if "lxd" in [m["power_type"] for m in machines]:
139 debug_outputs.append(repr(api_client.lxd.list_instances()))
140
141- raise UnexpectedMachineStatus(mac_address, "New", retry_info.elapsed, debug_outputs)
142+ raise UnexpectedMachineStatus(
143+ machine_name, "New", retry_info.elapsed, debug_outputs
144+ )
145
146
147 def wait_for_machine_to_power_off(

Subscribers

People subscribed via source and target branches

to all changes: