[ https://issues.apache.org/jira/browse/HDDS-3221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated HDDS-3221: --------------------------------- Labels: pull-request-available (was: ) > Refactor SafeModeHandler to use a Notification Interface > -------------------------------------------------------- > > Key: HDDS-3221 > URL: https://issues.apache.org/jira/browse/HDDS-3221 > Project: Hadoop Distributed Data Store > Issue Type: Improvement > Affects Versions: 0.6.0 > Reporter: Stephen O'Donnell > Assignee: Stephen O'Donnell > Priority: Major > Labels: pull-request-available > > The SafeModeHandler currently accepts several objects which it notifies when > the safe mode status changes. > Each of these object are notified using a different method (there is no > "notification interface") and some of the logic which really belongs in those > objects (ie what to do when safemode goes on or off) is in the safemode > classes rather than in the receiving class. > As we may need to extend safemode somewhat to delay pipeline creation until > sufficient nodes have registered, I think it is worthwhile to refactor this > area to do the following: > 1. Introduce a new Interface "SafeModeTransition" which must be implemented > by any object which wants to listen for safemode starting or ending. > {code} > public interface SafeModeTransition { > void handleSafeModeTransition(SCMSafeModeManager.SafeModeStatus status); > } > {code} > 2. Pass the SafeModeStatus object over this new interface. That way, we can > extend SafeModeStatus to include more states in the future than just safemode > = true / false. > 3. Change the constructor of SafeModeHandler to allow any number of objects > to be registered to make it more flexible going forward. > 4. Ensure the logic of what action to take on safemode transition lives > within the notified objects rather than in the Safemode clases. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: ozone-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: ozone-issues-h...@hadoop.apache.org