server: adjust x-make-view-request

With autoinstall, a controller that was not interactive would decline
outright to provide the response to GET queries, with the notion that
the controller needed to be skipped.  Limit this behavior to only when
`x-make-view-request: yes` is set, which let's the client be able to get
the real response, or the skip info, depending on need.
This commit is contained in:
Dan Bungert 2023-01-24 13:43:06 -07:00
parent 7945c96a39
commit bf6f09efa8
1 changed files with 7 additions and 6 deletions

View File

@ -432,12 +432,13 @@ class SubiquityServer(Application):
override_status = None override_status = None
controller = await controller_for_request(request) controller = await controller_for_request(request)
if isinstance(controller, SubiquityController): if isinstance(controller, SubiquityController):
if not controller.interactive(): if request.headers.get('x-make-view-request') == 'yes':
override_status = 'skip' if not controller.interactive():
elif (self.state == ApplicationState.NEEDS_CONFIRMATION and override_status = 'skip'
request.headers.get('x-make-view-request') == 'yes'): elif self.state == ApplicationState.NEEDS_CONFIRMATION:
if self.base_model.is_postinstall_only(controller.model_name): if self.base_model.is_postinstall_only(
override_status = 'confirm' controller.model_name):
override_status = 'confirm'
if override_status is not None: if override_status is not None:
resp = web.Response(headers={'x-status': override_status}) resp = web.Response(headers={'x-status': override_status})
else: else: