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

[VTAdmin] Topology Browser #11496

Merged
merged 20 commits into from
Oct 17, 2022
Merged

Conversation

notfelineit
Copy link
Contributor

@notfelineit notfelineit commented Oct 14, 2022

Description

This PR implements the topology browser in VTAdmin. In doing so, it implements VtctldServer.GetTopologyPath. Given a path, GetTopologyPath returns the file located there in the topology server.

Web Topology Browser

Only the root topology directories are loaded at first. This has the same behavior as the topology browser in vtctld2. "Nodes" can be expanded if they are not a "terminal" node (a file node).

GetTopologyPath(path) is only called when the Expand button is clicked, and only for that specific path.

The graph is then built recursively with only the paths that have been expanded so far.

VTAdmin example:
Oct-13-2022 16-23-29

Related Issue(s)

Checklist

  • "Backport me!" label has been added if this change should be backported
  • Tests were added or are not required
  • Documentation was added or is not required Will be added in vtadmin web documentation efforts later

Deployment Notes

N/A

rsajwani and others added 11 commits October 4, 2022 12:17
Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Florent Poinsard <[email protected]>

Signed-off-by: Rameez Sajwani <[email protected]>
Signed-off-by: Florent Poinsard <[email protected]>
Signed-off-by: notfelineit <[email protected]>
Signed-off-by: notfelineit <[email protected]>
Signed-off-by: notfelineit <[email protected]>
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Oct 14, 2022

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • If this is a change that users need to know about, please apply the release notes (needs details) label so that merging is blocked unless the summary release notes document is included.

If a new flag is being introduced:

  • Is it really necessary to add this flag?
  • Flag names should be clear and intuitive (as far as possible)
  • Help text should be descriptive.
  • Flag names should use dashes (-) as word separators rather than underscores (_).

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow should be required, the maintainer team should be notified.

Bug fixes

  • There should be at least one unit or end-to-end test.
  • The Pull Request description should include a link to an issue that describes the bug.

Non-trivial changes

  • There should be some code comments as to why things are implemented the way they are.

New/Existing features

  • Should be documented, either by modifying the existing documentation or creating new documentation.
  • New features should have a link to a feature request issue or an RFC that documents the use cases, corner cases and test cases.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • vtctl command output order should be stable and awk-able.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from VTop, if used there.

@notfelineit notfelineit added the Backport This is a backport label Oct 14, 2022
@notfelineit notfelineit marked this pull request as ready for review October 14, 2022 00:38
Copy link
Contributor

@ajm188 ajm188 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're also missing the cli command to correspond with the VtctldServer method

go/vt/vtadmin/api.go Show resolved Hide resolved
go/vt/vtctl/grpcvtctldserver/topo.go Outdated Show resolved Hide resolved
@notfelineit
Copy link
Contributor Author

notfelineit commented Oct 14, 2022

@ajm188 I wasn't sure if we wanted another cmd like the topocat one instead of this one for the command line client. I'll go ahead and add this one though.

Signed-off-by: notfelineit <[email protected]>
Signed-off-by: notfelineit <[email protected]>
…opoproto because of import cycle

Signed-off-by: notfelineit <[email protected]>
web/vtadmin/src/api/http.ts Outdated Show resolved Hide resolved
notfelineit and others added 4 commits October 14, 2022 12:16
Co-authored-by: David Graham <[email protected]>
Signed-off-by: Frances Thai <[email protected]>
Signed-off-by: notfelineit <[email protected]>
@deepthi deepthi mentioned this pull request Oct 14, 2022
100 tasks
@deepthi
Copy link
Member

deepthi commented Oct 17, 2022

Upgrade/downgrade test failures are because we upgraded golang on release-15 to 1.18.7.
Since this PR is only adding a new vtctld API and not changing existing ones, overriding.
If they fail on the release-15.0 after back port, we'll need to investigate.

@deepthi deepthi merged commit 62bb228 into vitessio:main Oct 17, 2022
@deepthi deepthi deleted the frances/topo-browser branch October 17, 2022 17:32
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Oct 17, 2022

I was unable to backport this Pull Request to the following branches: release-15.0.

@deepthi deepthi removed the Backport This is a backport label Oct 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants