Skip to content

Commit

Permalink
make syntax of command 'pcs alert recipient add' more consistent
Browse files Browse the repository at this point in the history
  • Loading branch information
ondrejmular authored and tomjelinek committed Aug 12, 2016
1 parent 25a25c5 commit c352ce1
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 20 deletions.
7 changes: 3 additions & 4 deletions pcs/alert.py
Expand Up @@ -129,15 +129,14 @@ def recipient_add(lib, argv, modifiers):
raise CmdLineInputError()

alert_id = argv[0]
recipient_value = argv[1]

sections = parse_cmd_sections(argv[2:], set(["options", "meta"]))
sections = parse_cmd_sections(argv[1:], set(["options", "meta"]))
main_args = prepare_options(sections["main"])
ensure_only_allowed_options(main_args, ["description", "id"])
ensure_only_allowed_options(main_args, ["description", "id", "value"])

lib.alert.add_recipient(
alert_id,
recipient_value,
main_args.get("value", None),
prepare_options(sections["options"]),
prepare_options(sections["meta"]),
recipient_id=main_args.get("id", None),
Expand Down
2 changes: 1 addition & 1 deletion pcs/pcs.8
Expand Up @@ -727,7 +727,7 @@ Update existing alert handler with specified id.
remove <alert\-id>
Remove alert handler with specified id.
.TP
recipient add <alert\-id> <recipient\-value> [id=<recipient\-id>] [description=<description>] [options [<option>=<value>]...] [meta [<meta-option>=<value>]...]
recipient add <alert\-id> value=<recipient\-value> [id=<recipient\-id>] [description=<description>] [options [<option>=<value>]...] [meta [<meta-option>=<value>]...]
Add new recipient to specified alert handler.
.TP
recipient update <recipient\-id> [value=<recipient\-value>] [description=<description>] [options [<option>=<value>]...] [meta [<meta-option>=<value>]...]
Expand Down
44 changes: 30 additions & 14 deletions pcs/test/test_alert.py
Expand Up @@ -233,7 +233,7 @@ def test_success(self):
Alert: alert (path=test)
"""
)
self.assert_pcs_success("alert recipient add alert rec_value")
self.assert_pcs_success("alert recipient add alert value=rec_value")
self.assert_pcs_success(
"alert config",
"""\
Expand All @@ -244,7 +244,7 @@ def test_success(self):
"""
)
self.assert_pcs_success(
"alert recipient add alert rec_value2 id=my-recipient "
"alert recipient add alert value=rec_value2 id=my-recipient "
"description=description options o1=1 o2=2 meta m1=v1 m2=v2"
)
self.assert_pcs_success(
Expand All @@ -263,21 +263,25 @@ def test_success(self):

def test_already_exists(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value id=rec")
self.assert_pcs_success(
"alert recipient add alert value=rec_value id=rec"
)
self.assert_pcs_fail(
"alert recipient add alert value id=rec",
"alert recipient add alert value=value id=rec",
"Error: 'rec' already exists\n"
)
self.assert_pcs_fail(
"alert recipient add alert value id=alert",
"alert recipient add alert value=value id=alert",
"Error: 'alert' already exists\n"
)

def test_same_value(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value id=rec")
self.assert_pcs_success(
"alert recipient add alert value=rec_value id=rec"
)
self.assert_pcs_fail(
"alert recipient add alert rec_value",
"alert recipient add alert value=rec_value",
"Error: Recipient 'rec_value' in alert 'alert' already exists, "
"use --force to override\n"
)
Expand All @@ -291,7 +295,7 @@ def test_same_value(self):
"""
)
self.assert_pcs_success(
"alert recipient add alert rec_value --force",
"alert recipient add alert value=rec_value --force",
"Warning: Recipient 'rec_value' in alert 'alert' already exists\n"
)
self.assert_pcs_success(
Expand All @@ -305,13 +309,21 @@ def test_same_value(self):
"""
)

def test_no_value(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_fail(
"alert recipient add alert id=rec",
"Error: required option 'value' is missing\n"
)



@unittest.skipUnless(ALERTS_SUPPORTED, ALERTS_NOT_SUPPORTED_MSG)
class UpdateRecipientAlert(PcsAlertTest):
def test_success(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success(
"alert recipient add alert rec_value description=description "
"alert recipient add alert value=rec_value description=description "
"options o1=1 o2=2 meta m1=v1 m2=v2"
)
self.assert_pcs_success(
Expand Down Expand Up @@ -360,8 +372,8 @@ def test_success(self):

def test_value_exists(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value")
self.assert_pcs_success("alert recipient add alert value")
self.assert_pcs_success("alert recipient add alert value=rec_value")
self.assert_pcs_success("alert recipient add alert value=value")
self.assert_pcs_success(
"alert config",
"""\
Expand Down Expand Up @@ -394,7 +406,7 @@ def test_value_exists(self):

def test_value_same_as_previous(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value")
self.assert_pcs_success("alert recipient add alert value=rec_value")
self.assert_pcs_success(
"alert config",
"""\
Expand Down Expand Up @@ -425,7 +437,9 @@ def test_no_recipient(self):

def test_empty_value(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value id=rec")
self.assert_pcs_success(
"alert recipient add alert value=rec_value id=rec"
)
self.assert_pcs_fail(
"alert recipient update rec value=",
"Error: Recipient value '' is not valid.\n"
Expand All @@ -436,7 +450,9 @@ def test_empty_value(self):
class RemoveRecipientTest(PcsAlertTest):
def test_success(self):
self.assert_pcs_success("alert create path=test")
self.assert_pcs_success("alert recipient add alert rec_value id=rec")
self.assert_pcs_success(
"alert recipient add alert value=rec_value id=rec"
)
self.assert_pcs_success(
"alert config",
"""\
Expand Down
2 changes: 1 addition & 1 deletion pcs/usage.py
Expand Up @@ -1507,7 +1507,7 @@ def alert(args=[], pout=True):
remove <alert-id>
Remove alert handler with specified id.
recipient add <alert-id> <recipient-value> [id=<recipient-id>]
recipient add <alert-id> value=<recipient-value> [id=<recipient-id>]
[description=<description>] [options [<option>=<value>]...]
[meta [<meta-option>=<value>]...]
Add new recipient to specified alert handler.
Expand Down

0 comments on commit c352ce1

Please sign in to comment.