forked from github-starred/komodo
Merge branch 'next' of https://github.com/mbecker20/monitor into next
This commit is contained in:
@@ -53,6 +53,8 @@ enum WriteRequest {
|
||||
DeleteServer(DeleteServer),
|
||||
UpdateServer(UpdateServer),
|
||||
RenameServer(RenameServer),
|
||||
CreateNetwork(CreateNetwork),
|
||||
DeleteNetwork(DeleteNetwork),
|
||||
|
||||
// ==== DEPLOYMENT ====
|
||||
CreateDeployment(CreateDeployment),
|
||||
|
||||
@@ -10,9 +10,10 @@ use monitor_types::{
|
||||
requests::write::*,
|
||||
};
|
||||
use mungos::mongodb::bson::{doc, to_bson};
|
||||
use periphery_client::requests;
|
||||
use resolver_api::Resolve;
|
||||
|
||||
use crate::{auth::RequestUser, resource::StateResource, state::State};
|
||||
use crate::{auth::RequestUser, helpers::make_update, resource::StateResource, state::State};
|
||||
|
||||
#[async_trait]
|
||||
impl Resolve<CreateServer, RequestUser> for State {
|
||||
@@ -221,3 +222,65 @@ impl Resolve<RenameServer, RequestUser> for State {
|
||||
Ok(update)
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Resolve<CreateNetwork, RequestUser> for State {
|
||||
async fn resolve(
|
||||
&self,
|
||||
CreateNetwork { server_id, name }: CreateNetwork,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Update> {
|
||||
let server: Server = self
|
||||
.get_resource_check_permissions(&server_id, &user, PermissionLevel::Update)
|
||||
.await?;
|
||||
|
||||
let mut update = make_update(&server, Operation::CreateNetwork, &user);
|
||||
update.status = UpdateStatus::InProgress;
|
||||
update.id = self.add_update(update.clone()).await?;
|
||||
|
||||
match self
|
||||
.periphery_client(&server)
|
||||
.request(requests::CreateNetwork { name, driver: None })
|
||||
.await
|
||||
{
|
||||
Ok(log) => update.logs.push(log),
|
||||
Err(e) => update.push_error_log("create network", format!("{e:#?}")),
|
||||
};
|
||||
|
||||
update.finalize();
|
||||
self.update_update(update.clone()).await?;
|
||||
|
||||
Ok(update)
|
||||
}
|
||||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Resolve<DeleteNetwork, RequestUser> for State {
|
||||
async fn resolve(
|
||||
&self,
|
||||
DeleteNetwork { server_id, name }: DeleteNetwork,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Update> {
|
||||
let server: Server = self
|
||||
.get_resource_check_permissions(&server_id, &user, PermissionLevel::Update)
|
||||
.await?;
|
||||
|
||||
let mut update = make_update(&server, Operation::DeleteNetwork, &user);
|
||||
update.status = UpdateStatus::InProgress;
|
||||
update.id = self.add_update(update.clone()).await?;
|
||||
|
||||
match self
|
||||
.periphery_client(&server)
|
||||
.request(requests::DeleteNetwork { name })
|
||||
.await
|
||||
{
|
||||
Ok(log) => update.logs.push(log),
|
||||
Err(e) => update.push_error_log("delete network", format!("{e:#?}")),
|
||||
};
|
||||
|
||||
update.finalize();
|
||||
self.update_update(update.clone()).await?;
|
||||
|
||||
Ok(update)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +104,8 @@ export type WriteResponses = {
|
||||
DeleteServer: Types.Server;
|
||||
UpdateServer: Types.Server;
|
||||
RenameServer: Types.Update;
|
||||
CreateNetwork: Types.Update;
|
||||
DeleteNetwork: Types.Update;
|
||||
|
||||
// ==== DEPLOYMENT ====
|
||||
CreateDeployment: Types.Deployment;
|
||||
|
||||
@@ -512,6 +512,8 @@ export enum Operation {
|
||||
PruneImagesServer = "PruneImagesServer",
|
||||
PruneContainersServer = "PruneContainersServer",
|
||||
PruneNetworksServer = "PruneNetworksServer",
|
||||
CreateNetwork = "CreateNetwork",
|
||||
DeleteNetwork = "DeleteNetwork",
|
||||
CreateBuild = "CreateBuild",
|
||||
UpdateBuild = "UpdateBuild",
|
||||
DeleteBuild = "DeleteBuild",
|
||||
@@ -1238,12 +1240,12 @@ export interface RenameServer {
|
||||
}
|
||||
|
||||
export interface CreateNetwork {
|
||||
id: string;
|
||||
server_id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface DeleteNetwork {
|
||||
id: string;
|
||||
server_id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
@@ -1370,6 +1372,8 @@ export type WriteRequest =
|
||||
| { type: "DeleteServer", params: DeleteServer }
|
||||
| { type: "UpdateServer", params: UpdateServer }
|
||||
| { type: "RenameServer", params: RenameServer }
|
||||
| { type: "CreateNetwork", params: CreateNetwork }
|
||||
| { type: "DeleteNetwork", params: DeleteNetwork }
|
||||
| { type: "CreateDeployment", params: CreateDeployment }
|
||||
| { type: "CopyDeployment", params: CopyDeployment }
|
||||
| { type: "DeleteDeployment", params: DeleteDeployment }
|
||||
|
||||
@@ -274,6 +274,8 @@ pub enum Operation {
|
||||
PruneImagesServer,
|
||||
PruneContainersServer,
|
||||
PruneNetworksServer,
|
||||
CreateNetwork,
|
||||
DeleteNetwork,
|
||||
|
||||
// build
|
||||
CreateBuild,
|
||||
|
||||
@@ -55,7 +55,7 @@ pub struct RenameServer {
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Update)]
|
||||
pub struct CreateNetwork {
|
||||
pub id: String,
|
||||
pub server_id: String,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
@@ -65,6 +65,6 @@ pub struct CreateNetwork {
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||
#[response(Update)]
|
||||
pub struct DeleteNetwork {
|
||||
pub id: String,
|
||||
pub server_id: String,
|
||||
pub name: String,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user