feat(cli): native-alarm-source commands (template add/list/remove + instance set/clear)
This commit is contained in:
@@ -24,6 +24,7 @@ public static class InstanceCommands
|
||||
command.Add(BuildSetBindings(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildSetOverrides(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildAlarmOverride(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildNativeAlarmSourceOverride(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildSetArea(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildDiff(urlOption, formatOption, usernameOption, passwordOption));
|
||||
command.Add(BuildDeploy(urlOption, formatOption, usernameOption, passwordOption));
|
||||
@@ -348,6 +349,53 @@ public static class InstanceCommands
|
||||
return group;
|
||||
}
|
||||
|
||||
private static Command BuildNativeAlarmSourceOverride(Option<string> urlOption, Option<string> formatOption, Option<string> usernameOption, Option<string> passwordOption)
|
||||
{
|
||||
var group = new Command("native-alarm-source")
|
||||
{
|
||||
Description = "Manage per-instance native alarm source overrides (retarget an inherited binding; blank = inherited)"
|
||||
};
|
||||
|
||||
// set
|
||||
var setIdOption = new Option<int>("--instance-id") { Description = "Instance ID", Required = true };
|
||||
var setSourceOption = new Option<string>("--source") { Description = "Source binding canonical name (e.g. 'Pressure' or 'Module.Pressure')", Required = true };
|
||||
var setConnectionOption = new Option<string?>("--connection") { Description = "Connection name override (blank = inherited)" };
|
||||
var setSourceRefOption = new Option<string?>("--source-ref") { Description = "Source reference override (blank = inherited)" };
|
||||
var setFilterOption = new Option<string?>("--filter") { Description = "Condition filter override (blank = inherited)" };
|
||||
var setCmd = new Command("set") { Description = "Set (upsert) a native alarm source override on an instance" };
|
||||
setCmd.Add(setIdOption); setCmd.Add(setSourceOption); setCmd.Add(setConnectionOption);
|
||||
setCmd.Add(setSourceRefOption); setCmd.Add(setFilterOption);
|
||||
setCmd.SetAction(async (ParseResult result) =>
|
||||
{
|
||||
return await CommandHelpers.ExecuteCommandAsync(
|
||||
result, urlOption, formatOption, usernameOption, passwordOption,
|
||||
new SetInstanceNativeAlarmSourceOverrideCommand(
|
||||
result.GetValue(setIdOption),
|
||||
result.GetValue(setSourceOption)!,
|
||||
result.GetValue(setConnectionOption),
|
||||
result.GetValue(setSourceRefOption),
|
||||
result.GetValue(setFilterOption)));
|
||||
});
|
||||
group.Add(setCmd);
|
||||
|
||||
// clear
|
||||
var clearIdOption = new Option<int>("--instance-id") { Description = "Instance ID", Required = true };
|
||||
var clearSourceOption = new Option<string>("--source") { Description = "Source binding canonical name", Required = true };
|
||||
var clearCmd = new Command("clear") { Description = "Clear a native alarm source override on an instance (revert to inherited)" };
|
||||
clearCmd.Add(clearIdOption); clearCmd.Add(clearSourceOption);
|
||||
clearCmd.SetAction(async (ParseResult result) =>
|
||||
{
|
||||
return await CommandHelpers.ExecuteCommandAsync(
|
||||
result, urlOption, formatOption, usernameOption, passwordOption,
|
||||
new DeleteInstanceNativeAlarmSourceOverrideCommand(
|
||||
result.GetValue(clearIdOption),
|
||||
result.GetValue(clearSourceOption)!));
|
||||
});
|
||||
group.Add(clearCmd);
|
||||
|
||||
return group;
|
||||
}
|
||||
|
||||
private static Command BuildSetArea(Option<string> urlOption, Option<string> formatOption, Option<string> usernameOption, Option<string> passwordOption)
|
||||
{
|
||||
var idOption = new Option<int>("--id") { Description = "Instance ID", Required = true };
|
||||
|
||||
Reference in New Issue
Block a user