Page MenuHomeElementl

Add loading status to GrapheneRepositoryLocation / repository location list.
ClosedPublic

Authored by dgibson on May 17 2021, 3:27 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Jun 19, 9:04 AM
Unknown Object (File)
Thu, Jun 16, 7:19 AM
Unknown Object (File)
Mon, May 30, 1:26 PM
Subscribers
None

Details

Summary

This adds the graphql and dagit UI components to allow dagit to indicate that locations are in the process of loading, but aren't ready yet. We could use this in cases where reloading a repository location takes a really long time and we don't want to block Dagit on it.

This gets a little bit tricky, b/c you can be loading/updating while still serving the soon-to-be-replaced location or error to queries that are coming in. So the existing types (location and error) can a 'loadStatus' - and then there's a separate RepositoryLocationLoading type that can be used during the *initial* load of a new location, when there's no repository location or error yet to display. In the former case we say "Updating.." and in the latter we say "Loading..."

Open to feedback and alternatives on this.

Test Plan

Test reloading a repository location and workspace, behavior unchanged
Test in a branch that actually uses the UPDATING state, locations transition into Loading... state when being newly created and Updating... after updating a location.

Diff Detail

Repository
R1 dagster
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Harbormaster returned this revision to the author for changes because remote builds failed.May 17 2021, 3:47 PM
Harbormaster failed remote builds in B30628: Diff 37660!
dgibson edited the summary of this revision. (Show Details)
dgibson edited the test plan for this revision. (Show Details)
dgibson added reviewers: sashank, dish.

up

Harbormaster returned this revision to the author for changes because remote builds failed.May 17 2021, 8:09 PM
Harbormaster failed remote builds in B30668: Diff 37710!
js_modules/dagit/packages/core/src/graphql/schema.graphql
64

So a RepositoryLocationLoading object can have status: LOADED? At that point is it just a RepositoryLocation instead of a RepositoryLocationLoading?

js_modules/dagit/packages/core/src/workspace/RepositoryLocationsList.tsx
28

I thought we were linting on this, but I guess not. I'll add that.

81

The second parameter has a default already, so you should be able to skip it.

js_modules/dagit/packages/core/src/graphql/schema.graphql
64

it's always LOADING. I agree that's confusing though. the idea was to be able to always check .loadStatus on the items in the RepositoryLocationConnection, but I can also handle a result type of RepositoryLocationLoading differently

remove loadStatus from RepositoryLocationLoading

This revision is now accepted and ready to land.May 18 2021, 6:10 PM
This revision was landed with ongoing or failed builds.May 18 2021, 8:16 PM
This revision was automatically updated to reflect the committed changes.