View Javadoc

1   /*
2    *
3    * Licensed to the Apache Software Foundation (ASF) under one
4    * or more contributor license agreements.  See the NOTICE file
5    * distributed with this work for additional information
6    * regarding copyright ownership.  The ASF licenses this file
7    * to you under the Apache License, Version 2.0 (the
8    * "License"); you may not use this file except in compliance
9    * with the License.  You may obtain a copy of the License at
10   *
11   * http://www.apache.org/licenses/LICENSE-2.0
12   *
13   * Unless required by applicable law or agreed to in writing, software
14   * distributed under the License is distributed on an "AS IS" BASIS,
15   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   * See the License for the specific language governing permissions and
17   * limitations under the License.
18   */
19  
20  package org.apache.hadoop.hbase.coprocessor;
21  
22  import org.apache.hadoop.hbase.ClusterStatus;
23  import org.apache.hadoop.hbase.classification.InterfaceAudience;
24  import org.apache.hadoop.hbase.classification.InterfaceStability;
25  import org.apache.hadoop.hbase.HBaseInterfaceAudience;
26  import org.apache.hadoop.hbase.ProcedureInfo;
27  import org.apache.hadoop.hbase.TableName;
28  import org.apache.hadoop.hbase.HColumnDescriptor;
29  import org.apache.hadoop.hbase.HRegionInfo;
30  import org.apache.hadoop.hbase.CoprocessorEnvironment;
31  import org.apache.hadoop.hbase.HTableDescriptor;
32  import org.apache.hadoop.hbase.NamespaceDescriptor;
33  import org.apache.hadoop.hbase.ServerName;
34  import org.apache.hadoop.hbase.client.Admin;
35  import org.apache.hadoop.hbase.master.RegionPlan;
36  import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
37  import org.apache.hadoop.hbase.net.Address;
38  import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
39  import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
40  import org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas;
41  
42  import java.io.IOException;
43  import java.util.List;
44  import java.util.Set;
45  
46  @InterfaceAudience.LimitedPrivate({HBaseInterfaceAudience.COPROC, HBaseInterfaceAudience.CONFIG})
47  @InterfaceStability.Evolving
48  public class BaseMasterObserver implements MasterObserver {
49    @Override
50    public void preCreateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
51        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
52    }
53  
54    @Override
55    public void postCreateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
56        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
57    }
58  
59    @Override
60    public void preCreateTableHandler(
61        final ObserverContext<MasterCoprocessorEnvironment> ctx,
62        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
63    }
64  
65    @Override
66    public void postCreateTableHandler(
67        final ObserverContext<MasterCoprocessorEnvironment> ctx,
68        HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
69    }
70  
71    @Override
72    public void preDispatchMerge(final ObserverContext<MasterCoprocessorEnvironment> ctx,
73        HRegionInfo regionA, HRegionInfo regionB) throws IOException {
74    }
75  
76    @Override
77    public void postDispatchMerge(final ObserverContext<MasterCoprocessorEnvironment> ctx,
78        HRegionInfo regionA, HRegionInfo regionB) throws IOException {
79    }
80  
81    @Override
82    public void preGetClusterStatus(ObserverContext<MasterCoprocessorEnvironment> ctx)
83        throws IOException {
84    }
85  
86    @Override
87    public void postGetClusterStatus(ObserverContext<MasterCoprocessorEnvironment> ctx,
88        ClusterStatus status)
89        throws IOException {
90    }
91  
92    @Override
93    public void preClearDeadServers(ObserverContext<MasterCoprocessorEnvironment> ctx)
94      throws IOException {
95    }
96  
97    @Override
98    public void postClearDeadServers(ObserverContext<MasterCoprocessorEnvironment> ctx,
99        List<ServerName> servers, List<ServerName> notClearedServers) throws IOException {
100   }
101 
102   @Override
103   public void preDeleteTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
104       TableName tableName) throws IOException {
105   }
106 
107   @Override
108   public void postDeleteTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
109       TableName tableName) throws IOException {
110   }
111 
112   @Override
113   public void preDeleteTableHandler(
114       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
115       throws IOException{
116   }
117 
118   @Override
119   public void postDeleteTableHandler(
120       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
121       throws IOException {
122   }
123 
124   @Override
125   public void preTruncateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
126       TableName tableName) throws IOException {
127   }
128 
129   @Override
130   public void postTruncateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
131       TableName tableName) throws IOException {
132   }
133 
134   @Override
135   public void preTruncateTableHandler(
136       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
137       throws IOException {
138   }
139 
140   @Override
141   public void postTruncateTableHandler(
142       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
143       throws IOException {
144   }
145 
146   @Override
147   public void preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
148       TableName tableName, HTableDescriptor htd) throws IOException {
149   }
150 
151   @Override
152   public void postModifyTableHandler(
153       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
154       HTableDescriptor htd) throws IOException {
155   }
156 
157   @Override
158   public void preModifyTableHandler(
159       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
160       HTableDescriptor htd) throws IOException {
161   }
162 
163   @Override
164   public void postModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
165       TableName tableName, HTableDescriptor htd) throws IOException {
166   }
167 
168   @Override
169   public void preCreateNamespace(
170       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
171           throws IOException {
172   }
173 
174   @Override
175   public void postCreateNamespace(
176       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
177           throws IOException {
178   }
179 
180   @Override
181   public void preDeleteNamespace(
182       ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace) throws IOException {
183   }
184 
185   @Override
186   public void postDeleteNamespace(
187       ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace) throws IOException {
188   }
189 
190   @Override
191   public void preModifyNamespace(
192       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
193           throws IOException {
194   }
195 
196   @Override
197   public void postModifyNamespace(
198       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
199           throws IOException {
200   }
201 
202   @Override
203   public void preGetNamespaceDescriptor(ObserverContext<MasterCoprocessorEnvironment> ctx,
204       String namespace) throws IOException {
205   }
206 
207   @Override
208   public void postGetNamespaceDescriptor(ObserverContext<MasterCoprocessorEnvironment> ctx,
209       NamespaceDescriptor ns) throws IOException {
210   }
211 
212   @Override
213   public void preListNamespaces(ObserverContext<MasterCoprocessorEnvironment> ctx,
214       List<String> namespaces) throws IOException {
215   }
216 
217   @Override
218   public void postListNamespaces(ObserverContext<MasterCoprocessorEnvironment> ctx,
219       List<String> namespaces) throws IOException {
220   }
221 
222   @Override
223   public void preListNamespaceDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
224       List<NamespaceDescriptor> descriptors) throws IOException {
225   }
226 
227   @Override
228   public void postListNamespaceDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
229       List<NamespaceDescriptor> descriptors) throws IOException {
230   }
231 
232   @Override
233   public void preAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
234       TableName tableName, HColumnDescriptor column) throws IOException {
235   }
236 
237   @Override
238   public void postAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
239       TableName tableName, HColumnDescriptor column) throws IOException {
240   }
241 
242   @Override
243   public void preAddColumnHandler(
244       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
245       HColumnDescriptor column) throws IOException {
246   }
247 
248   @Override
249   public void postAddColumnHandler(
250       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
251       HColumnDescriptor column) throws IOException {
252   }
253 
254   @Override
255   public void preModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
256       TableName tableName, HColumnDescriptor descriptor) throws IOException {
257   }
258 
259   @Override
260   public void postModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
261       TableName tableName, HColumnDescriptor descriptor) throws IOException {
262   }
263 
264   @Override
265   public void preModifyColumnHandler(
266       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
267       HColumnDescriptor descriptor) throws IOException {
268   }
269 
270   @Override
271   public void postModifyColumnHandler(
272       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
273       HColumnDescriptor descriptor) throws IOException {
274   }
275 
276   @Override
277   public void preDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
278       TableName tableName, byte[] c) throws IOException {
279   }
280 
281   @Override
282   public void postDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
283       TableName tableName, byte[] c) throws IOException {
284   }
285 
286   @Override
287   public void preDeleteColumnHandler(
288       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
289       byte[] c) throws IOException {
290   }
291 
292   @Override
293   public void postDeleteColumnHandler(
294       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
295       byte[] c) throws IOException {
296   }
297 
298 
299   @Override
300   public void preEnableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
301       TableName tableName) throws IOException {
302   }
303 
304   @Override
305   public void postEnableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
306       TableName tableName) throws IOException {
307   }
308 
309   @Override
310   public void preEnableTableHandler(
311       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
312       throws IOException {
313   }
314 
315   @Override
316   public void postEnableTableHandler(
317       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
318       throws IOException {
319   }
320 
321   @Override
322   public void preDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
323       TableName tableName) throws IOException {
324   }
325 
326   @Override
327   public void postDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
328       TableName tableName) throws IOException {
329   }
330 
331   @Override
332   public void preDisableTableHandler(
333       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
334       throws IOException {
335   }
336 
337   @Override
338   public void postDisableTableHandler(
339       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
340       throws IOException {
341   }
342 
343   @Override
344   public void preAbortProcedure(
345       ObserverContext<MasterCoprocessorEnvironment> ctx,
346       final ProcedureExecutor<MasterProcedureEnv> procEnv,
347       final long procId) throws IOException {
348   }
349 
350   @Override
351   public void postAbortProcedure(ObserverContext<MasterCoprocessorEnvironment> ctx)
352       throws IOException {
353   }
354 
355   @Override
356   public void preListProcedures(ObserverContext<MasterCoprocessorEnvironment> ctx)
357       throws IOException {
358   }
359 
360   @Override
361   public void postListProcedures(
362       ObserverContext<MasterCoprocessorEnvironment> ctx,
363       List<ProcedureInfo> procInfoList) throws IOException {
364   }
365 
366   @Override
367   public void preAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
368       HRegionInfo regionInfo) throws IOException {
369   }
370 
371   @Override
372   public void postAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
373       HRegionInfo regionInfo) throws IOException {
374   }
375 
376   @Override
377   public void preUnassign(ObserverContext<MasterCoprocessorEnvironment> ctx,
378       HRegionInfo regionInfo, boolean force) throws IOException {
379   }
380 
381   @Override
382   public void postUnassign(ObserverContext<MasterCoprocessorEnvironment> ctx,
383       HRegionInfo regionInfo, boolean force) throws IOException {
384   }
385 
386   @Override
387   public void preRegionOffline(ObserverContext<MasterCoprocessorEnvironment> ctx,
388     HRegionInfo regionInfo) throws IOException {
389   }
390 
391   @Override
392   public void postRegionOffline(ObserverContext<MasterCoprocessorEnvironment> ctx,
393     HRegionInfo regionInfo) throws IOException {
394   }
395 
396   @Override
397   public boolean preSetSplitOrMergeEnabled(final ObserverContext<MasterCoprocessorEnvironment> ctx,
398       final boolean newValue, final Admin.MasterSwitchType switchType) throws IOException {
399     return false;
400   }
401 
402   @Override
403   public void postSetSplitOrMergeEnabled(final ObserverContext<MasterCoprocessorEnvironment> ctx,
404       final boolean newValue, final Admin.MasterSwitchType switchType) throws IOException {
405   }
406 
407   @Override
408   public void preBalance(ObserverContext<MasterCoprocessorEnvironment> ctx)
409       throws IOException {
410   }
411 
412   @Override
413   public void postBalance(ObserverContext<MasterCoprocessorEnvironment> ctx, List<RegionPlan> plans)
414       throws IOException {
415   }
416 
417   @Override
418   public boolean preBalanceSwitch(ObserverContext<MasterCoprocessorEnvironment> ctx,
419       boolean b) throws IOException {
420     return b;
421   }
422 
423   @Override
424   public void postBalanceSwitch(ObserverContext<MasterCoprocessorEnvironment> ctx,
425       boolean oldValue, boolean newValue) throws IOException {
426   }
427 
428   @Override
429   public void preShutdown(ObserverContext<MasterCoprocessorEnvironment> ctx)
430       throws IOException {
431   }
432 
433   @Override
434   public void preStopMaster(ObserverContext<MasterCoprocessorEnvironment> ctx)
435       throws IOException {
436   }
437 
438   @Override
439   public void postStartMaster(ObserverContext<MasterCoprocessorEnvironment> ctx)
440       throws IOException {
441   }
442 
443   @Override
444   public void preMasterInitialization(
445       ObserverContext<MasterCoprocessorEnvironment> ctx) throws IOException {
446   }
447 
448   @Override
449   public void start(CoprocessorEnvironment ctx) throws IOException {
450   }
451 
452   @Override
453   public void stop(CoprocessorEnvironment ctx) throws IOException {
454   }
455 
456   @Override
457   public void preMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
458       HRegionInfo region, ServerName srcServer, ServerName destServer)
459   throws IOException {
460   }
461 
462   @Override
463   public void postMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
464       HRegionInfo region, ServerName srcServer, ServerName destServer)
465   throws IOException {
466   }
467 
468   @Override
469   public void preSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
470       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
471       throws IOException {
472   }
473 
474   @Override
475   public void postSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
476       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
477       throws IOException {
478   }
479 
480   @Override
481   public void preListSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
482       final SnapshotDescription snapshot) throws IOException {
483   }
484 
485   @Override
486   public void postListSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
487       final SnapshotDescription snapshot) throws IOException {
488   }
489 
490   @Override
491   public void preCloneSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
492       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
493       throws IOException {
494   }
495 
496   @Override
497   public void postCloneSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
498       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
499       throws IOException {
500   }
501 
502   @Override
503   public void preRestoreSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
504       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
505       throws IOException {
506   }
507 
508   @Override
509   public void postRestoreSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
510       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
511       throws IOException {
512   }
513 
514   @Override
515   public void preDeleteSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
516       final SnapshotDescription snapshot) throws IOException {
517   }
518 
519   @Override
520   public void postDeleteSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
521       final SnapshotDescription snapshot) throws IOException {
522   }
523 
524   @Override
525   public void preGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
526       List<TableName> tableNamesList, List<HTableDescriptor> descriptors)
527       throws IOException {
528   }
529 
530   @Override
531   public void postGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
532       List<HTableDescriptor> descriptors) throws IOException {
533   }
534 
535 
536   @Override
537   public void preGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
538       List<TableName> tableNamesList, List<HTableDescriptor> descriptors, String regex)
539       throws IOException {
540   }
541 
542   @Override
543   public void postGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
544       List<TableName> tableNamesList, List<HTableDescriptor> descriptors,
545       String regex) throws IOException {
546   }
547 
548   @Override
549   public void preGetTableNames(ObserverContext<MasterCoprocessorEnvironment> ctx,
550       List<HTableDescriptor> descriptors, String regex) throws IOException {
551   }
552 
553   @Override
554   public void postGetTableNames(ObserverContext<MasterCoprocessorEnvironment> ctx,
555       List<HTableDescriptor> descriptors, String regex) throws IOException {
556   }
557 
558   @Override
559   public void preTableFlush(ObserverContext<MasterCoprocessorEnvironment> ctx,
560       TableName tableName) throws IOException {
561   }
562 
563   @Override
564   public void postTableFlush(ObserverContext<MasterCoprocessorEnvironment> ctx,
565       TableName tableName) throws IOException {
566   }
567 
568   @Override
569   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
570       final String userName, final Quotas quotas) throws IOException {
571   }
572 
573   @Override
574   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
575       final String userName, final Quotas quotas) throws IOException {
576   }
577 
578   @Override
579   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
580       final String userName, final TableName tableName, final Quotas quotas) throws IOException {
581   }
582 
583   @Override
584   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
585       final String userName, final TableName tableName, final Quotas quotas) throws IOException {
586   }
587 
588   @Override
589   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
590       final String userName, final String namespace, final Quotas quotas) throws IOException {
591   }
592 
593   @Override
594   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
595       final String userName, final String namespace, final Quotas quotas) throws IOException {
596   }
597 
598   @Override
599   public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
600       final TableName tableName, final Quotas quotas) throws IOException {
601   }
602 
603   @Override
604   public void postSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
605       final TableName tableName, final Quotas quotas) throws IOException {
606   }
607 
608   @Override
609   public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
610       final String namespace, final Quotas quotas) throws IOException {
611   }
612 
613   @Override
614   public void postSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
615       final String namespace, final Quotas quotas) throws IOException {
616   }
617 
618   @Override
619   public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<Address>
620       servers, String targetGroup) throws IOException {
621   }
622 
623   @Override
624   public void postMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<Address>
625       servers, String targetGroup) throws IOException {
626   }
627 
628   @Override
629   public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<TableName>
630       tables, String targetGroup) throws IOException {
631   }
632 
633   @Override
634   public void postMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,
635       Set<TableName> tables, String targetGroup) throws IOException {
636   }
637 
638   @Override
639   public void preMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,
640       Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {
641   }
642 
643   @Override
644   public void postMoveServersAndTables(ObserverContext<MasterCoprocessorEnvironment> ctx,
645       Set<Address> servers, Set<TableName> tables, String targetGroup) throws IOException {
646   }
647 
648   @Override
649   public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
650       throws IOException {
651   }
652 
653   @Override
654   public void postAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
655       throws IOException {
656   }
657 
658   @Override
659   public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
660       throws IOException {
661 
662   }
663 
664   @Override
665   public void postRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
666       throws IOException {
667   }
668 
669   @Override
670   public void preRemoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,
671       Set<Address> servers) throws IOException {
672   }
673 
674   @Override
675   public void postRemoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx,
676       Set<Address> servers) throws IOException {
677   }
678 
679   @Override
680   public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String groupName)
681       throws IOException {
682   }
683 
684   @Override
685   public void postBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,
686                                  String groupName, boolean balancerRan) throws IOException {
687   }
688 
689   @Override
690   public void preRenameRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,
691                                String oldName, String newName) throws IOException {
692   }
693 
694   @Override
695   public void postRenameRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,
696                                 String oldName, String newName) throws IOException {
697   }
698 }