Skip to content

Commit 148ec77

Browse files
Ticket #112 : Fix issues to enable/disable plugins
1 parent f0db0a3 commit 148ec77

7 files changed

Lines changed: 25 additions & 14 deletions

File tree

src/EventMesh/FaasNet.EventMesh.Client/Messages/DisablePluginRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace FaasNet.EventMesh.Client.Messages
44
{
5-
internal class DisablePluginRequest : Package
5+
public class DisablePluginRequest : Package
66
{
77
public string PluginName { get; set; }
88

src/EventMesh/FaasNet.EventMesh.Client/Messages/GetAllPluginsResponse.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void Extract(ReadBufferContext context)
2424
{
2525
var plugins = new List<PluginResponse>();
2626
var nb = context.NextInt();
27-
for (int i = 0; i < nb; i++) PluginResponse.Extract(context);
27+
for (int i = 0; i < nb; i++) plugins.Add(PluginResponse.Extract(context));
2828
Plugins = plugins;
2929
}
3030
}

src/EventMesh/FaasNet.EventMesh.Client/Messages/PackageRequestBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public static Package EnablePlugin(string pluginName)
157157

158158
public static Package DisablePlugin(string pluginName)
159159
{
160-
return new EnablePluginRequest
160+
return new DisablePluginRequest
161161
{
162162
Header = new Header(Commands.DISABLE_PLUGIN_REQUEST, HeaderStatus.SUCCESS, GenerateRandomSeq()),
163163
PluginName = pluginName

src/EventMesh/FaasNet.EventMesh.Runtime/Handlers/DisablePluginMessageHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public DisablePluginMessageHandler(IOptions<EventMeshNodeOptions> options, IPlug
2424

2525
public Task<EventMeshPackageResult> Run(Package package, IEnumerable<IPeerHost> peers, CancellationToken cancellationToken)
2626
{
27-
var disablePluginRequest = package as EnablePluginRequest;
27+
var disablePluginRequest = package as DisablePluginRequest;
2828
var allPlugins = GetAllPluginsMessageHandler.ExtractPluginInfos(_options.ProtocolsPluginSubPath);
2929
allPlugins.AddRange(GetAllPluginsMessageHandler.ExtractPluginInfos(_options.SinksPluginSubPath));
3030
var selectedPlugin = allPlugins.FirstOrDefault(p => p.Name == disablePluginRequest.PluginName);

src/EventMesh/FaasNet.EventMesh.Runtime/Handlers/GetAllPluginsMessageHandler.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,10 @@ private List<PluginResponse> ExtractPlugins(string subPath)
3939
return pluginInfos;
4040
}
4141

42-
private static string CombineAndSanitize(string path, string relativePath)
43-
{
44-
return $"{path.TrimEnd('/')}/{relativePath}";
45-
}
46-
4742
public static List<PluginResponse> ExtractPluginInfos(string subPath)
4843
{
4944
var result = new List<PluginResponse>();
50-
var rootPluginPath = CombineAndSanitize(AppDomain.CurrentDomain.BaseDirectory, subPath);
45+
var rootPluginPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, subPath);
5146
var allPluginPath = Directory.EnumerateDirectories(rootPluginPath);
5247
foreach (var pluginPath in allPluginPath)
5348
{

src/EventMesh/FaasNet.EventMesh.Runtime/Stores/PluginStore.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private void Update(string pluginName, bool isEnabled)
5656
else record.IsActive = isEnabled;
5757
lock(_lock)
5858
{
59-
File.WriteAllText(GetPluginFilePath(), JsonSerializer.Serialize(record, new JsonSerializerOptions
59+
File.WriteAllText(GetPluginFilePath(), JsonSerializer.Serialize(records, new JsonSerializerOptions
6060
{
6161
PropertyNameCaseInsensitive = true
6262
}));
@@ -69,7 +69,8 @@ private ICollection<PluginRecord> Read()
6969
{
7070
var path = GetPluginFilePath();
7171
if (!File.Exists(path)) return new List<PluginRecord>();
72-
return JsonSerializer.Deserialize<ICollection<PluginRecord>>(File.ReadAllText(path), new JsonSerializerOptions
72+
var json = File.ReadAllText(path);
73+
return JsonSerializer.Deserialize<List<PluginRecord>>(json, new JsonSerializerOptions
7374
{
7475
PropertyNameCaseInsensitive = true
7576
});

src/EventMesh/FaasNet.EventMeshCTL.CLI/Program.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,13 @@ private static void AddGetPluginsCommand(CommandLineApplication app)
147147
var configuration = EventMeshCTLConfigurationManager.Get();
148148
var evtMeshClient = new EventMeshClient(configuration.Url, configuration.Port);
149149
var plugins = await evtMeshClient.GetAllPlugins(token);
150-
foreach(var plugin in plugins) Console.WriteLine($"{plugin.Name}, {plugin.Description}, {plugin.IsActive}");
150+
foreach (var plugin in plugins)
151+
{
152+
Console.WriteLine($"Name = {plugin.Name}");
153+
Console.WriteLine($"Description = {plugin.Description}");
154+
Console.WriteLine($"Is active = {plugin.IsActive}");
155+
Console.WriteLine();
156+
}
151157
});
152158
});
153159
}
@@ -164,6 +170,7 @@ private static void AddEnablePluginCommand(CommandLineApplication app)
164170
var configuration = EventMeshCTLConfigurationManager.Get();
165171
var evtMeshClient = new EventMeshClient(configuration.Url, configuration.Port);
166172
await evtMeshClient.EnablePlugin(nameOption.ParsedValue, token);
173+
DisplaySuccess("Plugin is enabled");
167174
});
168175
});
169176
}
@@ -179,7 +186,8 @@ private static void AddDisablePluginCommand(CommandLineApplication app)
179186
{
180187
var configuration = EventMeshCTLConfigurationManager.Get();
181188
var evtMeshClient = new EventMeshClient(configuration.Url, configuration.Port);
182-
await evtMeshClient.EnablePlugin(nameOption.ParsedValue, token);
189+
await evtMeshClient.DisablePlugin(nameOption.ParsedValue, token);
190+
DisplaySuccess("Plugin is disabled");
183191
});
184192
});
185193
}
@@ -190,5 +198,12 @@ private static void DisplayError(RuntimeClientResponseException ex)
190198
Console.WriteLine($"Error code = {ex.Error.Code}");
191199
Console.ResetColor();
192200
}
201+
202+
private static void DisplaySuccess(string msg)
203+
{
204+
Console.ForegroundColor = ConsoleColor.Green;
205+
Console.WriteLine(msg);
206+
Console.ResetColor();
207+
}
193208
}
194209
}

0 commit comments

Comments
 (0)