forked from github-starred/komodo
Merge branch 'next' of https://github.com/mbecker20/monitor into next
This commit is contained in:
@@ -12,6 +12,7 @@ use monitor_types::{
|
||||
},
|
||||
monitor_timestamp,
|
||||
};
|
||||
use mungos::mongodb::bson::{doc, to_bson};
|
||||
use periphery_client::{requests, PeripheryClient};
|
||||
use rand::{thread_rng, Rng};
|
||||
|
||||
@@ -164,6 +165,27 @@ impl State {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn remove_from_recently_viewed(
|
||||
&self,
|
||||
resource: impl Into<ResourceTarget>,
|
||||
) -> anyhow::Result<()> {
|
||||
let resource: ResourceTarget = resource.into();
|
||||
self.db
|
||||
.users
|
||||
.update_many(
|
||||
doc! {},
|
||||
doc! {
|
||||
"$pull": {
|
||||
"recently_viewed":
|
||||
to_bson(&resource).context("failed to convert resource to bson")?
|
||||
}
|
||||
},
|
||||
)
|
||||
.await
|
||||
.context("failed to remove resource from users recently viewed")?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
pub fn periphery_client(&self, server: &Server) -> PeripheryClient {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use anyhow::Context;
|
||||
use async_trait::async_trait;
|
||||
use monitor_types::{
|
||||
entities::{alerter::Alerter, update::ResourceTarget, Operation, PermissionLevel},
|
||||
entities::{alerter::Alerter, Operation, PermissionLevel},
|
||||
monitor_timestamp,
|
||||
requests::write::{CopyAlerter, CreateAlerter, DeleteAlerter, UpdateAlerter},
|
||||
};
|
||||
@@ -124,11 +124,7 @@ impl Resolve<DeleteAlerter, RequestUser> for State {
|
||||
.get_resource_check_permissions(&id, &user, PermissionLevel::Update)
|
||||
.await?;
|
||||
|
||||
let mut update = make_update(
|
||||
ResourceTarget::Alerter(id.clone()),
|
||||
Operation::DeleteAlerter,
|
||||
&user,
|
||||
);
|
||||
let mut update = make_update(&alerter, Operation::DeleteAlerter, &user);
|
||||
|
||||
self.db
|
||||
.alerters
|
||||
@@ -145,6 +141,8 @@ impl Resolve<DeleteAlerter, RequestUser> for State {
|
||||
|
||||
self.add_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&alerter).await?;
|
||||
|
||||
Ok(alerter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ use monitor_types::{
|
||||
Operation, PermissionLevel,
|
||||
},
|
||||
monitor_timestamp,
|
||||
requests::write::*,
|
||||
requests::write::*, to_monitor_name,
|
||||
};
|
||||
use mungos::mongodb::bson::{doc, to_bson};
|
||||
use resolver_api::Resolve;
|
||||
@@ -28,6 +28,7 @@ impl Resolve<CreateBuild, RequestUser> for State {
|
||||
CreateBuild { name, config }: CreateBuild,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Build> {
|
||||
let name = to_monitor_name(&name);
|
||||
if let Some(builder) = &config.builder {
|
||||
match builder {
|
||||
BuildBuilderConfig::Server { server_id } => {
|
||||
@@ -195,6 +196,8 @@ impl Resolve<DeleteBuild, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&build).await?;
|
||||
|
||||
Ok(build)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ impl Resolve<DeleteBuilder, RequestUser> for State {
|
||||
.context("failed to delete builder from database")?;
|
||||
|
||||
let mut update = Update {
|
||||
target: ResourceTarget::Builder(id.clone()),
|
||||
target: (&builder).into(),
|
||||
operation: Operation::DeleteBuilder,
|
||||
start_ts,
|
||||
operator: user.id.clone(),
|
||||
@@ -167,6 +167,8 @@ impl Resolve<DeleteBuilder, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.add_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&builder).await?;
|
||||
|
||||
Ok(builder)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ impl Resolve<CreateDeployment, RequestUser> for State {
|
||||
CreateDeployment { name, config }: CreateDeployment,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Deployment> {
|
||||
let name = to_monitor_name(&name);
|
||||
if let Some(server_id) = &config.server_id {
|
||||
if !server_id.is_empty() {
|
||||
let _: Server = self.get_resource_check_permissions(server_id, &user, PermissionLevel::Update)
|
||||
@@ -252,6 +253,8 @@ impl Resolve<DeleteDeployment, RequestUser> for State {
|
||||
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&deployment).await?;
|
||||
|
||||
Ok(deployment)
|
||||
};
|
||||
|
||||
@@ -381,6 +384,7 @@ impl Resolve<RenameDeployment, RequestUser> for State {
|
||||
RenameDeployment { id, name }: RenameDeployment,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Update> {
|
||||
let name = to_monitor_name(&name);
|
||||
if self.action_states.deployment.busy(&id).await {
|
||||
return Err(anyhow!("deployment busy"));
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ use monitor_types::{
|
||||
},
|
||||
monitor_timestamp,
|
||||
requests::{execute, write::*},
|
||||
to_monitor_name,
|
||||
};
|
||||
use mungos::mongodb::bson::{doc, to_bson};
|
||||
use periphery_client::requests;
|
||||
@@ -23,6 +24,7 @@ impl Resolve<CreateRepo, RequestUser> for State {
|
||||
CreateRepo { name, config }: CreateRepo,
|
||||
user: RequestUser,
|
||||
) -> anyhow::Result<Repo> {
|
||||
let name = to_monitor_name(&name);
|
||||
if let Some(server_id) = &config.server_id {
|
||||
if !server_id.is_empty() {
|
||||
let _: Server = self.get_resource_check_permissions(
|
||||
@@ -216,6 +218,8 @@ impl Resolve<DeleteRepo, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&repo).await?;
|
||||
|
||||
Ok(repo)
|
||||
};
|
||||
|
||||
|
||||
@@ -131,6 +131,8 @@ impl Resolve<DeleteServer, RequestUser> for State {
|
||||
|
||||
self.server_status_cache.remove(&id).await;
|
||||
|
||||
self.remove_from_recently_viewed(&server).await?;
|
||||
|
||||
Ok(server)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user