Skip to content

Commit 38c1a09

Browse files
committed
this is a mess
1 parent fcd8847 commit 38c1a09

File tree

12 files changed

+56
-78
lines changed

12 files changed

+56
-78
lines changed

common/src/api/external/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -752,10 +752,10 @@ pub struct InstanceRuntimeState {
752752
pub time_run_state_updated: DateTime<Utc>,
753753
}
754754

755-
impl From<crate::api::internal::nexus::InstanceRuntimeState>
755+
impl From<crate::api::internal::common::InstanceRuntimeState>
756756
for InstanceRuntimeState
757757
{
758-
fn from(state: crate::api::internal::nexus::InstanceRuntimeState) -> Self {
758+
fn from(state: crate::api::internal::common::InstanceRuntimeState) -> Self {
759759
InstanceRuntimeState {
760760
run_state: state.run_state,
761761
time_run_state_updated: state.time_updated,

common/src/api/internal/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//! Internally facing APIs.
22
33
pub mod bootstrap_agent;
4+
pub mod common;
45
pub mod nexus;
56
pub mod sled_agent;

common/src/api/internal/nexus.rs

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,11 @@
11
//! APIs exposed by Nexus.
22
3-
use crate::api::external::{
4-
ByteCount, DiskState, Generation, InstanceCpuCount, InstanceState,
5-
};
6-
use chrono::{DateTime, Utc};
73
use schemars::JsonSchema;
84
use serde::{Deserialize, Serialize};
95
use std::net::SocketAddr;
106
use std::time::Duration;
117
use uuid::Uuid;
128

13-
/// Runtime state of the Disk, which includes its attach state and some minimal
14-
/// metadata
15-
#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema)]
16-
pub struct DiskRuntimeState {
17-
/// runtime state of the Disk
18-
pub disk_state: DiskState,
19-
/// generation number for this state
20-
pub gen: Generation,
21-
/// timestamp for this information
22-
pub time_updated: DateTime<Utc>,
23-
}
24-
25-
/// Runtime state of the Instance, including the actual running state and minimal
26-
/// metadata
27-
///
28-
/// This state is owned by the sled agent running that Instance.
29-
#[derive(Clone, Debug, Deserialize, Serialize, JsonSchema)]
30-
pub struct InstanceRuntimeState {
31-
/// runtime state of the Instance
32-
pub run_state: InstanceState,
33-
/// which sled is running this Instance
34-
pub sled_uuid: Uuid,
35-
/// number of CPUs allocated for this Instance
36-
pub ncpus: InstanceCpuCount,
37-
/// memory allocated for this Instance
38-
pub memory: ByteCount,
39-
/// RFC1035-compliant hostname for the Instance.
40-
// TODO-cleanup different type?
41-
pub hostname: String,
42-
/// generation number for this state
43-
pub gen: Generation,
44-
/// timestamp for this information
45-
pub time_updated: DateTime<Utc>,
46-
}
47-
489
/// Sent by a sled agent on startup to Nexus to request further instruction
4910
#[derive(Serialize, Deserialize, JsonSchema)]
5011
pub struct SledAgentStartupInfo {

common/src/api/internal/sled_agent.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use uuid::Uuid;
1111
pub struct DiskEnsureBody {
1212
/// Last runtime state of the Disk known to Nexus (used if the agent has
1313
/// never seen this Disk before).
14-
pub initial_runtime: internal::nexus::DiskRuntimeState,
14+
pub initial_runtime: internal::common::DiskRuntimeState,
1515
/// requested runtime state of the Disk
1616
pub target: DiskStateRequested,
1717
}
@@ -42,7 +42,7 @@ impl DiskStateRequested {
4242
/// Describes the instance hardware.
4343
#[derive(Clone, Debug, Serialize, Deserialize, JsonSchema)]
4444
pub struct InstanceHardware {
45-
pub runtime: internal::nexus::InstanceRuntimeState,
45+
pub runtime: internal::common::InstanceRuntimeState,
4646
pub nics: Vec<external::NetworkInterface>,
4747
}
4848

common/src/nexus_client.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,22 @@ impl From<types::InstanceState> for crate::api::external::InstanceState {
6464
}
6565
}
6666

67+
impl From<types::InstanceRuntimeState>
68+
for crate::api::internal::common::InstanceRuntimeState
69+
{
70+
fn from(_: types::InstanceRuntimeState) -> Self {
71+
todo!()
72+
}
73+
}
74+
75+
impl From<types::DiskRuntimeState>
76+
for crate::api::internal::common::DiskRuntimeState
77+
{
78+
fn from(_: types::DiskRuntimeState) -> Self {
79+
todo!()
80+
}
81+
}
82+
6783
/*
6884
/** Client for a nexus instance */
6985
pub struct Client {

nexus/src/http_entrypoints_internal.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ use dropshot::HttpResponseUpdatedNoContent;
1111
use dropshot::Path;
1212
use dropshot::RequestContext;
1313
use dropshot::TypedBody;
14-
use omicron_common::api::internal::nexus::DiskRuntimeState;
15-
use omicron_common::api::internal::nexus::InstanceRuntimeState;
14+
use omicron_common::api::internal::common::DiskRuntimeState;
15+
use omicron_common::api::internal::common::InstanceRuntimeState;
1616
use omicron_common::api::internal::nexus::OximeterInfo;
1717
use omicron_common::api::internal::nexus::ProducerEndpoint;
1818
use omicron_common::api::internal::nexus::SledAgentStartupInfo;

sled-agent/src/common/disk.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
use chrono::Utc;
44
use omicron_common::api::external::DiskState;
55
use omicron_common::api::external::Error;
6+
use omicron_common::api::internal::common::DiskRuntimeState;
67
use omicron_common::api::internal::sled_agent::DiskStateRequested;
7-
use omicron_common::nexus_client::types::DiskRuntimeState;
88
use propolis_client::api::DiskAttachmentState as PropolisDiskState;
99
use uuid::Uuid;
1010

sled-agent/src/common/instance.rs

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22
33
use chrono::Utc;
44
use omicron_common::api::external::Error;
5-
//use omicron_common::api::external::InstanceState;
6-
//use omicron_common::api::internal::nexus::InstanceRuntimeState;
5+
use omicron_common::api::external::InstanceState;
6+
use omicron_common::api::internal::common::InstanceRuntimeState;
77
use omicron_common::api::internal::sled_agent::InstanceRuntimeStateRequested;
88
use omicron_common::api::internal::sled_agent::InstanceStateRequested;
9-
use omicron_common::nexus_client::types::InstanceRuntimeState;
10-
use omicron_common::nexus_client::types::InstanceState;
11-
use omicron_common::nexus_client::GenNext;
12-
use omicron_common::nexus_client::InstanceStateExt;
139
use propolis_client::api::InstanceState as PropolisInstanceState;
1410

1511
/// Action to be taken on behalf of state transition.
@@ -262,24 +258,25 @@ impl InstanceStates {
262258
mod test {
263259
use super::{Action, InstanceStates};
264260
use chrono::Utc;
265-
use omicron_common::nexus_client::types::InstanceState as State;
266-
use omicron_common::{
267-
api::{
268-
external::ByteCount,
269-
internal::sled_agent::InstanceStateRequested as Requested,
270-
},
271-
nexus_client::types,
261+
use omicron_common::api::external::{
262+
Generation, InstanceCpuCount, InstanceState,
263+
};
264+
use omicron_common::api::internal::common::InstanceRuntimeState;
265+
use omicron_common::api::{
266+
external::ByteCount,
267+
internal::sled_agent::InstanceStateRequested as Requested,
272268
};
269+
use omicron_common::nexus_client::types::InstanceState as State;
273270
use propolis_client::api::InstanceState as Observed;
274271

275272
fn make_instance() -> InstanceStates {
276-
InstanceStates::new(types::InstanceRuntimeState {
277-
run_state: types::InstanceState::Creating,
273+
InstanceStates::new(InstanceRuntimeState {
274+
run_state: InstanceState::Creating,
278275
sled_uuid: uuid::Uuid::new_v4(),
279-
ncpus: types::InstanceCpuCount(2),
276+
ncpus: InstanceCpuCount(2),
280277
memory: ByteCount::from_mebibytes_u32(512).into(),
281278
hostname: "myvm".to_string(),
282-
gen: types::Generation(0),
279+
gen: Generation::new(),
283280
time_updated: Utc::now(),
284281
})
285282
}

sled-agent/src/http_entrypoints.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ use dropshot::HttpResponseOk;
77
use dropshot::Path;
88
use dropshot::RequestContext;
99
use dropshot::TypedBody;
10-
use omicron_common::api::internal::nexus::DiskRuntimeState;
11-
use omicron_common::api::internal::nexus::InstanceRuntimeState;
10+
use omicron_common::api::internal::common::DiskRuntimeState;
11+
use omicron_common::api::internal::common::InstanceRuntimeState;
1212
use omicron_common::api::internal::sled_agent::DiskEnsureBody;
1313
use omicron_common::api::internal::sled_agent::InstanceEnsureBody;
1414
use schemars::JsonSchema;

sled-agent/src/sim/collection.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,8 @@ mod test {
342342
use omicron_common::api::external::Generation;
343343
use omicron_common::api::external::InstanceCpuCount;
344344
use omicron_common::api::external::InstanceState;
345-
use omicron_common::api::internal::nexus::DiskRuntimeState;
346-
use omicron_common::api::internal::nexus::InstanceRuntimeState;
345+
use omicron_common::api::internal::common::DiskRuntimeState;
346+
use omicron_common::api::internal::common::InstanceRuntimeState;
347347
use omicron_common::api::internal::sled_agent::DiskStateRequested;
348348
use omicron_common::api::internal::sled_agent::InstanceRuntimeStateRequested;
349349
use omicron_common::api::internal::sled_agent::InstanceStateRequested;

0 commit comments

Comments
 (0)