1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.protobuf;
19
20 import java.io.IOException;
21 import java.util.List;
22
23 import com.google.protobuf.HBaseZeroCopyByteString;
24 import org.apache.hadoop.classification.InterfaceAudience;
25 import org.apache.hadoop.hbase.CellScannable;
26 import org.apache.hadoop.hbase.DoNotRetryIOException;
27 import org.apache.hadoop.hbase.HColumnDescriptor;
28 import org.apache.hadoop.hbase.HRegionInfo;
29 import org.apache.hadoop.hbase.HTableDescriptor;
30 import org.apache.hadoop.hbase.ServerName;
31 import org.apache.hadoop.hbase.TableName;
32 import org.apache.hadoop.hbase.client.Action;
33 import org.apache.hadoop.hbase.client.Append;
34 import org.apache.hadoop.hbase.client.Delete;
35 import org.apache.hadoop.hbase.client.Durability;
36 import org.apache.hadoop.hbase.client.Get;
37 import org.apache.hadoop.hbase.client.Increment;
38 import org.apache.hadoop.hbase.client.Mutation;
39 import org.apache.hadoop.hbase.client.Put;
40 import org.apache.hadoop.hbase.client.Row;
41 import org.apache.hadoop.hbase.client.RowMutations;
42 import org.apache.hadoop.hbase.client.Scan;
43 import org.apache.hadoop.hbase.exceptions.DeserializationException;
44 import org.apache.hadoop.hbase.filter.ByteArrayComparable;
45 import org.apache.hadoop.hbase.protobuf.generated.AccessControlProtos;
46 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CloseRegionRequest;
47 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.CompactRegionRequest;
48 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.FlushRegionRequest;
49 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetOnlineRegionRequest;
50 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoRequest;
51 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetServerInfoRequest;
52 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetStoreFileRequest;
53 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.MergeRegionsRequest;
54 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.OpenRegionRequest;
55 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.OpenRegionRequest.RegionOpenInfo;
56 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.RollWALWriterRequest;
57 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.SplitRegionRequest;
58 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.StopServerRequest;
59 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest;
60 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest.RegionUpdateInfo;
61 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;
62 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest;
63 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest.FamilyPath;
64 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Column;
65 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Condition;
66 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.GetRequest;
67 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutateRequest;
68 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto;
69 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.ColumnValue;
70 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.ColumnValue.QualifierValue;
71 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.MutationType;
72 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.RegionAction;
73 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanRequest;
74 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.CompareType;
75 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionSpecifier;
76 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;
77 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AddColumnRequest;
78 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AssignRegionRequest;
79 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.BalanceRequest;
80 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateTableRequest;
81 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteColumnRequest;
82 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteTableRequest;
83 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DisableTableRequest;
84 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DispatchMergingRegionsRequest;
85 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableCatalogJanitorRequest;
86 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.EnableTableRequest;
87 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetClusterStatusRequest;
88 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetSchemaAlterStatusRequest;
89 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.GetTableDescriptorsRequest;
90 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsCatalogJanitorEnabledRequest;
91 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsMasterRunningRequest;
92 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyColumnRequest;
93 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ModifyTableRequest;
94 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.MoveRegionRequest;
95 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.OfflineRegionRequest;
96 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.RunCatalogScanRequest;
97 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.SetBalancerRunningRequest;
98 import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.UnassignRegionRequest;
99 import org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;
100 import org.apache.hadoop.hbase.util.Bytes;
101 import org.apache.hadoop.hbase.util.Pair;
102 import org.apache.hadoop.hbase.util.Triple;
103
104 import com.google.protobuf.ByteString;
105
106
107
108
109
110 @InterfaceAudience.Private
111 public final class RequestConverter {
112
113 private RequestConverter() {
114 }
115
116
117
118
119
120
121
122
123
124
125
126
127
128 public static GetRequest buildGetRowOrBeforeRequest(
129 final byte[] regionName, final byte[] row, final byte[] family) {
130 GetRequest.Builder builder = GetRequest.newBuilder();
131 RegionSpecifier region = buildRegionSpecifier(
132 RegionSpecifierType.REGION_NAME, regionName);
133 builder.setRegion(region);
134
135 Column.Builder columnBuilder = Column.newBuilder();
136 columnBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
137 ClientProtos.Get.Builder getBuilder =
138 ClientProtos.Get.newBuilder();
139 getBuilder.setRow(HBaseZeroCopyByteString.wrap(row));
140 getBuilder.addColumn(columnBuilder.build());
141 getBuilder.setClosestRowBefore(true);
142 builder.setGet(getBuilder.build());
143 return builder.build();
144 }
145
146
147
148
149
150
151
152
153
154 public static GetRequest buildGetRequest(final byte[] regionName,
155 final Get get) throws IOException {
156 GetRequest.Builder builder = GetRequest.newBuilder();
157 RegionSpecifier region = buildRegionSpecifier(
158 RegionSpecifierType.REGION_NAME, regionName);
159 builder.setRegion(region);
160 builder.setGet(ProtobufUtil.toGet(get));
161 return builder.build();
162 }
163
164
165
166
167
168
169
170
171
172
173
174
175 public static MutateRequest buildMutateRequest(
176 final byte[] regionName, final byte[] row, final byte[] family,
177 final byte [] qualifier, final long amount, final Durability durability) {
178 MutateRequest.Builder builder = MutateRequest.newBuilder();
179 RegionSpecifier region = buildRegionSpecifier(
180 RegionSpecifierType.REGION_NAME, regionName);
181 builder.setRegion(region);
182
183 MutationProto.Builder mutateBuilder = MutationProto.newBuilder();
184 mutateBuilder.setRow(HBaseZeroCopyByteString.wrap(row));
185 mutateBuilder.setMutateType(MutationType.INCREMENT);
186 mutateBuilder.setDurability(ProtobufUtil.toDurability(durability));
187 ColumnValue.Builder columnBuilder = ColumnValue.newBuilder();
188 columnBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
189 QualifierValue.Builder valueBuilder = QualifierValue.newBuilder();
190 valueBuilder.setValue(HBaseZeroCopyByteString.wrap(Bytes.toBytes(amount)));
191 valueBuilder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
192 columnBuilder.addQualifierValue(valueBuilder.build());
193 mutateBuilder.addColumnValue(columnBuilder.build());
194 builder.setMutation(mutateBuilder.build());
195 return builder.build();
196 }
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211 public static MutateRequest buildMutateRequest(
212 final byte[] regionName, final byte[] row, final byte[] family,
213 final byte [] qualifier, final ByteArrayComparable comparator,
214 final CompareType compareType, final Put put) throws IOException {
215 MutateRequest.Builder builder = MutateRequest.newBuilder();
216 RegionSpecifier region = buildRegionSpecifier(
217 RegionSpecifierType.REGION_NAME, regionName);
218 builder.setRegion(region);
219 Condition condition = buildCondition(
220 row, family, qualifier, comparator, compareType);
221 builder.setMutation(ProtobufUtil.toMutation(MutationType.PUT, put, MutationProto.newBuilder()));
222 builder.setCondition(condition);
223 return builder.build();
224 }
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239 public static MutateRequest buildMutateRequest(
240 final byte[] regionName, final byte[] row, final byte[] family,
241 final byte [] qualifier, final ByteArrayComparable comparator,
242 final CompareType compareType, final Delete delete) throws IOException {
243 MutateRequest.Builder builder = MutateRequest.newBuilder();
244 RegionSpecifier region = buildRegionSpecifier(
245 RegionSpecifierType.REGION_NAME, regionName);
246 builder.setRegion(region);
247 Condition condition = buildCondition(
248 row, family, qualifier, comparator, compareType);
249 builder.setMutation(ProtobufUtil.toMutation(MutationType.DELETE, delete,
250 MutationProto.newBuilder()));
251 builder.setCondition(condition);
252 return builder.build();
253 }
254
255
256
257
258
259
260
261
262
263 public static MutateRequest buildMutateRequest(
264 final byte[] regionName, final Put put) throws IOException {
265 MutateRequest.Builder builder = MutateRequest.newBuilder();
266 RegionSpecifier region = buildRegionSpecifier(
267 RegionSpecifierType.REGION_NAME, regionName);
268 builder.setRegion(region);
269 builder.setMutation(ProtobufUtil.toMutation(MutationType.PUT, put, MutationProto.newBuilder()));
270 return builder.build();
271 }
272
273
274
275
276
277
278
279
280
281 public static MutateRequest buildMutateRequest(
282 final byte[] regionName, final Append append) throws IOException {
283 MutateRequest.Builder builder = MutateRequest.newBuilder();
284 RegionSpecifier region = buildRegionSpecifier(
285 RegionSpecifierType.REGION_NAME, regionName);
286 builder.setRegion(region);
287 builder.setMutation(ProtobufUtil.toMutation(MutationType.APPEND, append,
288 MutationProto.newBuilder()));
289 return builder.build();
290 }
291
292
293
294
295
296
297
298
299 public static MutateRequest buildMutateRequest(
300 final byte[] regionName, final Increment increment) {
301 MutateRequest.Builder builder = MutateRequest.newBuilder();
302 RegionSpecifier region = buildRegionSpecifier(
303 RegionSpecifierType.REGION_NAME, regionName);
304 builder.setRegion(region);
305 builder.setMutation(ProtobufUtil.toMutation(increment, MutationProto.newBuilder()));
306 return builder.build();
307 }
308
309
310
311
312
313
314
315
316
317 public static MutateRequest buildMutateRequest(
318 final byte[] regionName, final Delete delete) throws IOException {
319 MutateRequest.Builder builder = MutateRequest.newBuilder();
320 RegionSpecifier region = buildRegionSpecifier(
321 RegionSpecifierType.REGION_NAME, regionName);
322 builder.setRegion(region);
323 builder.setMutation(ProtobufUtil.toMutation(MutationType.DELETE, delete,
324 MutationProto.newBuilder()));
325 return builder.build();
326 }
327
328
329
330
331
332
333
334
335
336
337 public static RegionAction.Builder buildRegionAction(final byte [] regionName,
338 final RowMutations rowMutations)
339 throws IOException {
340 RegionAction.Builder builder =
341 getRegionActionBuilderWithRegion(RegionAction.newBuilder(), regionName);
342 ClientProtos.Action.Builder actionBuilder = ClientProtos.Action.newBuilder();
343 MutationProto.Builder mutationBuilder = MutationProto.newBuilder();
344 for (Mutation mutation: rowMutations.getMutations()) {
345 MutationType mutateType = null;
346 if (mutation instanceof Put) {
347 mutateType = MutationType.PUT;
348 } else if (mutation instanceof Delete) {
349 mutateType = MutationType.DELETE;
350 } else {
351 throw new DoNotRetryIOException("RowMutations supports only put and delete, not " +
352 mutation.getClass().getName());
353 }
354 mutationBuilder.clear();
355 MutationProto mp = ProtobufUtil.toMutation(mutateType, mutation, mutationBuilder);
356 actionBuilder.clear();
357 actionBuilder.setMutation(mp);
358 builder.addAction(actionBuilder.build());
359 }
360 return builder;
361 }
362
363
364
365
366
367
368
369
370
371
372
373
374 public static RegionAction.Builder buildNoDataRegionAction(final byte[] regionName,
375 final RowMutations rowMutations, final List<CellScannable> cells,
376 final RegionAction.Builder regionActionBuilder,
377 final ClientProtos.Action.Builder actionBuilder,
378 final MutationProto.Builder mutationBuilder)
379 throws IOException {
380 for (Mutation mutation: rowMutations.getMutations()) {
381 MutationType type = null;
382 if (mutation instanceof Put) {
383 type = MutationType.PUT;
384 } else if (mutation instanceof Delete) {
385 type = MutationType.DELETE;
386 } else {
387 throw new DoNotRetryIOException("RowMutations supports only put and delete, not " +
388 mutation.getClass().getName());
389 }
390 mutationBuilder.clear();
391 MutationProto mp = ProtobufUtil.toMutationNoData(type, mutation, mutationBuilder);
392 cells.add(mutation);
393 actionBuilder.clear();
394 regionActionBuilder.addAction(actionBuilder.setMutation(mp).build());
395 }
396 return regionActionBuilder;
397 }
398
399 private static RegionAction.Builder getRegionActionBuilderWithRegion(
400 final RegionAction.Builder regionActionBuilder, final byte [] regionName) {
401 RegionSpecifier region = buildRegionSpecifier(RegionSpecifierType.REGION_NAME, regionName);
402 regionActionBuilder.setRegion(region);
403 return regionActionBuilder;
404 }
405
406
407
408
409
410
411
412
413
414
415
416 public static ScanRequest buildScanRequest(final byte[] regionName,
417 final Scan scan, final int numberOfRows,
418 final boolean closeScanner) throws IOException {
419 ScanRequest.Builder builder = ScanRequest.newBuilder();
420 RegionSpecifier region = buildRegionSpecifier(
421 RegionSpecifierType.REGION_NAME, regionName);
422 builder.setNumberOfRows(numberOfRows);
423 builder.setCloseScanner(closeScanner);
424 builder.setRegion(region);
425 builder.setScan(ProtobufUtil.toScan(scan));
426 return builder.build();
427 }
428
429
430
431
432
433
434
435
436
437 public static ScanRequest buildScanRequest(final long scannerId,
438 final int numberOfRows, final boolean closeScanner) {
439 ScanRequest.Builder builder = ScanRequest.newBuilder();
440 builder.setNumberOfRows(numberOfRows);
441 builder.setCloseScanner(closeScanner);
442 builder.setScannerId(scannerId);
443 return builder.build();
444 }
445
446
447
448
449
450
451
452
453
454
455 public static ScanRequest buildScanRequest(final long scannerId, final int numberOfRows,
456 final boolean closeScanner, final long nextCallSeq) {
457 ScanRequest.Builder builder = ScanRequest.newBuilder();
458 builder.setNumberOfRows(numberOfRows);
459 builder.setCloseScanner(closeScanner);
460 builder.setScannerId(scannerId);
461 builder.setNextCallSeq(nextCallSeq);
462 return builder.build();
463 }
464
465
466
467
468
469
470
471
472
473 public static BulkLoadHFileRequest buildBulkLoadHFileRequest(
474 final List<Pair<byte[], String>> familyPaths,
475 final byte[] regionName, boolean assignSeqNum) {
476 BulkLoadHFileRequest.Builder builder = BulkLoadHFileRequest.newBuilder();
477 RegionSpecifier region = buildRegionSpecifier(
478 RegionSpecifierType.REGION_NAME, regionName);
479 builder.setRegion(region);
480 FamilyPath.Builder familyPathBuilder = FamilyPath.newBuilder();
481 for (Pair<byte[], String> familyPath: familyPaths) {
482 familyPathBuilder.setFamily(HBaseZeroCopyByteString.wrap(familyPath.getFirst()));
483 familyPathBuilder.setPath(familyPath.getSecond());
484 builder.addFamilyPath(familyPathBuilder.build());
485 }
486 builder.setAssignSeqNum(assignSeqNum);
487 return builder.build();
488 }
489
490
491
492
493
494
495
496
497
498
499 public static <R> RegionAction.Builder buildRegionAction(final byte[] regionName,
500 final List<Action<R>> actions, final RegionAction.Builder regionActionBuilder,
501 final ClientProtos.Action.Builder actionBuilder,
502 final MutationProto.Builder mutationBuilder)
503 throws IOException {
504 for (Action<R> action: actions) {
505 Row row = action.getAction();
506 actionBuilder.clear();
507 actionBuilder.setIndex(action.getOriginalIndex());
508 mutationBuilder.clear();
509 if (row instanceof Get) {
510 Get g = (Get)row;
511 regionActionBuilder.addAction(actionBuilder.setGet(ProtobufUtil.toGet(g)));
512 } else if (row instanceof Put) {
513 regionActionBuilder.addAction(actionBuilder.
514 setMutation(ProtobufUtil.toMutation(MutationType.PUT, (Put)row, mutationBuilder)));
515 } else if (row instanceof Delete) {
516 regionActionBuilder.addAction(actionBuilder.
517 setMutation(ProtobufUtil.toMutation(MutationType.DELETE, (Delete)row, mutationBuilder)));
518 } else if (row instanceof Append) {
519 regionActionBuilder.addAction(actionBuilder.
520 setMutation(ProtobufUtil.toMutation(MutationType.APPEND, (Append)row, mutationBuilder)));
521 } else if (row instanceof Increment) {
522 regionActionBuilder.addAction(actionBuilder.
523 setMutation(ProtobufUtil.toMutation((Increment)row, mutationBuilder)));
524 } else if (row instanceof RowMutations) {
525 throw new UnsupportedOperationException("No RowMutations in multi calls; use mutateRow");
526 } else {
527 throw new DoNotRetryIOException("Multi doesn't support " + row.getClass().getName());
528 }
529 }
530 return regionActionBuilder;
531 }
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549 public static <R> RegionAction.Builder buildNoDataRegionAction(final byte[] regionName,
550 final List<Action<R>> actions, final List<CellScannable> cells,
551 final RegionAction.Builder regionActionBuilder,
552 final ClientProtos.Action.Builder actionBuilder,
553 final MutationProto.Builder mutationBuilder)
554 throws IOException {
555 RegionAction.Builder builder =
556 getRegionActionBuilderWithRegion(RegionAction.newBuilder(), regionName);
557 for (Action<R> action: actions) {
558 Row row = action.getAction();
559 actionBuilder.clear();
560 actionBuilder.setIndex(action.getOriginalIndex());
561 mutationBuilder.clear();
562 if (row instanceof Get) {
563 Get g = (Get)row;
564 builder.addAction(actionBuilder.setGet(ProtobufUtil.toGet(g)));
565 } else if (row instanceof Put) {
566 Put p = (Put)row;
567 cells.add(p);
568 builder.addAction(actionBuilder.
569 setMutation(ProtobufUtil.toMutationNoData(MutationType.PUT, p, mutationBuilder)));
570 } else if (row instanceof Delete) {
571 Delete d = (Delete)row;
572 int size = d.size();
573
574
575
576
577
578 if (size > 0) {
579 cells.add(d);
580 builder.addAction(actionBuilder.
581 setMutation(ProtobufUtil.toMutationNoData(MutationType.DELETE, d, mutationBuilder)));
582 } else {
583 builder.addAction(actionBuilder.
584 setMutation(ProtobufUtil.toMutation(MutationType.DELETE, d, mutationBuilder)));
585 }
586 } else if (row instanceof Append) {
587 Append a = (Append)row;
588 cells.add(a);
589 builder.addAction(actionBuilder.
590 setMutation(ProtobufUtil.toMutationNoData(MutationType.APPEND, a, mutationBuilder)));
591 } else if (row instanceof Increment) {
592 Increment i = (Increment)row;
593 cells.add(i);
594 builder.addAction(actionBuilder.
595 setMutation(ProtobufUtil.toMutationNoData(MutationType.INCREMENT, i, mutationBuilder)));
596 } else if (row instanceof RowMutations) {
597 continue;
598 } else {
599 throw new DoNotRetryIOException("Multi doesn't support " + row.getClass().getName());
600 }
601 }
602 return builder;
603 }
604
605
606
607
608
609
610
611
612
613
614 public static GetRegionInfoRequest
615 buildGetRegionInfoRequest(final byte[] regionName) {
616 return buildGetRegionInfoRequest(regionName, false);
617 }
618
619
620
621
622
623
624
625
626 public static GetRegionInfoRequest
627 buildGetRegionInfoRequest(final byte[] regionName,
628 final boolean includeCompactionState) {
629 GetRegionInfoRequest.Builder builder = GetRegionInfoRequest.newBuilder();
630 RegionSpecifier region = buildRegionSpecifier(
631 RegionSpecifierType.REGION_NAME, regionName);
632 builder.setRegion(region);
633 if (includeCompactionState) {
634 builder.setCompactionState(includeCompactionState);
635 }
636 return builder.build();
637 }
638
639
640
641
642
643
644
645
646 public static GetStoreFileRequest
647 buildGetStoreFileRequest(final byte[] regionName, final byte[] family) {
648 GetStoreFileRequest.Builder builder = GetStoreFileRequest.newBuilder();
649 RegionSpecifier region = buildRegionSpecifier(
650 RegionSpecifierType.REGION_NAME, regionName);
651 builder.setRegion(region);
652 builder.addFamily(HBaseZeroCopyByteString.wrap(family));
653 return builder.build();
654 }
655
656
657
658
659
660
661 public static GetOnlineRegionRequest buildGetOnlineRegionRequest() {
662 return GetOnlineRegionRequest.newBuilder().build();
663 }
664
665
666
667
668
669
670
671 public static FlushRegionRequest
672 buildFlushRegionRequest(final byte[] regionName) {
673 FlushRegionRequest.Builder builder = FlushRegionRequest.newBuilder();
674 RegionSpecifier region = buildRegionSpecifier(
675 RegionSpecifierType.REGION_NAME, regionName);
676 builder.setRegion(region);
677 return builder.build();
678 }
679
680
681
682
683
684
685
686 public static OpenRegionRequest
687 buildOpenRegionRequest(final List<Triple<HRegionInfo, Integer,
688 List<ServerName>>> regionOpenInfos) {
689 OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder();
690 for (Triple<HRegionInfo, Integer, List<ServerName>> regionOpenInfo: regionOpenInfos) {
691 Integer second = regionOpenInfo.getSecond();
692 int versionOfOfflineNode = second == null ? -1 : second.intValue();
693 builder.addOpenInfo(buildRegionOpenInfo(
694 regionOpenInfo.getFirst(), versionOfOfflineNode, regionOpenInfo.getThird()));
695 }
696 return builder.build();
697 }
698
699
700
701
702
703
704
705
706
707
708 public static OpenRegionRequest buildOpenRegionRequest(ServerName server,
709 final HRegionInfo region, final int versionOfOfflineNode, List<ServerName> favoredNodes) {
710 OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder();
711 builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode, favoredNodes));
712 if (server != null) {
713 builder.setServerStartCode(server.getStartcode());
714 }
715 return builder.build();
716 }
717
718
719
720
721
722
723 public static UpdateFavoredNodesRequest buildUpdateFavoredNodesRequest(
724 final List<Pair<HRegionInfo, List<ServerName>>> updateRegionInfos) {
725 UpdateFavoredNodesRequest.Builder ubuilder = UpdateFavoredNodesRequest.newBuilder();
726 for (Pair<HRegionInfo, List<ServerName>> pair : updateRegionInfos) {
727 RegionUpdateInfo.Builder builder = RegionUpdateInfo.newBuilder();
728 builder.setRegion(HRegionInfo.convert(pair.getFirst()));
729 for (ServerName server : pair.getSecond()) {
730 builder.addFavoredNodes(ProtobufUtil.toServerName(server));
731 }
732 ubuilder.addUpdateInfo(builder.build());
733 }
734 return ubuilder.build();
735 }
736
737
738
739
740
741
742
743
744 public static CloseRegionRequest buildCloseRegionRequest(ServerName server,
745 final byte[] regionName, final boolean transitionInZK) {
746 CloseRegionRequest.Builder builder = CloseRegionRequest.newBuilder();
747 RegionSpecifier region = buildRegionSpecifier(
748 RegionSpecifierType.REGION_NAME, regionName);
749 builder.setRegion(region);
750 builder.setTransitionInZK(transitionInZK);
751 if (server != null) {
752 builder.setServerStartCode(server.getStartcode());
753 }
754 return builder.build();
755 }
756
757 public static CloseRegionRequest buildCloseRegionRequest(ServerName server,
758 final byte[] regionName, final int versionOfClosingNode,
759 ServerName destinationServer, final boolean transitionInZK) {
760 CloseRegionRequest.Builder builder = CloseRegionRequest.newBuilder();
761 RegionSpecifier region = buildRegionSpecifier(
762 RegionSpecifierType.REGION_NAME, regionName);
763 builder.setRegion(region);
764 builder.setVersionOfClosingNode(versionOfClosingNode);
765 builder.setTransitionInZK(transitionInZK);
766 if (destinationServer != null){
767 builder.setDestinationServer(ProtobufUtil.toServerName( destinationServer) );
768 }
769 if (server != null) {
770 builder.setServerStartCode(server.getStartcode());
771 }
772 return builder.build();
773 }
774
775
776
777
778
779
780
781
782 public static CloseRegionRequest
783 buildCloseRegionRequest(ServerName server, final String encodedRegionName,
784 final boolean transitionInZK) {
785 CloseRegionRequest.Builder builder = CloseRegionRequest.newBuilder();
786 RegionSpecifier region = buildRegionSpecifier(
787 RegionSpecifierType.ENCODED_REGION_NAME,
788 Bytes.toBytes(encodedRegionName));
789 builder.setRegion(region);
790 builder.setTransitionInZK(transitionInZK);
791 if (server != null) {
792 builder.setServerStartCode(server.getStartcode());
793 }
794 return builder.build();
795 }
796
797
798
799
800
801
802
803
804 public static SplitRegionRequest buildSplitRegionRequest(
805 final byte[] regionName, final byte[] splitPoint) {
806 SplitRegionRequest.Builder builder = SplitRegionRequest.newBuilder();
807 RegionSpecifier region = buildRegionSpecifier(
808 RegionSpecifierType.REGION_NAME, regionName);
809 builder.setRegion(region);
810 if (splitPoint != null) {
811 builder.setSplitPoint(HBaseZeroCopyByteString.wrap(splitPoint));
812 }
813 return builder.build();
814 }
815
816
817
818
819
820
821
822
823 public static MergeRegionsRequest buildMergeRegionsRequest(
824 final byte[] regionA, final byte[] regionB, final boolean forcible) {
825 MergeRegionsRequest.Builder builder = MergeRegionsRequest.newBuilder();
826 RegionSpecifier regionASpecifier = buildRegionSpecifier(
827 RegionSpecifierType.REGION_NAME, regionA);
828 RegionSpecifier regionBSpecifier = buildRegionSpecifier(
829 RegionSpecifierType.REGION_NAME, regionB);
830 builder.setRegionA(regionASpecifier);
831 builder.setRegionB(regionBSpecifier);
832 builder.setForcible(forcible);
833 return builder.build();
834 }
835
836
837
838
839
840
841
842
843 public static CompactRegionRequest buildCompactRegionRequest(
844 final byte[] regionName, final boolean major, final byte [] family) {
845 CompactRegionRequest.Builder builder = CompactRegionRequest.newBuilder();
846 RegionSpecifier region = buildRegionSpecifier(
847 RegionSpecifierType.REGION_NAME, regionName);
848 builder.setRegion(region);
849 builder.setMajor(major);
850 if (family != null) {
851 builder.setFamily(HBaseZeroCopyByteString.wrap(family));
852 }
853 return builder.build();
854 }
855
856
857
858
859 private static RollWALWriterRequest ROLL_WAL_WRITER_REQUEST =
860 RollWALWriterRequest.newBuilder().build();
861
862
863
864
865
866
867 public static RollWALWriterRequest buildRollWALWriterRequest() {
868 return ROLL_WAL_WRITER_REQUEST;
869 }
870
871
872
873
874 private static GetServerInfoRequest GET_SERVER_INFO_REQUEST =
875 GetServerInfoRequest.newBuilder().build();
876
877
878
879
880
881
882 public static GetServerInfoRequest buildGetServerInfoRequest() {
883 return GET_SERVER_INFO_REQUEST;
884 }
885
886
887
888
889
890
891
892 public static StopServerRequest buildStopServerRequest(final String reason) {
893 StopServerRequest.Builder builder = StopServerRequest.newBuilder();
894 builder.setReason(reason);
895 return builder.build();
896 }
897
898
899
900
901
902
903
904
905
906
907 public static RegionSpecifier buildRegionSpecifier(
908 final RegionSpecifierType type, final byte[] value) {
909 RegionSpecifier.Builder regionBuilder = RegionSpecifier.newBuilder();
910 regionBuilder.setValue(HBaseZeroCopyByteString.wrap(value));
911 regionBuilder.setType(type);
912 return regionBuilder.build();
913 }
914
915
916
917
918
919
920
921
922
923
924
925
926 private static Condition buildCondition(final byte[] row,
927 final byte[] family, final byte [] qualifier,
928 final ByteArrayComparable comparator,
929 final CompareType compareType) throws IOException {
930 Condition.Builder builder = Condition.newBuilder();
931 builder.setRow(HBaseZeroCopyByteString.wrap(row));
932 builder.setFamily(HBaseZeroCopyByteString.wrap(family));
933 builder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
934 builder.setComparator(ProtobufUtil.toComparator(comparator));
935 builder.setCompareType(compareType);
936 return builder.build();
937 }
938
939
940
941
942
943
944
945
946 public static AddColumnRequest buildAddColumnRequest(
947 final TableName tableName, final HColumnDescriptor column) {
948 AddColumnRequest.Builder builder = AddColumnRequest.newBuilder();
949 builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
950 builder.setColumnFamilies(column.convert());
951 return builder.build();
952 }
953
954
955
956
957
958
959
960
961 public static DeleteColumnRequest buildDeleteColumnRequest(
962 final TableName tableName, final byte [] columnName) {
963 DeleteColumnRequest.Builder builder = DeleteColumnRequest.newBuilder();
964 builder.setTableName(ProtobufUtil.toProtoTableName((tableName)));
965 builder.setColumnName(HBaseZeroCopyByteString.wrap(columnName));
966 return builder.build();
967 }
968
969
970
971
972
973
974
975
976 public static ModifyColumnRequest buildModifyColumnRequest(
977 final TableName tableName, final HColumnDescriptor column) {
978 ModifyColumnRequest.Builder builder = ModifyColumnRequest.newBuilder();
979 builder.setTableName(ProtobufUtil.toProtoTableName((tableName)));
980 builder.setColumnFamilies(column.convert());
981 return builder.build();
982 }
983
984
985
986
987
988
989
990
991
992 public static MoveRegionRequest buildMoveRegionRequest(
993 final byte [] encodedRegionName, final byte [] destServerName) throws
994 DeserializationException {
995 MoveRegionRequest.Builder builder = MoveRegionRequest.newBuilder();
996 builder.setRegion(
997 buildRegionSpecifier(RegionSpecifierType.ENCODED_REGION_NAME,encodedRegionName));
998 if (destServerName != null) {
999 builder.setDestServerName(
1000 ProtobufUtil.toServerName(ServerName.valueOf(Bytes.toString(destServerName))));
1001 }
1002 return builder.build();
1003 }
1004
1005 public static DispatchMergingRegionsRequest buildDispatchMergingRegionsRequest(
1006 final byte[] encodedNameOfRegionA, final byte[] encodedNameOfRegionB,
1007 final boolean forcible) throws DeserializationException {
1008 DispatchMergingRegionsRequest.Builder builder = DispatchMergingRegionsRequest.newBuilder();
1009 builder.setRegionA(buildRegionSpecifier(
1010 RegionSpecifierType.ENCODED_REGION_NAME, encodedNameOfRegionA));
1011 builder.setRegionB(buildRegionSpecifier(
1012 RegionSpecifierType.ENCODED_REGION_NAME, encodedNameOfRegionB));
1013 builder.setForcible(forcible);
1014 return builder.build();
1015 }
1016
1017
1018
1019
1020
1021
1022
1023 public static AssignRegionRequest buildAssignRegionRequest(final byte [] regionName) {
1024 AssignRegionRequest.Builder builder = AssignRegionRequest.newBuilder();
1025 builder.setRegion(buildRegionSpecifier(RegionSpecifierType.REGION_NAME,regionName));
1026 return builder.build();
1027 }
1028
1029
1030
1031
1032
1033
1034
1035
1036 public static UnassignRegionRequest buildUnassignRegionRequest(
1037 final byte [] regionName, final boolean force) {
1038 UnassignRegionRequest.Builder builder = UnassignRegionRequest.newBuilder();
1039 builder.setRegion(buildRegionSpecifier(RegionSpecifierType.REGION_NAME,regionName));
1040 builder.setForce(force);
1041 return builder.build();
1042 }
1043
1044
1045
1046
1047
1048
1049
1050 public static OfflineRegionRequest buildOfflineRegionRequest(final byte [] regionName) {
1051 OfflineRegionRequest.Builder builder = OfflineRegionRequest.newBuilder();
1052 builder.setRegion(buildRegionSpecifier(RegionSpecifierType.REGION_NAME,regionName));
1053 return builder.build();
1054 }
1055
1056
1057
1058
1059
1060
1061
1062 public static DeleteTableRequest buildDeleteTableRequest(final TableName tableName) {
1063 DeleteTableRequest.Builder builder = DeleteTableRequest.newBuilder();
1064 builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
1065 return builder.build();
1066 }
1067
1068
1069
1070
1071
1072
1073
1074 public static EnableTableRequest buildEnableTableRequest(final TableName tableName) {
1075 EnableTableRequest.Builder builder = EnableTableRequest.newBuilder();
1076 builder.setTableName(ProtobufUtil.toProtoTableName(tableName));
1077 return builder.build();
1078 }
1079
1080
1081
1082
1083
1084
1085
1086 public static DisableTableRequest buildDisableTableRequest(final TableName tableName) {
1087 DisableTableRequest.Builder builder = DisableTableRequest.newBuilder();
1088 builder.setTableName(ProtobufUtil.toProtoTableName((tableName)));
1089 return builder.build();
1090 }
1091
1092
1093
1094
1095
1096
1097
1098
1099 public static CreateTableRequest buildCreateTableRequest(
1100 final HTableDescriptor hTableDesc, final byte [][] splitKeys) {
1101 CreateTableRequest.Builder builder = CreateTableRequest.newBuilder();
1102 builder.setTableSchema(hTableDesc.convert());
1103 if (splitKeys != null) {
1104 for (byte [] splitKey : splitKeys) {
1105 builder.addSplitKeys(HBaseZeroCopyByteString.wrap(splitKey));
1106 }
1107 }
1108 return builder.build();
1109 }
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119 public static ModifyTableRequest buildModifyTableRequest(
1120 final TableName tableName, final HTableDescriptor hTableDesc) {
1121 ModifyTableRequest.Builder builder = ModifyTableRequest.newBuilder();
1122 builder.setTableName(ProtobufUtil.toProtoTableName((tableName)));
1123 builder.setTableSchema(hTableDesc.convert());
1124 return builder.build();
1125 }
1126
1127
1128
1129
1130
1131
1132
1133 public static GetSchemaAlterStatusRequest buildGetSchemaAlterStatusRequest(
1134 final TableName tableName) {
1135 GetSchemaAlterStatusRequest.Builder builder = GetSchemaAlterStatusRequest.newBuilder();
1136 builder.setTableName(ProtobufUtil.toProtoTableName((tableName)));
1137 return builder.build();
1138 }
1139
1140
1141
1142
1143
1144
1145
1146 public static GetTableDescriptorsRequest buildGetTableDescriptorsRequest(
1147 final List<TableName> tableNames) {
1148 GetTableDescriptorsRequest.Builder builder = GetTableDescriptorsRequest.newBuilder();
1149 if (tableNames != null) {
1150 for (TableName tableName : tableNames) {
1151 builder.addTableNames(ProtobufUtil.toProtoTableName(tableName));
1152 }
1153 }
1154 return builder.build();
1155 }
1156
1157
1158
1159
1160
1161
1162
1163 public static GetTableDescriptorsRequest buildGetTableDescriptorsRequest(
1164 final TableName tableName) {
1165 return GetTableDescriptorsRequest.newBuilder()
1166 .addTableNames(ProtobufUtil.toProtoTableName(tableName))
1167 .build();
1168 }
1169
1170
1171
1172
1173
1174
1175 public static IsMasterRunningRequest buildIsMasterRunningRequest() {
1176 return IsMasterRunningRequest.newBuilder().build();
1177 }
1178
1179
1180
1181
1182
1183
1184 public static BalanceRequest buildBalanceRequest() {
1185 return BalanceRequest.newBuilder().build();
1186 }
1187
1188
1189
1190
1191
1192
1193
1194
1195 public static SetBalancerRunningRequest buildSetBalancerRunningRequest(boolean on, boolean synchronous) {
1196 return SetBalancerRunningRequest.newBuilder().setOn(on).setSynchronous(synchronous).build();
1197 }
1198
1199
1200
1201
1202 private static final GetClusterStatusRequest GET_CLUSTER_STATUS_REQUEST =
1203 GetClusterStatusRequest.newBuilder().build();
1204
1205
1206
1207
1208
1209
1210 public static GetClusterStatusRequest buildGetClusterStatusRequest() {
1211 return GET_CLUSTER_STATUS_REQUEST;
1212 }
1213
1214
1215
1216
1217 private static final RunCatalogScanRequest CATALOG_SCAN_REQUEST =
1218 RunCatalogScanRequest.newBuilder().build();
1219
1220
1221
1222
1223
1224 public static RunCatalogScanRequest buildCatalogScanRequest() {
1225 return CATALOG_SCAN_REQUEST;
1226 }
1227
1228
1229
1230
1231
1232 public static EnableCatalogJanitorRequest buildEnableCatalogJanitorRequest(boolean enable) {
1233 return EnableCatalogJanitorRequest.newBuilder().setEnable(enable).build();
1234 }
1235
1236
1237
1238
1239 private static final IsCatalogJanitorEnabledRequest IS_CATALOG_JANITOR_ENABLED_REQUEST =
1240 IsCatalogJanitorEnabledRequest.newBuilder().build();
1241
1242
1243
1244
1245
1246 public static IsCatalogJanitorEnabledRequest buildIsCatalogJanitorEnabledRequest() {
1247 return IS_CATALOG_JANITOR_ENABLED_REQUEST;
1248 }
1249
1250
1251
1252
1253
1254
1255 public static GetLastFlushedSequenceIdRequest buildGetLastFlushedSequenceIdRequest(
1256 byte[] regionName) {
1257 return GetLastFlushedSequenceIdRequest.newBuilder().setRegionName(
1258 HBaseZeroCopyByteString.wrap(regionName)).build();
1259 }
1260
1261
1262
1263
1264
1265
1266
1267
1268 public static AccessControlProtos.GrantRequest buildGrantRequest(
1269 String username, AccessControlProtos.Permission.Action... actions) {
1270 AccessControlProtos.Permission.Builder ret =
1271 AccessControlProtos.Permission.newBuilder();
1272 AccessControlProtos.GlobalPermission.Builder permissionBuilder =
1273 AccessControlProtos.GlobalPermission.newBuilder();
1274 for (AccessControlProtos.Permission.Action a : actions) {
1275 permissionBuilder.addAction(a);
1276 }
1277 ret.setType(AccessControlProtos.Permission.Type.Global)
1278 .setGlobalPermission(permissionBuilder);
1279 return AccessControlProtos.GrantRequest.newBuilder()
1280 .setUserPermission(
1281 AccessControlProtos.UserPermission.newBuilder()
1282 .setUser(ByteString.copyFromUtf8(username))
1283 .setPermission(ret)
1284 ).build();
1285 }
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297 public static AccessControlProtos.GrantRequest buildGrantRequest(
1298 String username, TableName tableName, byte[] family, byte[] qualifier,
1299 AccessControlProtos.Permission.Action... actions) {
1300 AccessControlProtos.Permission.Builder ret =
1301 AccessControlProtos.Permission.newBuilder();
1302 AccessControlProtos.TablePermission.Builder permissionBuilder =
1303 AccessControlProtos.TablePermission.newBuilder();
1304 for (AccessControlProtos.Permission.Action a : actions) {
1305 permissionBuilder.addAction(a);
1306 }
1307 if (tableName == null) {
1308 throw new NullPointerException("TableName cannot be null");
1309 }
1310 permissionBuilder.setTableName(ProtobufUtil.toProtoTableName(tableName));
1311
1312 if (family != null) {
1313 permissionBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
1314 }
1315 if (qualifier != null) {
1316 permissionBuilder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
1317 }
1318 ret.setType(AccessControlProtos.Permission.Type.Table)
1319 .setTablePermission(permissionBuilder);
1320 return AccessControlProtos.GrantRequest.newBuilder()
1321 .setUserPermission(
1322 AccessControlProtos.UserPermission.newBuilder()
1323 .setUser(ByteString.copyFromUtf8(username))
1324 .setPermission(ret)
1325 ).build();
1326 }
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336 public static AccessControlProtos.GrantRequest buildGrantRequest(
1337 String username, String namespace,
1338 AccessControlProtos.Permission.Action... actions) {
1339 AccessControlProtos.Permission.Builder ret =
1340 AccessControlProtos.Permission.newBuilder();
1341 AccessControlProtos.NamespacePermission.Builder permissionBuilder =
1342 AccessControlProtos.NamespacePermission.newBuilder();
1343 for (AccessControlProtos.Permission.Action a : actions) {
1344 permissionBuilder.addAction(a);
1345 }
1346 if (namespace != null) {
1347 permissionBuilder.setNamespaceName(ByteString.copyFromUtf8(namespace));
1348 }
1349 ret.setType(AccessControlProtos.Permission.Type.Namespace)
1350 .setNamespacePermission(permissionBuilder);
1351 return AccessControlProtos.GrantRequest.newBuilder()
1352 .setUserPermission(
1353 AccessControlProtos.UserPermission.newBuilder()
1354 .setUser(ByteString.copyFromUtf8(username))
1355 .setPermission(ret)
1356 ).build();
1357 }
1358
1359
1360
1361
1362
1363
1364
1365
1366 public static AccessControlProtos.RevokeRequest buildRevokeRequest(
1367 String username, AccessControlProtos.Permission.Action... actions) {
1368 AccessControlProtos.Permission.Builder ret =
1369 AccessControlProtos.Permission.newBuilder();
1370 AccessControlProtos.GlobalPermission.Builder permissionBuilder =
1371 AccessControlProtos.GlobalPermission.newBuilder();
1372 for (AccessControlProtos.Permission.Action a : actions) {
1373 permissionBuilder.addAction(a);
1374 }
1375 ret.setType(AccessControlProtos.Permission.Type.Global)
1376 .setGlobalPermission(permissionBuilder);
1377 return AccessControlProtos.RevokeRequest.newBuilder()
1378 .setUserPermission(
1379 AccessControlProtos.UserPermission.newBuilder()
1380 .setUser(ByteString.copyFromUtf8(username))
1381 .setPermission(ret)
1382 ).build();
1383 }
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395 public static AccessControlProtos.RevokeRequest buildRevokeRequest(
1396 String username, TableName tableName, byte[] family, byte[] qualifier,
1397 AccessControlProtos.Permission.Action... actions) {
1398 AccessControlProtos.Permission.Builder ret =
1399 AccessControlProtos.Permission.newBuilder();
1400 AccessControlProtos.TablePermission.Builder permissionBuilder =
1401 AccessControlProtos.TablePermission.newBuilder();
1402 for (AccessControlProtos.Permission.Action a : actions) {
1403 permissionBuilder.addAction(a);
1404 }
1405 if (tableName != null) {
1406 permissionBuilder.setTableName(ProtobufUtil.toProtoTableName(tableName));
1407 }
1408 if (family != null) {
1409 permissionBuilder.setFamily(HBaseZeroCopyByteString.wrap(family));
1410 }
1411 if (qualifier != null) {
1412 permissionBuilder.setQualifier(HBaseZeroCopyByteString.wrap(qualifier));
1413 }
1414 ret.setType(AccessControlProtos.Permission.Type.Table)
1415 .setTablePermission(permissionBuilder);
1416 return AccessControlProtos.RevokeRequest.newBuilder()
1417 .setUserPermission(
1418 AccessControlProtos.UserPermission.newBuilder()
1419 .setUser(ByteString.copyFromUtf8(username))
1420 .setPermission(ret)
1421 ).build();
1422 }
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432 public static AccessControlProtos.RevokeRequest buildRevokeRequest(
1433 String username, String namespace,
1434 AccessControlProtos.Permission.Action... actions) {
1435 AccessControlProtos.Permission.Builder ret =
1436 AccessControlProtos.Permission.newBuilder();
1437 AccessControlProtos.NamespacePermission.Builder permissionBuilder =
1438 AccessControlProtos.NamespacePermission.newBuilder();
1439 for (AccessControlProtos.Permission.Action a : actions) {
1440 permissionBuilder.addAction(a);
1441 }
1442 if (namespace != null) {
1443 permissionBuilder.setNamespaceName(ByteString.copyFromUtf8(namespace));
1444 }
1445 ret.setType(AccessControlProtos.Permission.Type.Namespace)
1446 .setNamespacePermission(permissionBuilder);
1447 return AccessControlProtos.RevokeRequest.newBuilder()
1448 .setUserPermission(
1449 AccessControlProtos.UserPermission.newBuilder()
1450 .setUser(ByteString.copyFromUtf8(username))
1451 .setPermission(ret)
1452 ).build();
1453 }
1454
1455
1456
1457
1458 private static RegionOpenInfo buildRegionOpenInfo(
1459 final HRegionInfo region, final int versionOfOfflineNode,
1460 final List<ServerName> favoredNodes) {
1461 RegionOpenInfo.Builder builder = RegionOpenInfo.newBuilder();
1462 builder.setRegion(HRegionInfo.convert(region));
1463 if (versionOfOfflineNode >= 0) {
1464 builder.setVersionOfOfflineNode(versionOfOfflineNode);
1465 }
1466 if (favoredNodes != null) {
1467 for (ServerName server : favoredNodes) {
1468 builder.addFavoredNodes(ProtobufUtil.toServerName(server));
1469 }
1470 }
1471 return builder.build();
1472 }
1473 }