diff --git a/snap/hooks/post-refresh b/snap/hooks/post-refresh index e712809c..73ca5425 100755 --- a/snap/hooks/post-refresh +++ b/snap/hooks/post-refresh @@ -1,6 +1,3 @@ #!/bin/sh -# snapd will restart snap.subiquity.subiquity-service.service for us, -# but any processes running on the serial lines are created via -# systemd overrides in the installer layer of the squashfs and so need -# restarting separately. -systemctl restart 'serial-subiquity@*.service' +mkdir -p /run/subiquity +touch /run/subiquity/updating diff --git a/subiquity/server/controllers/refresh.py b/subiquity/server/controllers/refresh.py index b5f15cce..69cb6256 100644 --- a/subiquity/server/controllers/refresh.py +++ b/subiquity/server/controllers/refresh.py @@ -191,7 +191,6 @@ class RefreshController(SubiquityController): @with_context() async def start_update(self, context): - open(self.app.state_path('updating'), 'w').close() change = await self.app.snapd.post( 'v2/snaps/{}'.format(self.snap_name), {'action': 'refresh'}) diff --git a/subiquitycore/snapd.py b/subiquitycore/snapd.py index 2977dadc..38538a5c 100644 --- a/subiquitycore/snapd.py +++ b/subiquitycore/snapd.py @@ -118,6 +118,9 @@ class ResponseSet: return _FakeFileResponse(f) +update_marker_file = '.subiquity/run/subiquity/updating' + + class FakeSnapdConnection: def __init__(self, snap_data_dir, scale_factor): self.snap_data_dir = snap_data_dir @@ -130,6 +133,8 @@ class FakeSnapdConnection: def post(self, path, body, **args): if path == "v2/snaps/subiquity" and body['action'] == 'refresh': + # The post-refresh hook does this in the real world. + open(update_marker_file, 'w').close() return _FakeMemoryResponse({ "type": "async", "change": "7",