Skip to content

Conversation

@smklein
Copy link
Contributor

@smklein smklein commented Apr 19, 2022

Old Behavior

For most endpoints, we'd use the format:

http://<IP ADDRESS>/instances/<INSTANCE UUID>/<rest of the path, maybe>

For many endpoints, this UUID would be redundant with values stored in properties struct, and a somewhat silly check would validate this. This path format added little value, other than requiring clients to supply a redundant value.

Why is the UUID redundant? Propolis' server only supports a single instance anyway, so the server address should be a sufficient factor for distinguishing instances.

New Behavior

Don't bother supplying the instance UUID. Simplify a lot of "name -> UUID" pathways where this is no longer necessary.

Comment on lines -579 to -583
if path_params.into_inner().instance_id != context.properties.name {
return Err(HttpError::for_internal_error(
"Instance name mismatch (path did not match struct)".to_string(),
));
}
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This use of the hostname was somewhat odd - basically, we used the client-provided hostname here, for a path which should only be accessible to the control plane.

I get why we used it - it acted as a convenient way to get the redundant UUID - but we should probably avoid referring to the instance by hostname for internal purposes, as that's could theoretically change.

Regardless, that problem no longer exists after this PR.

Copy link
Contributor Author

@smklein smklein Apr 19, 2022

Choose a reason for hiding this comment

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

Side-note, I was definitely confused by seeing path = ... {instance_id}, when the variable is actually meant to be a string-based hostname.

@smklein
Copy link
Contributor Author

smklein commented Apr 19, 2022

Tested in Omicron by: oxidecomputer/omicron#950

@smklein smklein merged commit abd372d into master Apr 19, 2022
@smklein smklein deleted the less-ids-in-paths branch April 19, 2022 22:08
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.

4 participants