~cgrabowski/maas:backport_fix_lp2051988_3.5

Last commit made on 2024-05-02
Get this branch:
git clone -b backport_fix_lp2051988_3.5 https://git.launchpad.net/~cgrabowski/maas
Only Christian Grabowski can upload to this branch. If you are Christian Grabowski please log in for upload directions.

Branch merges

Branch information

Name:
backport_fix_lp2051988_3.5
Repository:
lp:~cgrabowski/maas

Recent commits

ab8750f... by Christian Grabowski

fix: only create HW sync events when hardware has changed

(cherry picked from commit 8ac98e0024bb8557bd31fa9b2d5382e8e7e0cd03)

a2940eb... by Nick De Villiers

Update maas-ui to 43b362bfe
fix(machines): tab link highlighting on machine summary 3.5 backport (#5408)

273024f... by Anton Troyanov

Prepare for 3.5.0 RC3 release

b383582... by Jacopo Rota

feat: bump default lts from focal to jammy

(cherry-picked from 27e5d52cf14c8dfd379ef1ec20a99b9b704c3b02)

44c0003... by Eline Maaike De Weerd

fix: lp-2054709 propagation of workflow execution error messages for power actions

3c34344... by Björn Tillenius

Bug #2043970: MAAS 3.2.9 creates for Calico Interfaces 80.000 fabrics

Redo the fix for bug #2043970.

In some cases we need to create VLANs/fabrics for interfaces that don't have
links. For example for VLAN interfaces, often it's the VLAN interface that has
an address, while the underlying physical interface often is without any
address. In that case, the physical interface should have a VLAN that is on the
same fabric as the VLAN interface.

Also removed the check whether a machine is a controller. A controller is not
special. It's a deployed machine. If Calico is installed on a controller, we
should not create useless fabrics.

(cherry picked from commit 94dac1082c3a3958e7c01f29e1d0320a775633ae)

548ad63... by Anton Troyanov

fix(tftp): legacy BIOS mode fails with 0-size cfg

The fix for GRUB introduced in a0b47aba48b2ad324c34b42aed9f47a7dfc85b28
lead to an issue with legacy BIOS mode, which is expecting to receive
`Error code 1: File not found` for non existing pxelinux.cfg config
files instead for a 0-size result.

Resolves LP:2063844

(cherry picked from commit 915882cfd7786a68d10a5cf461a29d7690912b80)

ba43189... by Alexsander de Souza

fix(bootresources): handle incomplete files

if a resource was partially downloaded at the time of the migration,
discard the large object and schedule it for downloading again.

(cherry picked from commit 811612c009dc8c095c3b99062563801e3a991967)

21bc85f... by Christian Grabowski

fix: handle BIND failures when notifies are delayed
(cherry picked from commit 19ac75f3d5e2bcb7d4934579aa94717dc1823104)

dc50b53... by Anton Troyanov

fix(agent): check if region endpoints are reachable

Region Controller might return IP:PORT that is not reachable by the
Agent (due to firewall configuration or network setup). Hence we should
add check if endpoints are reachable before applying them as targets
when configuring Agent HTTP reverse proxy service.

Resolves LP:2063220

Workflow logic is constrained by deterministic execution requirements.
In Go, Workflow Definition code cannot directly do the following:
- Call an external API, conduct a file I/O operation, talk to another service, etc

Normally we should use Activity for this scenario, however we are
confident and consider that we want to do this I/O inside the workflow.

But by having a blocking I/O you might get the following panic:
```
panic: Potential deadlock detected: workflow goroutine "root" didn't yield for over a second
```

It happens simply because the "root" goroutine was not scheduled for
execution. By using `workflow.Go` we don't mess with the scheduler and
we should worry about logic inside `workflow.Go` not take more than 1
second.

(cherry picked from commit 17596243156a800d060b8c5138798da8eae0950b)