Skip to content

Commit 919ec4c

Browse files
committed
MB-56157 Fix enable-failover-on-data-disk-issues requiring period
Change-Id: If1dec0caaeb2a324f113982df629ecc011eceecd Reviewed-on: https://review.couchbase.org/c/couchbase-cli/+/188810 Reviewed-by: James Lee <james.lee@couchbase.com> Tested-by: Build Bot <build@couchbase.com> Well-Formed: Restriction Checker
1 parent f8e383f commit 919ec4c

2 files changed

Lines changed: 30 additions & 1 deletion

File tree

cbmgr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2611,7 +2611,7 @@ def execute(self, opts):
26112611
_exit_if_errors(["--enable-failover-on-data-disk-issues must be set to 1 when auto-failover Data"
26122612
" Service disk period has been set"])
26132613

2614-
if opts.enable_failover_on_data_disk_issues and opts.failover_on_data_disk_period is None:
2614+
if opts.enable_failover_on_data_disk_issues == "true" and opts.failover_on_data_disk_period is None:
26152615
_exit_if_errors(["--failover-data-disk-period must be set when auto-failover on Data Service disk"
26162616
" is enabled"])
26172617

test/test_cli.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1236,6 +1236,35 @@ def test_setting_audit_CE_EE_flags(self):
12361236
self.system_exit_run(self.command + self.cmd_args + self.EE_args, self.server_args)
12371237
self.assertIn('can only be configured on enterprise edition', self.str_output)
12381238

1239+
def test_enable_disk_issues_without_disk_period(self):
1240+
self.EE_args = ['--enable-failover-on-data-disk-issues', '1']
1241+
self.system_exit_run(self.command + self.cmd_args + self.EE_args, self.server_args)
1242+
self.assertIn(
1243+
'--failover-data-disk-period must be set when auto-failover on Data Service disk is enabled',
1244+
self.str_output)
1245+
1246+
def test_enable_disk_issues_with_disk_period(self):
1247+
self.EE_args = ['--enable-failover-on-data-disk-issues', '1', '--failover-data-disk-period', '20']
1248+
self.no_error_run(self.command + self.cmd_args + self.EE_args, self.server_args)
1249+
expected_params = ['enabled=true', 'timeout=10', 'failoverOnDataDiskIssues%5Benabled%5D=true',
1250+
'failoverOnDataDiskIssues%5BtimePeriod%5D=20']
1251+
self.assertIn('POST:/settings/autoFailover', self.server.trace)
1252+
self.rest_parameter_match(expected_params)
1253+
1254+
def test_disable_disk_issues_without_disk_period(self):
1255+
self.EE_args = ['--enable-failover-on-data-disk-issues', '0']
1256+
self.no_error_run(self.command + self.cmd_args + self.EE_args, self.server_args)
1257+
expected_params = ['enabled=true', 'timeout=10', 'failoverOnDataDiskIssues%5Benabled%5D=false']
1258+
self.assertIn('POST:/settings/autoFailover', self.server.trace)
1259+
self.rest_parameter_match(expected_params)
1260+
1261+
def test_disable_disk_issues_with_disk_period(self):
1262+
self.EE_args = ['--enable-failover-on-data-disk-issues', '0', '--failover-data-disk-period', '20']
1263+
self.system_exit_run(self.command + self.cmd_args + self.EE_args, self.server_args)
1264+
self.assertIn(
1265+
'--enable-failover-on-data-disk-issues must be set to 1 when auto-failover Data Service disk period has been set',
1266+
self.str_output)
1267+
12391268

12401269
class TestSettingAutoreporovision(CommandTest):
12411270
def setUp(self):

0 commit comments

Comments
 (0)