tree: c1d6d21104c828c5e364ce04146295d1316b18c5 [path history] [tgz]
  1. grpc_server/
  2. poc/
  3. ui/
  4. README.md
  5. sdk_server.py
contrib/sdk_server/README.md

Cros SDK Server

About

The SDK Server provides a user interface for many Build API, cros, and repo commands with the overall goal of managing a single chroot, intended to make the average ChromeOS developer workflow simpler.

Running the SDK Server

To run the SDK server simply run the sdk_server symlink found in chromite/contrib/sdk_server. This will start both the grpc server and the web server. To close the server simply kill the process using CTRL+C. In the future we’ll add functionality for the server to be run as a cros command.

Features

  • Chroot Information, including

    • Date chroot was created
    • Date last updated
    • Path to Chroot
    • Chroot Version
  • Menus for calling a few Build API endpoints which support the options defined in their request protos. These endpoints include:

    • SdkService/Update
    • SdkService/Create
    • SdkService/Delete
    • ImageService/Create
  • A “Build Packages” menu, which works by running the three Build API endpoints:

    • SysrootService/Create - through build packages
    • SysrootService/InstallToolchain - through build packages
    • SysrootService/InstallPackages - through build packages
  • Endpoints that are listed by the MethodService/Get endpoint are callable by writing custom protos in JSON format (via the “Custom” menu)

  • All above features produce logs that can be toggled and viewed on the dashboard. A history is stored which can be cleared.

  • Support for cros_workon commands, including

    • Listing all working packages per board
    • Options to build individual packages
    • A button to stop workon on any package
    • Info modals (which display the results of cros workon info) per package
    • An “Add Packages” menu to begin working on any package
  • Repo interactions, including

    • A panel displaying the output from repo status (relevant files and their
    • statuses in the staging area, working directory, etc.)
    • A repo sync button

Future Work

  • An integrated bug reporting tool, allowing users to easily upload bugs with stored log information via a Buganizer API
  • Ensure that running commands are logged if the server is interrupted
  • Modify to use gRPC web, rather than route everything through Python/Flask
  • Implementing dedicated cros flash/deploy endpoints
  • Expand functionality to handle multiple chroots/branching, in alignment with the goals of go/cros-sdk-server