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 com.google.common.net.HostAndPort;
23  
24  import java.io.IOException;
25  import java.util.List;
26  import java.util.Set;
27  
28  import org.apache.hadoop.hbase.CoprocessorEnvironment;
29  import org.apache.hadoop.hbase.HBaseInterfaceAudience;
30  import org.apache.hadoop.hbase.HColumnDescriptor;
31  import org.apache.hadoop.hbase.HRegionInfo;
32  import org.apache.hadoop.hbase.HTableDescriptor;
33  import org.apache.hadoop.hbase.NamespaceDescriptor;
34  import org.apache.hadoop.hbase.ProcedureInfo;
35  import org.apache.hadoop.hbase.ServerName;
36  import org.apache.hadoop.hbase.TableName;
37  import org.apache.hadoop.hbase.classification.InterfaceAudience;
38  import org.apache.hadoop.hbase.classification.InterfaceStability;
39  import org.apache.hadoop.hbase.client.Admin;
40  import org.apache.hadoop.hbase.master.RegionPlan;
41  import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;
42  import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
43  import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
44  import org.apache.hadoop.hbase.protobuf.generated.QuotaProtos.Quotas;
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 preDeleteTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
83        TableName tableName) throws IOException {
84    }
85  
86    @Override
87    public void postDeleteTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
88        TableName tableName) throws IOException {
89    }
90  
91    @Override
92    public void preDeleteTableHandler(
93        final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
94        throws IOException{
95    }
96  
97    @Override
98    public void postDeleteTableHandler(
99        final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
100       throws IOException {
101   }
102 
103   @Override
104   public void preTruncateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
105       TableName tableName) throws IOException {
106   }
107 
108   @Override
109   public void postTruncateTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
110       TableName tableName) throws IOException {
111   }
112 
113   @Override
114   public void preTruncateTableHandler(
115       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
116       throws IOException {
117   }
118 
119   @Override
120   public void postTruncateTableHandler(
121       final ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
122       throws IOException {
123   }
124 
125   @Override
126   public void preModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
127       TableName tableName, HTableDescriptor htd) throws IOException {
128   }
129 
130   @Override
131   public void postModifyTableHandler(
132       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
133       HTableDescriptor htd) throws IOException {
134   }
135 
136   @Override
137   public void preModifyTableHandler(
138       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
139       HTableDescriptor htd) throws IOException {
140   }
141 
142   @Override
143   public void postModifyTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
144       TableName tableName, HTableDescriptor htd) throws IOException {
145   }
146 
147   @Override
148   public void preCreateNamespace(
149       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
150           throws IOException {
151   }
152 
153   @Override
154   public void postCreateNamespace(
155       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
156           throws IOException {
157   }
158 
159   @Override
160   public void preDeleteNamespace(
161       ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace) throws IOException {
162   }
163 
164   @Override
165   public void postDeleteNamespace(
166       ObserverContext<MasterCoprocessorEnvironment> ctx, String namespace) throws IOException {
167   }
168 
169   @Override
170   public void preModifyNamespace(
171       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
172           throws IOException {
173   }
174 
175   @Override
176   public void postModifyNamespace(
177       ObserverContext<MasterCoprocessorEnvironment> ctx, NamespaceDescriptor ns)
178           throws IOException {
179   }
180 
181   @Override
182   public void preGetNamespaceDescriptor(ObserverContext<MasterCoprocessorEnvironment> ctx,
183       String namespace) throws IOException {
184   }
185 
186   @Override
187   public void postGetNamespaceDescriptor(ObserverContext<MasterCoprocessorEnvironment> ctx,
188       NamespaceDescriptor ns) throws IOException {
189   }
190 
191   @Override
192   public void preListNamespaceDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
193       List<NamespaceDescriptor> descriptors) throws IOException {
194   }
195 
196   @Override
197   public void postListNamespaceDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
198       List<NamespaceDescriptor> descriptors) throws IOException {
199   }
200 
201   @Deprecated
202   @Override
203   public void preAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
204       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
205   }
206 
207   @Override
208   public void preAddColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
209       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
210   }
211 
212   @Deprecated
213   @Override
214   public void postAddColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
215       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
216   }
217 
218   @Override
219   public void postAddColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
220       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
221   }
222 
223   @Deprecated
224   @Override
225   public void preAddColumnHandler(
226       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
227       HColumnDescriptor columnFamily) throws IOException {
228   }
229 
230   @Override
231   public void preAddColumnFamilyHandler(
232       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
233       HColumnDescriptor columnFamily) throws IOException {
234   }
235 
236   @Deprecated
237   @Override
238   public void postAddColumnHandler(
239       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
240       HColumnDescriptor columnFamily) throws IOException {
241   }
242 
243   @Override
244   public void postAddColumnFamilyHandler(
245       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
246       HColumnDescriptor columnFamily) throws IOException {
247   }
248 
249   @Deprecated
250   @Override
251   public void preModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
252       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
253   }
254 
255   @Override
256   public void preModifyColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
257       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
258   }
259 
260   @Deprecated
261   @Override
262   public void postModifyColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
263       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
264   }
265 
266   @Override
267   public void postModifyColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
268       TableName tableName, HColumnDescriptor columnFamily) throws IOException {
269   }
270 
271   @Deprecated
272   @Override
273   public void preModifyColumnHandler(
274       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
275       HColumnDescriptor columnFamily) throws IOException {
276   }
277 
278   @Override
279   public void preModifyColumnFamilyHandler(
280       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
281       HColumnDescriptor columnFamily) throws IOException {
282   }
283 
284   @Deprecated
285   @Override
286   public void postModifyColumnHandler(
287       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
288       HColumnDescriptor columnFamily) throws IOException {
289   }
290 
291   @Override
292   public void postModifyColumnFamilyHandler(
293       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
294       HColumnDescriptor columnFamily) throws IOException {
295   }
296 
297   @Deprecated
298   @Override
299   public void preDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
300       TableName tableName, byte[] columnFamily) throws IOException {
301   }
302 
303   @Override
304   public void preDeleteColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
305       TableName tableName, byte[] columnFamily) throws IOException {
306   }
307 
308   @Deprecated
309   @Override
310   public void postDeleteColumn(ObserverContext<MasterCoprocessorEnvironment> ctx,
311       TableName tableName, byte[] columnFamily) throws IOException {
312   }
313 
314   @Override
315   public void postDeleteColumnFamily(ObserverContext<MasterCoprocessorEnvironment> ctx,
316       TableName tableName, byte[] columnFamily) throws IOException {
317   }
318 
319   @Deprecated
320   @Override
321   public void preDeleteColumnHandler(
322       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
323       byte[] columnFamily) throws IOException {
324   }
325 
326   @Override
327   public void preDeleteColumnFamilyHandler(
328       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
329       byte[] columnFamily) throws IOException {
330   }
331 
332   @Deprecated
333   @Override
334   public void postDeleteColumnHandler(
335       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
336       byte[] columnFamily) throws IOException {
337   }
338 
339   @Override
340   public void postDeleteColumnFamilyHandler(
341       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName,
342       byte[] columnFamily) throws IOException {
343   }
344 
345 
346   @Override
347   public void preEnableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
348       TableName tableName) throws IOException {
349   }
350 
351   @Override
352   public void postEnableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
353       TableName tableName) throws IOException {
354   }
355 
356   @Override
357   public void preEnableTableHandler(
358       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
359       throws IOException {
360   }
361 
362   @Override
363   public void postEnableTableHandler(
364       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
365       throws IOException {
366   }
367 
368   @Override
369   public void preDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
370       TableName tableName) throws IOException {
371   }
372 
373   @Override
374   public void postDisableTable(ObserverContext<MasterCoprocessorEnvironment> ctx,
375       TableName tableName) throws IOException {
376   }
377 
378   @Override
379   public void preDisableTableHandler(
380       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
381       throws IOException {
382   }
383 
384   @Override
385   public void postDisableTableHandler(
386       ObserverContext<MasterCoprocessorEnvironment> ctx, TableName tableName)
387       throws IOException {
388   }
389 
390   @Override
391   public void preAbortProcedure(
392       ObserverContext<MasterCoprocessorEnvironment> ctx,
393       final ProcedureExecutor<MasterProcedureEnv> procEnv,
394       final long procId) throws IOException {
395   }
396 
397   @Override
398   public void postAbortProcedure(ObserverContext<MasterCoprocessorEnvironment> ctx)
399       throws IOException {
400   }
401 
402   @Override
403   public void preListProcedures(ObserverContext<MasterCoprocessorEnvironment> ctx)
404       throws IOException {
405   }
406 
407   @Override
408   public void postListProcedures(
409       ObserverContext<MasterCoprocessorEnvironment> ctx,
410       List<ProcedureInfo> procInfoList) throws IOException {
411   }
412 
413   @Override
414   public void preAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
415       HRegionInfo regionInfo) throws IOException {
416   }
417 
418   @Override
419   public void postAssign(ObserverContext<MasterCoprocessorEnvironment> ctx,
420       HRegionInfo regionInfo) throws IOException {
421   }
422 
423   @Override
424   public void preUnassign(ObserverContext<MasterCoprocessorEnvironment> ctx,
425       HRegionInfo regionInfo, boolean force) throws IOException {
426   }
427 
428   @Override
429   public void postUnassign(ObserverContext<MasterCoprocessorEnvironment> ctx,
430       HRegionInfo regionInfo, boolean force) throws IOException {
431   }
432 
433   @Override
434   public void preRegionOffline(ObserverContext<MasterCoprocessorEnvironment> ctx,
435     HRegionInfo regionInfo) throws IOException {
436   }
437 
438   @Override
439   public void postRegionOffline(ObserverContext<MasterCoprocessorEnvironment> ctx,
440     HRegionInfo regionInfo) throws IOException {
441   }
442 
443   @Override
444   public boolean preSetSplitOrMergeEnabled(final ObserverContext<MasterCoprocessorEnvironment> ctx,
445       final boolean newValue, final Admin.MasterSwitchType switchType) throws IOException {
446     return false;
447   }
448 
449   @Override
450   public void postSetSplitOrMergeEnabled(final ObserverContext<MasterCoprocessorEnvironment> ctx,
451       final boolean newValue, final Admin.MasterSwitchType switchType) throws IOException {
452   }
453 
454   @Override
455   public void preBalance(ObserverContext<MasterCoprocessorEnvironment> ctx)
456       throws IOException {
457   }
458 
459   @Override
460   public void postBalance(ObserverContext<MasterCoprocessorEnvironment> ctx, List<RegionPlan> plans)
461       throws IOException {
462   }
463 
464   @Override
465   public boolean preBalanceSwitch(ObserverContext<MasterCoprocessorEnvironment> ctx,
466       boolean b) throws IOException {
467     return b;
468   }
469 
470   @Override
471   public void postBalanceSwitch(ObserverContext<MasterCoprocessorEnvironment> ctx,
472       boolean oldValue, boolean newValue) throws IOException {
473   }
474 
475   @Override
476   public void preShutdown(ObserverContext<MasterCoprocessorEnvironment> ctx)
477       throws IOException {
478   }
479 
480   @Override
481   public void preStopMaster(ObserverContext<MasterCoprocessorEnvironment> ctx)
482       throws IOException {
483   }
484 
485   @Override
486   public void postStartMaster(ObserverContext<MasterCoprocessorEnvironment> ctx)
487       throws IOException {
488   }
489 
490   @Override
491   public void preMasterInitialization(
492       ObserverContext<MasterCoprocessorEnvironment> ctx) throws IOException {
493   }
494 
495   @Override
496   public void start(CoprocessorEnvironment ctx) throws IOException {
497   }
498 
499   @Override
500   public void stop(CoprocessorEnvironment ctx) throws IOException {
501   }
502 
503   @Override
504   public void preMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
505       HRegionInfo region, ServerName srcServer, ServerName destServer)
506   throws IOException {
507   }
508 
509   @Override
510   public void postMove(ObserverContext<MasterCoprocessorEnvironment> ctx,
511       HRegionInfo region, ServerName srcServer, ServerName destServer)
512   throws IOException {
513   }
514 
515   @Override
516   public void preSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
517       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
518       throws IOException {
519   }
520 
521   @Override
522   public void postSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
523       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
524       throws IOException {
525   }
526 
527   @Override
528   public void preListSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
529       final SnapshotDescription snapshot) throws IOException {
530   }
531 
532   @Override
533   public void postListSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
534       final SnapshotDescription snapshot) throws IOException {
535   }
536 
537   @Override
538   public void preCloneSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
539       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
540       throws IOException {
541   }
542 
543   @Override
544   public void postCloneSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
545       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
546       throws IOException {
547   }
548 
549   @Override
550   public void preRestoreSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
551       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
552       throws IOException {
553   }
554 
555   @Override
556   public void postRestoreSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
557       final SnapshotDescription snapshot, final HTableDescriptor hTableDescriptor)
558       throws IOException {
559   }
560 
561   @Override
562   public void preDeleteSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
563       final SnapshotDescription snapshot) throws IOException {
564   }
565 
566   @Override
567   public void postDeleteSnapshot(final ObserverContext<MasterCoprocessorEnvironment> ctx,
568       final SnapshotDescription snapshot) throws IOException {
569   }
570 
571   @Override
572   public void preGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
573       List<TableName> tableNamesList, List<HTableDescriptor> descriptors, String regex)
574       throws IOException {
575   }
576 
577   @Override
578   public void postGetTableDescriptors(ObserverContext<MasterCoprocessorEnvironment> ctx,
579       List<TableName> tableNamesList, List<HTableDescriptor> descriptors,
580       String regex) throws IOException {
581   }
582 
583   @Override
584   public void preGetTableNames(ObserverContext<MasterCoprocessorEnvironment> ctx,
585       List<HTableDescriptor> descriptors, String regex) throws IOException {
586   }
587 
588   @Override
589   public void postGetTableNames(ObserverContext<MasterCoprocessorEnvironment> ctx,
590       List<HTableDescriptor> descriptors, String regex) throws IOException {
591   }
592 
593   @Override
594   public void preTableFlush(ObserverContext<MasterCoprocessorEnvironment> ctx,
595       TableName tableName) throws IOException {
596   }
597 
598   @Override
599   public void postTableFlush(ObserverContext<MasterCoprocessorEnvironment> ctx,
600       TableName tableName) throws IOException {
601   }
602 
603   @Override
604   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
605       final String userName, final Quotas quotas) throws IOException {
606   }
607 
608   @Override
609   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
610       final String userName, final Quotas quotas) throws IOException {
611   }
612 
613   @Override
614   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
615       final String userName, final TableName tableName, final Quotas quotas) throws IOException {
616   }
617 
618   @Override
619   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
620       final String userName, final TableName tableName, final Quotas quotas) throws IOException {
621   }
622 
623   @Override
624   public void preSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
625       final String userName, final String namespace, final Quotas quotas) throws IOException {
626   }
627 
628   @Override
629   public void postSetUserQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
630       final String userName, final String namespace, final Quotas quotas) throws IOException {
631   }
632 
633   @Override
634   public void preSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
635       final TableName tableName, final Quotas quotas) throws IOException {
636   }
637 
638   @Override
639   public void postSetTableQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
640       final TableName tableName, final Quotas quotas) throws IOException {
641   }
642 
643   @Override
644   public void preSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
645       final String namespace, final Quotas quotas) throws IOException {
646   }
647 
648   @Override
649   public void postSetNamespaceQuota(final ObserverContext<MasterCoprocessorEnvironment> ctx,
650       final String namespace, final Quotas quotas) throws IOException {
651   }
652 
653   @Override
654   public void preMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<HostAndPort>
655       servers, String targetGroup) throws IOException {
656   }
657 
658   @Override
659   public void postMoveServers(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<HostAndPort>
660       servers, String targetGroup) throws IOException {
661   }
662 
663   @Override
664   public void preMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx, Set<TableName>
665       tables, String targetGroup) throws IOException {
666   }
667 
668   @Override
669   public void postMoveTables(ObserverContext<MasterCoprocessorEnvironment> ctx,
670       Set<TableName> tables, String targetGroup) throws IOException {
671   }
672 
673   @Override
674   public void preAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
675       throws IOException {
676   }
677 
678   @Override
679   public void postAddRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
680       throws IOException {
681   }
682 
683   @Override
684   public void preRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
685       throws IOException {
686 
687   }
688 
689   @Override
690   public void postRemoveRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String name)
691       throws IOException {
692   }
693 
694   @Override
695   public void preBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx, String groupName)
696       throws IOException {
697   }
698 
699   @Override
700   public void postBalanceRSGroup(ObserverContext<MasterCoprocessorEnvironment> ctx,
701                                  String groupName, boolean balancerRan) throws IOException {
702   }
703 }