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),
|
DeleteServer(DeleteServer),
|
||||||
UpdateServer(UpdateServer),
|
UpdateServer(UpdateServer),
|
||||||
RenameServer(RenameServer),
|
RenameServer(RenameServer),
|
||||||
|
CreateNetwork(CreateNetwork),
|
||||||
|
DeleteNetwork(DeleteNetwork),
|
||||||
|
|
||||||
// ==== DEPLOYMENT ====
|
// ==== DEPLOYMENT ====
|
||||||
CreateDeployment(CreateDeployment),
|
CreateDeployment(CreateDeployment),
|
||||||
|
|||||||
@@ -10,9 +10,10 @@ use monitor_types::{
|
|||||||
requests::write::*,
|
requests::write::*,
|
||||||
};
|
};
|
||||||
use mungos::mongodb::bson::{doc, to_bson};
|
use mungos::mongodb::bson::{doc, to_bson};
|
||||||
|
use periphery_client::requests;
|
||||||
use resolver_api::Resolve;
|
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]
|
#[async_trait]
|
||||||
impl Resolve<CreateServer, RequestUser> for State {
|
impl Resolve<CreateServer, RequestUser> for State {
|
||||||
@@ -221,3 +222,65 @@ impl Resolve<RenameServer, RequestUser> for State {
|
|||||||
Ok(update)
|
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;
|
DeleteServer: Types.Server;
|
||||||
UpdateServer: Types.Server;
|
UpdateServer: Types.Server;
|
||||||
RenameServer: Types.Update;
|
RenameServer: Types.Update;
|
||||||
|
CreateNetwork: Types.Update;
|
||||||
|
DeleteNetwork: Types.Update;
|
||||||
|
|
||||||
// ==== DEPLOYMENT ====
|
// ==== DEPLOYMENT ====
|
||||||
CreateDeployment: Types.Deployment;
|
CreateDeployment: Types.Deployment;
|
||||||
|
|||||||
@@ -512,6 +512,8 @@ export enum Operation {
|
|||||||
PruneImagesServer = "PruneImagesServer",
|
PruneImagesServer = "PruneImagesServer",
|
||||||
PruneContainersServer = "PruneContainersServer",
|
PruneContainersServer = "PruneContainersServer",
|
||||||
PruneNetworksServer = "PruneNetworksServer",
|
PruneNetworksServer = "PruneNetworksServer",
|
||||||
|
CreateNetwork = "CreateNetwork",
|
||||||
|
DeleteNetwork = "DeleteNetwork",
|
||||||
CreateBuild = "CreateBuild",
|
CreateBuild = "CreateBuild",
|
||||||
UpdateBuild = "UpdateBuild",
|
UpdateBuild = "UpdateBuild",
|
||||||
DeleteBuild = "DeleteBuild",
|
DeleteBuild = "DeleteBuild",
|
||||||
@@ -1238,12 +1240,12 @@ export interface RenameServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface CreateNetwork {
|
export interface CreateNetwork {
|
||||||
id: string;
|
server_id: string;
|
||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DeleteNetwork {
|
export interface DeleteNetwork {
|
||||||
id: string;
|
server_id: string;
|
||||||
name: string;
|
name: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1370,6 +1372,8 @@ export type WriteRequest =
|
|||||||
| { type: "DeleteServer", params: DeleteServer }
|
| { type: "DeleteServer", params: DeleteServer }
|
||||||
| { type: "UpdateServer", params: UpdateServer }
|
| { type: "UpdateServer", params: UpdateServer }
|
||||||
| { type: "RenameServer", params: RenameServer }
|
| { type: "RenameServer", params: RenameServer }
|
||||||
|
| { type: "CreateNetwork", params: CreateNetwork }
|
||||||
|
| { type: "DeleteNetwork", params: DeleteNetwork }
|
||||||
| { type: "CreateDeployment", params: CreateDeployment }
|
| { type: "CreateDeployment", params: CreateDeployment }
|
||||||
| { type: "CopyDeployment", params: CopyDeployment }
|
| { type: "CopyDeployment", params: CopyDeployment }
|
||||||
| { type: "DeleteDeployment", params: DeleteDeployment }
|
| { type: "DeleteDeployment", params: DeleteDeployment }
|
||||||
|
|||||||
@@ -274,6 +274,8 @@ pub enum Operation {
|
|||||||
PruneImagesServer,
|
PruneImagesServer,
|
||||||
PruneContainersServer,
|
PruneContainersServer,
|
||||||
PruneNetworksServer,
|
PruneNetworksServer,
|
||||||
|
CreateNetwork,
|
||||||
|
DeleteNetwork,
|
||||||
|
|
||||||
// build
|
// build
|
||||||
CreateBuild,
|
CreateBuild,
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ pub struct RenameServer {
|
|||||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||||
#[response(Update)]
|
#[response(Update)]
|
||||||
pub struct CreateNetwork {
|
pub struct CreateNetwork {
|
||||||
pub id: String,
|
pub server_id: String,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,6 +65,6 @@ pub struct CreateNetwork {
|
|||||||
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
#[derive(Serialize, Deserialize, Debug, Clone, Request)]
|
||||||
#[response(Update)]
|
#[response(Update)]
|
||||||
pub struct DeleteNetwork {
|
pub struct DeleteNetwork {
|
||||||
pub id: String,
|
pub server_id: String,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user