Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Dispatcher UI #57

Open
itshady opened this issue Jan 18, 2024 · 6 comments
Open

Create Dispatcher UI #57

itshady opened this issue Jan 18, 2024 · 6 comments
Assignees
Milestone

Comments

@itshady
Copy link
Collaborator

itshady commented Jan 18, 2024

Create the actual UI that goes with the dispatcher (perhaps a react website, but tech stack up for discussion)

@itshady itshady added this to the UI Dispatcher milestone Jan 18, 2024
@TylerStAmour
Copy link
Member

React + Vitejs + Typescript + TailwindCSS is a personal favorite if you want to check that out

@itshady
Copy link
Collaborator Author

itshady commented Jan 18, 2024

@TylerStAmour thanks ty, we will prob go with that

@itshady
Copy link
Collaborator Author

itshady commented Jan 25, 2024

Functionality we need:

  • List all the sequences (maybe in a dropdown idk?)
  • Allow user to choose a sequence
  • Allow user to add metadata to the start signal (its map[string]string in the go side)
  • Let user cancel any test that's running or in queue (later when we add login, we can associate a user to tests and only let them cancel those)
  • Let user send recover from fatal signal (its a single button)
  • When Orchestrator is in Fatal Error mode, remove functionalities to start new tests and only let user hit recover.
  • Display current Orchestrator Status
    • The status while its running tests (states) (StatusSignal)
    • The status after cancelling or finishing a Sequence (ResultsSignal)

Here is what it all looks like on the Go side:

type TestId = uuid.UUID

type StatusSignal struct {
	// State is the current state of the Orchestrator
	OrchestratorState State
	// TestId is the current running test. It is only valid if State is Running
	TestId TestId
	// Progress is the current Progress of the flow.Sequencer.
	Progress flow.Progress
	// QueueLength is the current length of the test queue.
	QueueLength int
	// FatalError is the current fatal error. It is only valid if state is FatalError
	FatalError error
}

// StartSignal is the signal that is sent to the orchestrator from the dispatcher to start a test
type StartSignal struct {
	TestId   TestId
	Seq      flow.Sequence
	Metadata map[string]string
}

type ResultsSignal struct {
	TestId    TestId
	IsPassing bool
	// Should be of type Tag, will replace this later
	FailedTags []flow.Tag
	TestErrors []error
}

type CancelTestSignal struct {
	TestId TestId
}

@samparent97
Copy link
Contributor

Hey @Nuravar, we should try to get some PRs merged for this. I dont think we've merged anything yet and progress has been made on the repo so it might be quite the task.

@Nuravar
Copy link

Nuravar commented Aug 17, 2024

Sounds good, I will get started on it tomorrow 👍.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants