@@ -523,6 +523,33 @@ public void testEnableDisableMaintenanceMode() throws IOException {
523523 }
524524
525525 @ Test (dependsOnMethods = "testEnableDisableMaintenanceMode" )
526+ public void testEmptyMaintenanceSignal () throws IOException {
527+ System .out .println ("Start test :" + TestHelper .getTestMethodName ());
528+ String cluster = _clusters .iterator ().next ();
529+
530+ // Create empty maintenance znode
531+ ZNRecord record = new ZNRecord ("test_maintenance_node" );
532+ ZKUtil .createOrUpdate (_gZkClient , "/" +cluster +"/CONTROLLER/MAINTENANCE" , record , true , true );
533+
534+ // Verify maintenance mode enabled
535+ Assert .assertTrue (isMaintenanceModeEnabled (cluster ));
536+ get ("clusters/" + cluster + "/controller/maintenanceSignal" , null ,
537+ Response .Status .OK .getStatusCode (), true );
538+
539+
540+ // Disable maintenance mode
541+ post ("clusters/" + cluster , ImmutableMap .of ("command" , "disableMaintenanceMode" ),
542+ Entity .entity ("" , MediaType .APPLICATION_JSON_TYPE ), Response .Status .OK .getStatusCode ());
543+
544+ // Verify no longer in maintenance mode
545+ Assert .assertFalse (isMaintenanceModeEnabled (cluster ));
546+ get ("clusters/" + cluster + "/controller/maintenanceSignal" , null ,
547+ Response .Status .NOT_FOUND .getStatusCode (), false );
548+ System .out .println ("End test :" + TestHelper .getTestMethodName ());
549+
550+ }
551+
552+ @ Test (dependsOnMethods = "testEmptyMaintenanceSignal" )
526553 public void testGetControllerLeadershipHistory () throws IOException {
527554 System .out .println ("Start test :" + TestHelper .getTestMethodName ());
528555 String cluster = _clusters .iterator ().next ();
0 commit comments