It seems when we changed the Controller websocket handler from inheriting from the Machine handler to the Node handler, we lost the update_interface method, and the region controller will currently throw this exception:
2022-07-26 13:49:11 twisted.internet.asyncioreactor.AsyncioSelectorReactor: [critical]
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/twisted/python/log.py", line 103, in callWithLogger
return callWithContext({"system": lp}, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/log.py", line 86, in callWithContext
return context.call({ILogContext: newCtx}, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 122, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python3/dist-packages/twisted/python/context.py", line 85, in callWithContext
return func(*args,**kw)
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/twisted/internet/asyncioreactor.py", line 136, in _readOrWrite
why = method()
File "/usr/lib/python3/dist-packages/twisted/internet/unix.py", line 191, in doRead
return self._dataReceived(data)
File "/usr/lib/python3/dist-packages/twisted/internet/tcp.py", line 249, in _dataReceived
rval = self.protocol.dataReceived(data)
File "/usr/lib/python3/dist-packages/maasserver/websockets/websockets.py", line 426, in dataReceived
self._parseFrames()
File "/usr/lib/python3/dist-packages/maasserver/websockets/websockets.py", line 399, in _parseFrames
self._receiver.frameReceived(opcode, data, fin)
File "/usr/lib/python3/dist-packages/maasserver/websockets/websockets.py", line 480, in frameReceived
self._wrappedProtocol.dataReceived(content)
File "/usr/lib/python3/dist-packages/maasserver/websockets/protocol.py", line 237, in dataReceived
self.processMessages()
File "/usr/lib/python3/dist-packages/maasserver/websockets/protocol.py", line 262, in processMessages
if self.handleRequest(message, msg_type) is None:
File "/usr/lib/python3/dist-packages/maasserver/websockets/protocol.py", line 308, in handleRequest
d = handler.execute(method, message.get("params", {}))
File "/usr/lib/python3/dist-packages/provisioningserver/prometheus/utils.py", line 127, in wrapper
result = func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/provisioningserver/utils/twisted.py", line 127, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python3/dist-packages/maasserver/websockets/base.py", line 388, in execute
raise HandlerNoSuchMethodError(method_name)
maasserver.websockets.base.HandlerNoSuchMethodError: update_interface