From 8d9eb5bdcc5c33d764bba656be2d9ca57ae3bf60 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 21 Sep 2017 08:32:52 +0000 Subject: [PATCH 1/5] Move alarms related subprograms from config to alarms module --- src/program/{config => alarms}/compress_alarms/README | 0 src/program/{config => alarms}/compress_alarms/README.inc | 0 .../{config => alarms}/compress_alarms/compress_alarms.lua | 0 src/program/{config => alarms}/purge_alarms/README | 0 src/program/{config => alarms}/purge_alarms/README.inc | 0 src/program/{config => alarms}/purge_alarms/purge_alarms.lua | 0 src/program/{config => alarms}/set_alarm_operator_state/README | 0 .../{config => alarms}/set_alarm_operator_state/README.inc | 0 .../set_alarm_operator_state/set_alarm_operator_state.lua | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename src/program/{config => alarms}/compress_alarms/README (100%) rename src/program/{config => alarms}/compress_alarms/README.inc (100%) rename src/program/{config => alarms}/compress_alarms/compress_alarms.lua (100%) rename src/program/{config => alarms}/purge_alarms/README (100%) rename src/program/{config => alarms}/purge_alarms/README.inc (100%) rename src/program/{config => alarms}/purge_alarms/purge_alarms.lua (100%) rename src/program/{config => alarms}/set_alarm_operator_state/README (100%) rename src/program/{config => alarms}/set_alarm_operator_state/README.inc (100%) rename src/program/{config => alarms}/set_alarm_operator_state/set_alarm_operator_state.lua (100%) diff --git a/src/program/config/compress_alarms/README b/src/program/alarms/compress_alarms/README similarity index 100% rename from src/program/config/compress_alarms/README rename to src/program/alarms/compress_alarms/README diff --git a/src/program/config/compress_alarms/README.inc b/src/program/alarms/compress_alarms/README.inc similarity index 100% rename from src/program/config/compress_alarms/README.inc rename to src/program/alarms/compress_alarms/README.inc diff --git a/src/program/config/compress_alarms/compress_alarms.lua b/src/program/alarms/compress_alarms/compress_alarms.lua similarity index 100% rename from src/program/config/compress_alarms/compress_alarms.lua rename to src/program/alarms/compress_alarms/compress_alarms.lua diff --git a/src/program/config/purge_alarms/README b/src/program/alarms/purge_alarms/README similarity index 100% rename from src/program/config/purge_alarms/README rename to src/program/alarms/purge_alarms/README diff --git a/src/program/config/purge_alarms/README.inc b/src/program/alarms/purge_alarms/README.inc similarity index 100% rename from src/program/config/purge_alarms/README.inc rename to src/program/alarms/purge_alarms/README.inc diff --git a/src/program/config/purge_alarms/purge_alarms.lua b/src/program/alarms/purge_alarms/purge_alarms.lua similarity index 100% rename from src/program/config/purge_alarms/purge_alarms.lua rename to src/program/alarms/purge_alarms/purge_alarms.lua diff --git a/src/program/config/set_alarm_operator_state/README b/src/program/alarms/set_alarm_operator_state/README similarity index 100% rename from src/program/config/set_alarm_operator_state/README rename to src/program/alarms/set_alarm_operator_state/README diff --git a/src/program/config/set_alarm_operator_state/README.inc b/src/program/alarms/set_alarm_operator_state/README.inc similarity index 100% rename from src/program/config/set_alarm_operator_state/README.inc rename to src/program/alarms/set_alarm_operator_state/README.inc diff --git a/src/program/config/set_alarm_operator_state/set_alarm_operator_state.lua b/src/program/alarms/set_alarm_operator_state/set_alarm_operator_state.lua similarity index 100% rename from src/program/config/set_alarm_operator_state/set_alarm_operator_state.lua rename to src/program/alarms/set_alarm_operator_state/set_alarm_operator_state.lua From ef46bece1cbf1bdbd05d168607df89d32cedca30 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 21 Sep 2017 08:34:36 +0000 Subject: [PATCH 2/5] Rename set_alarms_operator_state subcommand to set_operator_state --- .../{set_alarm_operator_state => set_operator_state}/README | 0 .../{set_alarm_operator_state => set_operator_state}/README.inc | 0 .../set_operator_state.lua} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename src/program/alarms/{set_alarm_operator_state => set_operator_state}/README (100%) rename src/program/alarms/{set_alarm_operator_state => set_operator_state}/README.inc (100%) rename src/program/alarms/{set_alarm_operator_state/set_alarm_operator_state.lua => set_operator_state/set_operator_state.lua} (100%) diff --git a/src/program/alarms/set_alarm_operator_state/README b/src/program/alarms/set_operator_state/README similarity index 100% rename from src/program/alarms/set_alarm_operator_state/README rename to src/program/alarms/set_operator_state/README diff --git a/src/program/alarms/set_alarm_operator_state/README.inc b/src/program/alarms/set_operator_state/README.inc similarity index 100% rename from src/program/alarms/set_alarm_operator_state/README.inc rename to src/program/alarms/set_operator_state/README.inc diff --git a/src/program/alarms/set_alarm_operator_state/set_alarm_operator_state.lua b/src/program/alarms/set_operator_state/set_operator_state.lua similarity index 100% rename from src/program/alarms/set_alarm_operator_state/set_alarm_operator_state.lua rename to src/program/alarms/set_operator_state/set_operator_state.lua From c05208099492ef3b20d3da77b6a2a225dca94952 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 21 Sep 2017 08:33:51 +0000 Subject: [PATCH 3/5] Modify README --- src/program/alarms/README | 3 +++ src/program/config/README | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/program/alarms/README b/src/program/alarms/README index b4e91e1fa6..d110052a4c 100644 --- a/src/program/alarms/README +++ b/src/program/alarms/README @@ -1,5 +1,8 @@ Usage: + snabb alarms compress snabb alarms get-state + snabb alarms purge + snabb alarms set-operator-state Use --help for per-command usage. Example: diff --git a/src/program/config/README b/src/program/config/README index 9cca24f9ca..8f5a4ca6ee 100644 --- a/src/program/config/README +++ b/src/program/config/README @@ -6,7 +6,6 @@ Usage: snabb config load snabb config remove snabb config set - snabb config set-alarm-operator-state Use --help for per-command usage. Example: From eb73690c7eb8d714e7e9d31fcd093156d30563db Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 21 Sep 2017 08:40:34 +0000 Subject: [PATCH 4/5] Adjust alarms related programs --- .../alarms/{compress_alarms => compress}/README | 6 +++--- .../alarms/{compress_alarms => compress}/README.inc | 0 .../compress_alarms.lua => compress/compress.lua} | 2 +- src/program/alarms/{purge_alarms => purge}/README | 10 +++++----- src/program/alarms/{purge_alarms => purge}/README.inc | 0 .../{purge_alarms/purge_alarms.lua => purge/purge.lua} | 2 +- src/program/alarms/set_operator_state/README | 6 +++--- .../alarms/set_operator_state/set_operator_state.lua | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) rename src/program/alarms/{compress_alarms => compress}/README (75%) rename src/program/alarms/{compress_alarms => compress}/README.inc (100%) rename src/program/alarms/{compress_alarms/compress_alarms.lua => compress/compress.lua} (95%) rename src/program/alarms/{purge_alarms => purge}/README (79%) rename src/program/alarms/{purge_alarms => purge}/README.inc (100%) rename src/program/alarms/{purge_alarms/purge_alarms.lua => purge/purge.lua} (96%) diff --git a/src/program/alarms/compress_alarms/README b/src/program/alarms/compress/README similarity index 75% rename from src/program/alarms/compress_alarms/README rename to src/program/alarms/compress/README index 4fdfc5df06..1f5292ba98 100644 --- a/src/program/alarms/compress_alarms/README +++ b/src/program/alarms/compress/README @@ -1,4 +1,4 @@ -Usage: snabb config compress-alarms [OPTION]... ID RESOURCE ALARM-TYPE-ID/ALARM-TYPE-QUALIFIER +Usage: snabb alarms compress [OPTION]... ID RESOURCE ALARM-TYPE-ID/ALARM-TYPE-QUALIFIER Compress status change for all matching alarms. Available options: @@ -15,7 +15,7 @@ logically ANDed. If no input condition is given, all alarms are compressed. Typical usage: -$ sudo ./snabb config compress-alarms lwaftr external-interface arp-resolution +$ sudo ./snabb alarms compress lwaftr external-interface arp-resolution -See https://github.com/Igalia/snabb/blob/lwaftr/src/program/config/README.md +See https://github.com/Igalia/snabb/blob/lwaftr/src/program/alarms/README.md for full documentation. diff --git a/src/program/alarms/compress_alarms/README.inc b/src/program/alarms/compress/README.inc similarity index 100% rename from src/program/alarms/compress_alarms/README.inc rename to src/program/alarms/compress/README.inc diff --git a/src/program/alarms/compress_alarms/compress_alarms.lua b/src/program/alarms/compress/compress.lua similarity index 95% rename from src/program/alarms/compress_alarms/compress_alarms.lua rename to src/program/alarms/compress/compress.lua index 6534c66699..4f407e5697 100644 --- a/src/program/alarms/compress_alarms/compress_alarms.lua +++ b/src/program/alarms/compress/compress.lua @@ -4,7 +4,7 @@ module(..., package.seeall) local common = require("program.config.common") local function usage(exit_code) - print(require('program.config.compress_alarms.README_inc')) + print(require('program.alarms.compress.README_inc')) main.exit(exit_code) end diff --git a/src/program/alarms/purge_alarms/README b/src/program/alarms/purge/README similarity index 79% rename from src/program/alarms/purge_alarms/README rename to src/program/alarms/purge/README index af9549697f..6321e36ab9 100644 --- a/src/program/alarms/purge_alarms/README +++ b/src/program/alarms/purge/README @@ -1,4 +1,4 @@ -Usage: snabb config purge-alarms [OPTION]... ID STATE +Usage: snabb alarms purge [OPTION]... ID STATE Adds a new operator-state in an alarm. Available options: @@ -24,9 +24,9 @@ remove all alarms that match the filtering options. Typical usage: -$ sudo ./snabb config purge-alarms lwaftr any -$ sudo ./snabb config purge-alarms --by-severity above:minor lwaftr any -$ sudo ./snabb config purge-alarms --by-older-than minutes:5 lwaftr cleared +$ sudo ./snabb alarms purge lwaftr any +$ sudo ./snabb alarms purge --by-severity above:minor lwaftr any +$ sudo ./snabb alarms purge --by-older-than minutes:5 lwaftr cleared -See https://github.com/Igalia/snabb/blob/lwaftr/src/program/config/README.md +See https://github.com/Igalia/snabb/blob/lwaftr/src/program/alarms/README.md for full documentation. diff --git a/src/program/alarms/purge_alarms/README.inc b/src/program/alarms/purge/README.inc similarity index 100% rename from src/program/alarms/purge_alarms/README.inc rename to src/program/alarms/purge/README.inc diff --git a/src/program/alarms/purge_alarms/purge_alarms.lua b/src/program/alarms/purge/purge.lua similarity index 96% rename from src/program/alarms/purge_alarms/purge_alarms.lua rename to src/program/alarms/purge/purge.lua index a1be4d380e..82cff6d11d 100644 --- a/src/program/alarms/purge_alarms/purge_alarms.lua +++ b/src/program/alarms/purge/purge.lua @@ -5,7 +5,7 @@ local common = require("program.config.common") local lib = require("core.lib") local function usage(exit_code) - print(require('program.config.purge_alarms.README_inc')) + print(require('program.alarms.purge.README_inc')) main.exit(exit_code) end diff --git a/src/program/alarms/set_operator_state/README b/src/program/alarms/set_operator_state/README index 2730c9dbf3..6a52903341 100644 --- a/src/program/alarms/set_operator_state/README +++ b/src/program/alarms/set_operator_state/README @@ -1,4 +1,4 @@ -Usage: snabb config set-alarm-operator-state [OPTION]... ID ALARM-ID OPERATOR-STATE ALARM-TEXT +Usage: snabb alarms set-operator-state [OPTION]... ID ALARM-ID OPERATOR-STATE ALARM-TEXT Adds a new operator-state in an alarm. Available options: @@ -21,7 +21,7 @@ An OPERATOR-STATE can take the following values: 'none', 'ack', 'closed', Typical usage: -$ snabb config set-alarm-operator-state lwaftr external-interface arp-resolution ack +$ snabb alarms set-operator-state lwaftr external-interface arp-resolution ack -See https://github.com/Igalia/snabb/blob/lwaftr/src/program/config/README.md +See https://github.com/Igalia/snabb/blob/lwaftr/src/program/alarms/README.md for full documentation. diff --git a/src/program/alarms/set_operator_state/set_operator_state.lua b/src/program/alarms/set_operator_state/set_operator_state.lua index c27302604a..5fcdad2d65 100644 --- a/src/program/alarms/set_operator_state/set_operator_state.lua +++ b/src/program/alarms/set_operator_state/set_operator_state.lua @@ -4,7 +4,7 @@ module(..., package.seeall) local common = require("program.config.common") local function usage(exit_code) - print(require("program.config.set_alarm_operator_state.README_inc")) + print(require("program.alarms.set_operator_state.README_inc")) main.exit(exit_code) end From 631f73a06c33150e2856f823fe676613af4f694d Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Thu, 21 Sep 2017 09:39:41 +0000 Subject: [PATCH 5/5] Customize usage for each alarms command --- src/program/alarms/compress/README | 2 +- src/program/alarms/compress/compress.lua | 16 +++++++++++----- src/program/alarms/get_state/get_state.lua | 9 ++++++++- src/program/alarms/purge/purge.lua | 16 +++++++++++----- src/program/alarms/set_operator_state/README | 2 +- .../set_operator_state/set_operator_state.lua | 14 ++++++++++---- src/program/config/common.lua | 4 +++- 7 files changed, 45 insertions(+), 18 deletions(-) diff --git a/src/program/alarms/compress/README b/src/program/alarms/compress/README index 1f5292ba98..2f71004032 100644 --- a/src/program/alarms/compress/README +++ b/src/program/alarms/compress/README @@ -15,7 +15,7 @@ logically ANDed. If no input condition is given, all alarms are compressed. Typical usage: -$ sudo ./snabb alarms compress lwaftr external-interface arp-resolution +$ sudo ./snabb alarms compress lwaftr nic-v4 arp-resolution See https://github.com/Igalia/snabb/blob/lwaftr/src/program/alarms/README.md for full documentation. diff --git a/src/program/alarms/compress/compress.lua b/src/program/alarms/compress/compress.lua index 4f407e5697..13a72b43e9 100644 --- a/src/program/alarms/compress/compress.lua +++ b/src/program/alarms/compress/compress.lua @@ -3,13 +3,18 @@ module(..., package.seeall) local common = require("program.config.common") -local function usage(exit_code) - print(require('program.alarms.compress.README_inc')) - main.exit(exit_code) +function show_usage(command, status, err_msg) + if err_msg then print('error: '..err_msg) end + print(require("program.alarms.compress.README_inc")) + main.exit(status) +end + +local function fatal() + show_usage(nil, 1) end local function parse_args (args) - if #args ~= 3 then usage(1) end + if #args ~= 3 then fatal() end local resource = args[2] local alarm_type_id, alarm_type_qualifier = (args[3]):match("([^/]+)") if not alarm_type_id then @@ -27,7 +32,8 @@ end function run(args) local l_args = parse_args(args) - local opts = { command='compress-alarms', with_path=false, is_config=false } + local opts = { command='compress-alarms', with_path=false, is_config=false, + usage=show_usage } args = common.parse_command_line(args, opts) local response = common.call_leader( args.instance_id, 'compress-alarms', diff --git a/src/program/alarms/get_state/get_state.lua b/src/program/alarms/get_state/get_state.lua index 513b56dc27..c8be2523fe 100644 --- a/src/program/alarms/get_state/get_state.lua +++ b/src/program/alarms/get_state/get_state.lua @@ -2,8 +2,15 @@ module(..., package.seeall) local common = require("program.config.common") +function show_usage(command, status, err_msg) + if err_msg then print('error: '..err_msg) end + print(require("program.alarms.get_state.README_inc")) + main.exit(status) +end + function run (args) - local opts = { command='get-alarms-state', with_path=true, is_config=false } + local opts = { command='get-alarms-state', with_path=true, is_config=false, + usage = show_usage } args = common.parse_command_line(args, opts) local response = common.call_leader( args.instance_id, 'get-alarms-state', diff --git a/src/program/alarms/purge/purge.lua b/src/program/alarms/purge/purge.lua index 82cff6d11d..f58c9920be 100644 --- a/src/program/alarms/purge/purge.lua +++ b/src/program/alarms/purge/purge.lua @@ -4,9 +4,14 @@ module(..., package.seeall) local common = require("program.config.common") local lib = require("core.lib") -local function usage(exit_code) - print(require('program.alarms.purge.README_inc')) - main.exit(exit_code) +function show_usage(command, status, err_msg) + if err_msg then print('error: '..err_msg) end + print(require("program.alarms.purge.README_inc")) + main.exit(status) +end + +local function fatal() + show_usage(nil, 1) end local function parse_args (args) @@ -37,14 +42,15 @@ local function parse_args (args) args = lib.dogetopt(args, handlers, "", { ['by-older-than']=1, ['by-severity']=1, ['by-operator-state']=1 }) opts.status = table.remove(args, #args) - if table_size(opts) == 0 then usage(1) end + if table_size(opts) == 0 then fatal() end local args = without_opts(args) return opts, args end function run(args) local l_args, args = parse_args(args) - local opts = { command='purge-alarms', with_path=false, is_config=false } + local opts = { command='purge-alarms', with_path=false, is_config=false, + usage = show_usage } args = common.parse_command_line(args, opts) local response = common.call_leader( args.instance_id, 'purge-alarms', diff --git a/src/program/alarms/set_operator_state/README b/src/program/alarms/set_operator_state/README index 6a52903341..8d2b674c36 100644 --- a/src/program/alarms/set_operator_state/README +++ b/src/program/alarms/set_operator_state/README @@ -21,7 +21,7 @@ An OPERATOR-STATE can take the following values: 'none', 'ack', 'closed', Typical usage: -$ snabb alarms set-operator-state lwaftr external-interface arp-resolution ack +$ snabb alarms set-operator-state lwaftr nic-v4 arp-resolution ack See https://github.com/Igalia/snabb/blob/lwaftr/src/program/alarms/README.md for full documentation. diff --git a/src/program/alarms/set_operator_state/set_operator_state.lua b/src/program/alarms/set_operator_state/set_operator_state.lua index 5fcdad2d65..48fcfe0aa9 100644 --- a/src/program/alarms/set_operator_state/set_operator_state.lua +++ b/src/program/alarms/set_operator_state/set_operator_state.lua @@ -3,13 +3,18 @@ module(..., package.seeall) local common = require("program.config.common") -local function usage(exit_code) +function show_usage(command, status, err_msg) + if err_msg then print('error: '..err_msg) end print(require("program.alarms.set_operator_state.README_inc")) - main.exit(exit_code) + main.exit(status) +end + +local function fatal() + show_usage(nil, 1) end local function parse_args (args) - if #args < 4 or #args > 5 then usage(1) end + if #args < 4 or #args > 5 then fatal() end local alarm_type_id, alarm_type_qualifier = (args[3]):match("([%w]+)/([%w]+)") if not alarm_type_id then alarm_type_id, alarm_type_qualifier = args[3], '' @@ -32,7 +37,8 @@ end function run(args) local l_args = parse_args(args) - local opts = { command='set-alarm-operator-state', with_path=false, is_config=false } + local opts = { command='set-alarm-operator-state', with_path=false, is_config=false, + usage = show_usage } args = common.parse_command_line(args, opts) local response = common.call_leader( args.instance_id, 'set-alarm-operator-state', diff --git a/src/program/config/common.lua b/src/program/config/common.lua index 34c0d23f46..37507956c3 100644 --- a/src/program/config/common.lua +++ b/src/program/config/common.lua @@ -22,7 +22,8 @@ local parse_command_line_opts = { with_path = { default=false }, with_value = { default=false }, require_schema = { default=false }, - is_config = { default=true } + is_config = { default=true }, + usage = { default=show_usage }, } local function path_grammar(schema_name, path, is_config) @@ -65,6 +66,7 @@ function parse_command_line(args, opts) print_default = false, format = "yang", } + if opts.usage then show_usage = opts.usage end local handlers = {} function handlers.h() show_usage(opts.command, 0) end function handlers.s(arg) ret.schema_name = arg end