mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-05-19 22:12:14 +00:00
Added a reason for why deleting a plugin
This commit is contained in:
parent
142ed9ab18
commit
99e985cb3a
@ -5,10 +5,10 @@ namespace AIStudio.Tools.PluginSystem;
|
|||||||
|
|
||||||
public static partial class PluginFactory
|
public static partial class PluginFactory
|
||||||
{
|
{
|
||||||
public static async Task<(bool Success, EntityTagHeaderValue? ETag)> DetermineConfigPluginETagAsync(Guid configPlugId, string configServerUrl, CancellationToken cancellationToken = default)
|
public static async Task<(bool Success, EntityTagHeaderValue? ETag, string? Issue)> DetermineConfigPluginETagAsync(Guid configPlugId, string configServerUrl, CancellationToken cancellationToken = default)
|
||||||
{
|
{
|
||||||
if(configPlugId == Guid.Empty || string.IsNullOrWhiteSpace(configServerUrl))
|
if(configPlugId == Guid.Empty || string.IsNullOrWhiteSpace(configServerUrl))
|
||||||
return (false, null);
|
return (false, null, "Configuration ID or server URL is missing.");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -21,15 +21,15 @@ public static partial class PluginFactory
|
|||||||
if (!response.IsSuccessStatusCode)
|
if (!response.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
LOG.LogError($"Failed to determine the ETag for configuration plugin '{configPlugId}'. HTTP Status: {response.StatusCode}");
|
LOG.LogError($"Failed to determine the ETag for configuration plugin '{configPlugId}'. HTTP Status: {response.StatusCode}");
|
||||||
return (false, null);
|
return (false, null, $"HTTP status: {response.StatusCode}");
|
||||||
}
|
}
|
||||||
|
|
||||||
return (true, response.Headers.ETag);
|
return (true, response.Headers.ETag, null);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOG.LogError(e, "An error occurred while determining the ETag for the configuration plugin.");
|
LOG.LogError(e, "An error occurred while determining the ETag for the configuration plugin.");
|
||||||
return (false, null);
|
return (false, null, e.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,8 @@ namespace AIStudio.Tools.PluginSystem;
|
|||||||
|
|
||||||
public static partial class PluginFactory
|
public static partial class PluginFactory
|
||||||
{
|
{
|
||||||
|
private const string REASON_NO_LONGER_REFERENCED = "no longer referenced by active enterprise environments";
|
||||||
|
|
||||||
public static void RemoveUnreferencedManagedConfigurationPlugins(ISet<Guid> activeConfigurationIds)
|
public static void RemoveUnreferencedManagedConfigurationPlugins(ISet<Guid> activeConfigurationIds)
|
||||||
{
|
{
|
||||||
if (!IsInitialized)
|
if (!IsInitialized)
|
||||||
@ -42,15 +44,15 @@ public static partial class PluginFactory
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach (var pluginId in pluginIdsToRemove)
|
foreach (var pluginId in pluginIdsToRemove)
|
||||||
RemovePluginAsync(pluginId);
|
RemovePluginAsync(pluginId, REASON_NO_LONGER_REFERENCED);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void RemovePluginAsync(Guid pluginId)
|
private static void RemovePluginAsync(Guid pluginId, string reason)
|
||||||
{
|
{
|
||||||
if (!IsInitialized)
|
if (!IsInitialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
LOG.LogWarning("Try to remove plugin with ID: '{PluginId}'.", pluginId);
|
LOG.LogWarning("Removing plugin with ID '{PluginId}'. Reason: {Reason}.", pluginId, reason);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Remove the plugin from the available plugins list:
|
// Remove the plugin from the available plugins list:
|
||||||
@ -59,14 +61,14 @@ public static partial class PluginFactory
|
|||||||
if (availablePluginToRemove != null)
|
if (availablePluginToRemove != null)
|
||||||
AVAILABLE_PLUGINS.Remove(availablePluginToRemove);
|
AVAILABLE_PLUGINS.Remove(availablePluginToRemove);
|
||||||
else
|
else
|
||||||
LOG.LogWarning("No available plugin found with ID: '{PluginId}'.", pluginId);
|
LOG.LogWarning("No available plugin found with ID '{PluginId}' while removing plugin. Reason: {Reason}.", pluginId, reason);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Remove the plugin from the running plugins list:
|
// Remove the plugin from the running plugins list:
|
||||||
//
|
//
|
||||||
var runningPluginToRemove = RUNNING_PLUGINS.FirstOrDefault(p => p.Id == pluginId);
|
var runningPluginToRemove = RUNNING_PLUGINS.FirstOrDefault(p => p.Id == pluginId);
|
||||||
if (runningPluginToRemove == null)
|
if (runningPluginToRemove == null)
|
||||||
LOG.LogWarning("No running plugin found with ID: '{PluginId}'.", pluginId);
|
LOG.LogWarning("No running plugin found with ID '{PluginId}' while removing plugin. Reason: {Reason}.", pluginId, reason);
|
||||||
else
|
else
|
||||||
RUNNING_PLUGINS.Remove(runningPluginToRemove);
|
RUNNING_PLUGINS.Remove(runningPluginToRemove);
|
||||||
|
|
||||||
@ -75,7 +77,7 @@ public static partial class PluginFactory
|
|||||||
//
|
//
|
||||||
DeleteConfigurationPluginDirectory(pluginId);
|
DeleteConfigurationPluginDirectory(pluginId);
|
||||||
|
|
||||||
LOG.LogInformation("Plugin with ID='{PluginId}' removed successfully.", pluginId);
|
LOG.LogInformation("Plugin with ID '{PluginId}' removed successfully. Reason: {Reason}.", pluginId, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool? ReadDeployFlagFromPluginFile(string pluginDirectory)
|
private static bool? ReadDeployFlagFromPluginFile(string pluginDirectory)
|
||||||
|
|||||||
@ -79,7 +79,7 @@ public sealed class EnterpriseEnvironmentService(ILogger<EnterpriseEnvironmentSe
|
|||||||
if (!etagResponse.Success)
|
if (!etagResponse.Success)
|
||||||
{
|
{
|
||||||
failedConfigIds.Add(config.ConfigurationId);
|
failedConfigIds.Add(config.ConfigurationId);
|
||||||
logger.LogWarning("Failed to read enterprise config metadata for '{ConfigId}'. Keeping the current plugin state for this configuration.", config.ConfigurationId);
|
logger.LogWarning("Failed to read enterprise config metadata for '{ConfigId}' from '{ServerUrl}': {Issue}. Keeping the current plugin state for this configuration.", config.ConfigurationId, config.ConfigurationServerUrl, etagResponse.Issue ?? "Unknown issue");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user