krata: move api proto to /proto and version api

This commit is contained in:
Alex Zenla 2024-03-24 05:52:25 +00:00
parent cb6839b0f6
commit 655b8029cb
No known key found for this signature in database
GPG Key ID: 067B238899B51269
26 changed files with 41 additions and 36 deletions

View File

@ -4,11 +4,15 @@ fn main() -> Result<()> {
let mut config = prost_build::Config::new(); let mut config = prost_build::Config::new();
prost_reflect_build::Builder::new() prost_reflect_build::Builder::new()
.descriptor_pool("crate::DESCRIPTOR_POOL") .descriptor_pool("crate::DESCRIPTOR_POOL")
.configure(&mut config, &["proto/krata/control.proto"], &["proto/"])?; .configure(
&mut config,
&["../../proto/krata/v1/control.proto"],
&["../../proto/"],
)?;
tonic_build::configure().compile_with_config( tonic_build::configure().compile_with_config(
config, config,
&["proto/krata/control.proto"], &["../../proto/krata/v1/control.proto"],
&["proto/"], &["../../proto/"],
)?; )?;
Ok(()) Ok(())
} }

View File

@ -1 +0,0 @@
tonic::include_proto!("krata.common");

View File

@ -1 +0,0 @@
tonic::include_proto!("krata.control");

View File

@ -1,10 +1,9 @@
use once_cell::sync::Lazy; use once_cell::sync::Lazy;
use prost_reflect::DescriptorPool; use prost_reflect::DescriptorPool;
pub mod common;
pub mod control;
pub mod dial; pub mod dial;
pub mod launchcfg; pub mod launchcfg;
pub mod v1;
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
pub mod ethtool; pub mod ethtool;

View File

@ -0,0 +1 @@
tonic::include_proto!("krata.v1.common");

View File

@ -0,0 +1 @@
tonic::include_proto!("krata.v1.control");

View File

@ -0,0 +1,2 @@
pub mod common;
pub mod control;

View File

@ -1,6 +1,6 @@
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use krata::control::control_service_client::ControlServiceClient; use krata::v1::control::control_service_client::ControlServiceClient;
use tokio::select; use tokio::select;
use tonic::transport::Channel; use tonic::transport::Channel;

View File

@ -1,6 +1,6 @@
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use krata::{ use krata::v1::{
common::GuestStatus, common::GuestStatus,
control::{ control::{
control_service_client::ControlServiceClient, watch_events_reply::Event, control_service_client::ControlServiceClient, watch_events_reply::Event,

View File

@ -2,7 +2,7 @@ use std::collections::HashMap;
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use krata::{ use krata::v1::{
common::{ common::{
guest_image_spec::Image, GuestEnvVar, GuestImageSpec, GuestOciImageSpec, GuestSpec, guest_image_spec::Image, GuestEnvVar, GuestImageSpec, GuestOciImageSpec, GuestSpec,
GuestStatus, GuestStatus,

View File

@ -1,7 +1,7 @@
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};
use clap::{Parser, ValueEnum}; use clap::{Parser, ValueEnum};
use cli_tables::Table; use cli_tables::Table;
use krata::{ use krata::v1::{
common::{guest_image_spec::Image, Guest}, common::{guest_image_spec::Image, Guest},
control::{ control::{
control_service_client::ControlServiceClient, ListGuestsRequest, ResolveGuestRequest, control_service_client::ControlServiceClient, ListGuestsRequest, ResolveGuestRequest,

View File

@ -7,7 +7,7 @@ pub mod watch;
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};
use clap::{Parser, Subcommand}; use clap::{Parser, Subcommand};
use krata::control::{ use krata::v1::control::{
control_service_client::ControlServiceClient, ResolveGuestRequest, WatchEventsRequest, control_service_client::ControlServiceClient, ResolveGuestRequest, WatchEventsRequest,
}; };
use tonic::{transport::Channel, Request}; use tonic::{transport::Channel, Request};

View File

@ -1,6 +1,6 @@
use anyhow::Result; use anyhow::Result;
use clap::Parser; use clap::Parser;
use krata::control::{control_service_client::ControlServiceClient, ResolveGuestRequest}; use krata::v1::control::{control_service_client::ControlServiceClient, ResolveGuestRequest};
use tonic::{transport::Channel, Request}; use tonic::{transport::Channel, Request};

View File

@ -1,6 +1,6 @@
use anyhow::Result; use anyhow::Result;
use clap::{Parser, ValueEnum}; use clap::{Parser, ValueEnum};
use krata::{common::Guest, control::watch_events_reply::Event}; use krata::v1::{common::Guest, control::watch_events_reply::Event};
use prost_reflect::ReflectMessage; use prost_reflect::ReflectMessage;
use serde_json::Value; use serde_json::Value;

View File

@ -1,7 +1,7 @@
#[cfg(not(unix))] #[cfg(not(unix))]
use anyhow::anyhow; use anyhow::anyhow;
use anyhow::Result; use anyhow::Result;
use krata::{control::control_service_client::ControlServiceClient, dial::ControlDialAddress}; use krata::{dial::ControlDialAddress, v1::control::control_service_client::ControlServiceClient};
#[cfg(unix)] #[cfg(unix)]
use tokio::net::UnixStream; use tokio::net::UnixStream;
#[cfg(unix)] #[cfg(unix)]

View File

@ -4,7 +4,7 @@ use crossterm::{
terminal::{disable_raw_mode, enable_raw_mode, is_raw_mode_enabled}, terminal::{disable_raw_mode, enable_raw_mode, is_raw_mode_enabled},
tty::IsTty, tty::IsTty,
}; };
use krata::{ use krata::v1::{
common::GuestStatus, common::GuestStatus,
control::{watch_events_reply::Event, ConsoleDataReply, ConsoleDataRequest}, control::{watch_events_reply::Event, ConsoleDataReply, ConsoleDataRequest},
}; };

View File

@ -1,7 +1,7 @@
use std::sync::Arc; use std::sync::Arc;
use anyhow::Result; use anyhow::Result;
use krata::control::{watch_events_reply::Event, WatchEventsReply}; use krata::v1::control::{watch_events_reply::Event, WatchEventsReply};
use log::trace; use log::trace;
use tokio::{sync::broadcast, task::JoinHandle}; use tokio::{sync::broadcast, task::JoinHandle};
use tokio_stream::StreamExt; use tokio_stream::StreamExt;

View File

@ -1,7 +1,7 @@
use std::collections::HashMap; use std::collections::HashMap;
use anyhow::Result; use anyhow::Result;
use krata::common::{GuestState, GuestStatus}; use krata::v1::common::{GuestState, GuestStatus};
use prost_reflect::{DynamicMessage, ReflectMessage, Value}; use prost_reflect::{DynamicMessage, ReflectMessage, Value};
pub fn proto2dynamic(proto: impl ReflectMessage) -> Result<DynamicMessage> { pub fn proto2dynamic(proto: impl ReflectMessage) -> Result<DynamicMessage> {

View File

@ -2,7 +2,7 @@ use std::io::Result;
fn main() -> Result<()> { fn main() -> Result<()> {
prost_build::Config::new() prost_build::Config::new()
.extern_path(".krata.common", "::krata::common") .extern_path(".krata.v1.common", "::krata::v1::common")
.compile_protos(&["proto/kratad/db.proto"], &["proto/", "../krata/proto"])?; .compile_protos(&["proto/kratad/db.proto"], &["proto/", "../../proto"])?;
Ok(()) Ok(())
} }

View File

@ -2,9 +2,9 @@ syntax = "proto3";
package kratad.db; package kratad.db;
import "krata/common.proto"; import "krata/v1/common.proto";
message GuestEntry { message GuestEntry {
string id = 1; string id = 1;
krata.common.Guest guest = 2; krata.v1.common.Guest guest = 2;
} }

View File

@ -2,7 +2,7 @@ use std::{io, pin::Pin, str::FromStr};
use async_stream::try_stream; use async_stream::try_stream;
use futures::Stream; use futures::Stream;
use krata::{ use krata::v1::{
common::{Guest, GuestState, GuestStatus}, common::{Guest, GuestState, GuestStatus},
control::{ control::{
control_service_server::ControlService, ConsoleDataReply, ConsoleDataRequest, control_service_server::ControlService, ConsoleDataReply, ConsoleDataRequest,

View File

@ -5,7 +5,7 @@ use std::{
}; };
use anyhow::Result; use anyhow::Result;
use krata::common::{GuestExitInfo, GuestState, GuestStatus}; use krata::v1::common::{GuestExitInfo, GuestState, GuestStatus};
use log::error; use log::error;
use tokio::{ use tokio::{
select, select,
@ -22,7 +22,7 @@ use kratart::Runtime;
use crate::db::GuestStore; use crate::db::GuestStore;
pub type DaemonEvent = krata::control::watch_events_reply::Event; pub type DaemonEvent = krata::v1::control::watch_events_reply::Event;
const EVENT_CHANNEL_QUEUE_LEN: usize = 1000; const EVENT_CHANNEL_QUEUE_LEN: usize = 1000;
const EXIT_CODE_CHANNEL_QUEUE_LEN: usize = 1000; const EXIT_CODE_CHANNEL_QUEUE_LEN: usize = 1000;

View File

@ -4,7 +4,7 @@ use anyhow::Result;
use control::RuntimeControlService; use control::RuntimeControlService;
use db::GuestStore; use db::GuestStore;
use event::{DaemonEventContext, DaemonEventGenerator}; use event::{DaemonEventContext, DaemonEventGenerator};
use krata::{control::control_service_server::ControlServiceServer, dial::ControlDialAddress}; use krata::{dial::ControlDialAddress, v1::control::control_service_server::ControlServiceServer};
use kratart::Runtime; use kratart::Runtime;
use log::info; use log::info;
use reconcile::guest::GuestReconciler; use reconcile::guest::GuestReconciler;

View File

@ -1,7 +1,7 @@
use std::{collections::HashMap, time::Duration}; use std::{collections::HashMap, time::Duration};
use anyhow::{anyhow, Result}; use anyhow::{anyhow, Result};
use krata::{ use krata::v1::{
common::{ common::{
guest_image_spec::Image, Guest, GuestErrorInfo, GuestExitInfo, GuestNetworkState, guest_image_spec::Image, Guest, GuestErrorInfo, GuestExitInfo, GuestNetworkState,
GuestState, GuestStatus, GuestState, GuestStatus,

View File

@ -1,9 +1,9 @@
syntax = "proto3"; syntax = "proto3";
package krata.common; package krata.v1.common;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "dev.krata.proto.common"; option java_package = "dev.krata.proto.v1.common";
option java_outer_classname = "CommonProto"; option java_outer_classname = "CommonProto";
message Guest { message Guest {

View File

@ -1,12 +1,12 @@
syntax = "proto3"; syntax = "proto3";
package krata.control; package krata.v1.control;
option java_multiple_files = true; option java_multiple_files = true;
option java_package = "dev.krata.proto.control"; option java_package = "dev.krata.proto.v1.control";
option java_outer_classname = "ControlProto"; option java_outer_classname = "ControlProto";
import "krata/common.proto"; import "krata/v1/common.proto";
service ControlService { service ControlService {
rpc CreateGuest(CreateGuestRequest) returns (CreateGuestReply); rpc CreateGuest(CreateGuestRequest) returns (CreateGuestReply);
@ -18,7 +18,7 @@ service ControlService {
} }
message CreateGuestRequest { message CreateGuestRequest {
krata.common.GuestSpec spec = 1; krata.v1.common.GuestSpec spec = 1;
} }
message CreateGuestReply { message CreateGuestReply {
@ -36,13 +36,13 @@ message ResolveGuestRequest {
} }
message ResolveGuestReply { message ResolveGuestReply {
krata.common.Guest guest = 1; krata.v1.common.Guest guest = 1;
} }
message ListGuestsRequest {} message ListGuestsRequest {}
message ListGuestsReply { message ListGuestsReply {
repeated krata.common.Guest guests = 1; repeated krata.v1.common.Guest guests = 1;
} }
message ConsoleDataRequest { message ConsoleDataRequest {
@ -63,5 +63,5 @@ message WatchEventsReply {
} }
message GuestChangedEvent { message GuestChangedEvent {
krata.common.Guest guest = 1; krata.v1.common.Guest guest = 1;
} }