Skip to content

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

Merged
lifning merged 2 commits into
oxidecomputer:masterfrom
lifning:dropsock
Oct 6, 2022
Merged

Dropshot-based websocket endpoint & Add Progenitor-based client#206
lifning merged 2 commits into
oxidecomputer:masterfrom
lifning:dropsock

Conversation

@lifning

@lifning lifning commented Sep 1, 2022

Copy link
Copy Markdown
Contributor

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 thread lib/propolis-client/src/lib.rs Outdated
Comment on lines +12 to +13
pub mod generated;
pub mod handmade;

Copy link
Copy Markdown
Contributor

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
Copy Markdown
Contributor 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)

@luqmana luqmana left a comment

Copy link
Copy Markdown
Contributor

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.

Comment thread bin/propolis-cli/src/main.rs Outdated
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.

3 participants