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