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

Dropshot-based websocket endpoint & Add Progenitor-based client #206

Merged
merged 2 commits into from Oct 6, 2022

Conversation

lifning
Copy link

@lifning lifning commented Sep 1, 2022

Use Dropshot 'channel' for serial console endpoint

This moves the websocket-related boilerplate into the code generated by Dropshot's #[channel] annotation macro.
(rel: oxidecomputer/dropshot#403 )

Generate an API client with Progenitor

This validates and/or generates an OpenAPI schema in a test, as done in omicron (with expectorate).
The generated client is currently opt-in via a feature flag, so as to mitigate breakages while migrating our other codebases from the handwritten client code.
(rel: oxidecomputer/progenitor#183 )

Comment on lines 12 to 13
pub mod generated;
pub mod handmade;
Copy link
Collaborator

Choose a reason for hiding this comment

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

From a docs standpoint, do we want the modules themselves to be visible, or simply exposed via the pub use below?

Copy link
Author

Choose a reason for hiding this comment

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

Added some more clarifying documentation around it and only made handmade pub when it's not globally pub use'd

@lifning lifning force-pushed the dropsock branch 2 times, most recently from 3fc635c to aed73b1 Compare September 22, 2022 02:48
lifning pushed a commit to lifning/omicron that referenced this pull request Sep 30, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Sep 30, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
Copy link
Contributor

@luqmana luqmana left a comment

Choose a reason for hiding this comment

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

Thanks lif! The generated vs handmade stuff is annoying but the sooner we get this landed the sooner we can migrate the old users.

bin/propolis-cli/src/main.rs Outdated Show resolved Hide resolved
This moves the websocket-related boilerplate into the code
generated by Dropshot's `#[channel]` annotation macro.

(rel: oxidecomputer/dropshot#403 )
- Validate/generate an OpenAPI schema in a test, as done in omicron
- Provide an (optional, for now) codegen'd client from the OpenAPI
@lifning lifning merged commit da3cfc2 into oxidecomputer:master Oct 6, 2022
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 8, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 8, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 8, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 8, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 8, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 18, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 18, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 20, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 20, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 20, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 20, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 22, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 25, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 26, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning pushed a commit to lifning/omicron that referenced this pull request Oct 26, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)
lifning added a commit to oxidecomputer/omicron that referenced this pull request Oct 27, 2022
- Includes updates to progenitor and reqwest 0.11.12 for client support
  for Dropshot websocket channels.
- Literally only passes through the websocket, does not yet include the
  serial output buffering done by its parent GET endpoint.
- Adds support for ensuring a websocket endpoint gets upgraded in nexus
  integration tests (i.e. test_unauthorized).
- Begins migrating sled-agent's propolis-client usage to the new
  progenitor-generated version (oxidecomputer/propolis#206)

Co-authored-by: lif <>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants