This is easy to see when listing Sleds. You get:
$ oxide api /hardware/sleds
{
"items": [
{
"description": "no description",
"id": "fb0f7546-4d46-40ca-9d56-cbb810684ca7",
"name": "no-name",
"service_address": "[fd00:1122:3344:101::1]:12345",
"time_created": "2022-06-23T22:24:05.468795Z",
"time_modified": "2022-06-23T22:24:05.468795Z"
}
],
"next_page": "eyJ2IjoidjEiLCJwYWdlX3N0YXJ0Ijp7InNvcnRfYnkiOiJpZF9hc2NlbmRpbmciLCJsYXN0X3NlZW4iOiJmYjBmNzU0Ni00ZDQ2LTQwY2EtOWQ1Ni1jYmI4MTA2ODRjYTcifX0="
}
Notice the "name" and "description" fields. Sleds have no name or description in the database -- it looks like we cons this up here:
|
fn identity(&self) -> external::IdentityMetadata { |
|
external::IdentityMetadata { |
|
id: self.id(), |
|
name: "no-name".parse().unwrap(), |
|
description: "no description".to_string(), |
|
time_created: self.time_created(), |
|
time_modified: self.time_modified(), |
|
} |
|
} |
This behavior seems confusing, especially since everywhere else Name appears, it's a unique identifier in its collection, but if you had a bunch of Sleds, I think they'd all have the same "name": "no-name".
I noticed this because I'm adding a view for SiloUser, which also have no name, and I'm using the same machinery, but it's particularly confusing for them to get "name": "no-name" since people might think that's a display name or something.
This is easy to see when listing Sleds. You get:
Notice the "name" and "description" fields. Sleds have no name or description in the database -- it looks like we cons this up here:
omicron/nexus/src/db/identity.rs
Lines 53 to 61 in c302789
This behavior seems confusing, especially since everywhere else
Nameappears, it's a unique identifier in its collection, but if you had a bunch of Sleds, I think they'd all have the same"name": "no-name".I noticed this because I'm adding a view for
SiloUser, which also have noname, and I'm using the same machinery, but it's particularly confusing for them to get"name": "no-name"since people might think that's a display name or something.