From c116ad90d08e335cc2407f471c43e4299865f472 Mon Sep 17 00:00:00 2001
From: Kasisnu <5044120+kasisnu@users.noreply.github.com>
Date: Tue, 19 Dec 2023 16:45:38 +0530
Subject: [PATCH] fail voice conversion jobs after model deleted
---
.../query_vc_model_for_migration.rs | 38 ++++++++++++++++---
.../job_loop/determine_dependency_status.rs | 9 ++++-
2 files changed, 39 insertions(+), 8 deletions(-)
diff --git a/crates/lib/migration/src/voice_conversion/query_vc_model_for_migration.rs b/crates/lib/migration/src/voice_conversion/query_vc_model_for_migration.rs
index ad30dc50f3..91028c5f26 100644
--- a/crates/lib/migration/src/voice_conversion/query_vc_model_for_migration.rs
+++ b/crates/lib/migration/src/voice_conversion/query_vc_model_for_migration.rs
@@ -6,28 +6,54 @@ use buckets::public::weight_files::bucket_file_path::WeightFileBucketPath;
use cloud_storage::bucket_path_unifier::BucketPathUnifier;
use enums::by_table::model_weights::weights_types::WeightsType;
use enums::by_table::voice_conversion_models::voice_conversion_model_type::VoiceConversionModelType;
-use errors::AnyhowResult;
use jobs_common::semi_persistent_cache_dir::SemiPersistentCacheDir;
-use mysql_queries::queries::model_weights::inference::get_model_weight_for_voice_conversion_inference::{get_model_weight_for_voice_conversion_inference, ModelWeightForVoiceConversionInference};
-use mysql_queries::queries::voice_conversion::inference::get_voice_conversion_model_for_inference::{get_voice_conversion_model_for_inference, VoiceConversionModelForInference};
+use mysql_queries::queries::model_weights::inference::get_model_weight_for_voice_conversion_inference::{get_model_weight_for_voice_conversion_inference, ModelWeightError, ModelWeightForVoiceConversionInference};
+use mysql_queries::queries::voice_conversion::inference::get_voice_conversion_model_for_inference::{get_voice_conversion_model_for_inference, VoiceConversionModelForInference, VoiceConversionModelForInferenceError};
use tokens::tokens::model_weights::ModelWeightToken;
+#[derive(Clone, Debug)]
+pub enum VcModelError {
+ ModelDeleted,
+ DatabaseError { reason: String },
+}
+
+impl std::fmt::Display for VcModelError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ match self {
+ VcModelError::ModelDeleted => write!(f, "ModelDeleted"),
+ VcModelError::DatabaseError { reason} =>
+ write!(f, "Database error: {:?}", reason),
+ }
+ }
+}
+
+impl std::error::Error for VcModelError {}
+
/// Query model info
/// Depending on the token prefix, this does either a modern or legacy lookup.
-pub async fn query_vc_model_for_migration(model_token: &str, mysql_pool: &MySqlPool) -> AnyhowResult