|
57 | 57 | import org.apache.hbase.thirdparty.com.google.protobuf.ByteString; |
58 | 58 | import org.apache.hbase.thirdparty.com.google.protobuf.BytesValue; |
59 | 59 | import org.apache.hbase.thirdparty.com.google.protobuf.InvalidProtocolBufferException; |
| 60 | +import org.apache.hbase.thirdparty.com.google.protobuf.UnsafeByteOperations; |
60 | 61 |
|
61 | 62 | import org.apache.hadoop.hbase.shaded.protobuf.generated.CellProtos; |
62 | 63 | import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos; |
|
69 | 70 | import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos; |
70 | 71 | import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameBytesPair; |
71 | 72 | import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos; |
| 73 | +import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos; |
72 | 74 | import org.apache.hadoop.hbase.shaded.protobuf.generated.ProcedureProtos; |
| 75 | +import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos; |
73 | 76 |
|
74 | 77 | @Category(SmallTests.class) |
75 | 78 | public class TestProtobufUtil { |
@@ -623,4 +626,149 @@ public void testSlowLogParamsMutateRequest() { |
623 | 626 | assertTrue(slowLogParams.getParams() |
624 | 627 | .contains(Bytes.toStringBinary(mutationProto.getRow().toByteArray()))); |
625 | 628 | } |
| 629 | + |
| 630 | + @Test |
| 631 | + public void testGetShortTextFormatNull() { |
| 632 | + String actual = ProtobufUtil.getShortTextFormat(null); |
| 633 | + assertNotNull(actual); |
| 634 | + assertEquals("null", actual); |
| 635 | + } |
| 636 | + |
| 637 | + @Test |
| 638 | + public void testGetShortTextFormatScanRequest() { |
| 639 | + ClientProtos.ScanRequest.Builder builder = ClientProtos.ScanRequest.newBuilder(); |
| 640 | + builder.setRegion(givenRegion()); |
| 641 | + ClientProtos.ScanRequest scanRequest = builder.build(); |
| 642 | + |
| 643 | + String actual = ProtobufUtil.getShortTextFormat(scanRequest); |
| 644 | + |
| 645 | + assertNotNull(actual); |
| 646 | + assertEquals("region { type: REGION_NAME value: \"test\" }", actual); |
| 647 | + } |
| 648 | + |
| 649 | + @Test |
| 650 | + public void testGetShortTextFormatRegionServerReportRequest() { |
| 651 | + RegionServerStatusProtos.RegionServerReportRequest.Builder builder = |
| 652 | + RegionServerStatusProtos.RegionServerReportRequest.newBuilder(); |
| 653 | + builder.setServer(givenServerName()); |
| 654 | + RegionServerStatusProtos.RegionServerReportRequest request = builder.build(); |
| 655 | + |
| 656 | + String actual = ProtobufUtil.getShortTextFormat(request); |
| 657 | + |
| 658 | + assertNotNull(actual); |
| 659 | + assertEquals("server host_name: \"a.b.com\" load { numberOfRequests: 0 }", actual); |
| 660 | + } |
| 661 | + |
| 662 | + @Test |
| 663 | + public void testGetShortTextFormatRegionServerStartupRequest() { |
| 664 | + RegionServerStatusProtos.RegionServerStartupRequest.Builder builder = |
| 665 | + RegionServerStatusProtos.RegionServerStartupRequest.newBuilder(); |
| 666 | + builder.setPort(8080); |
| 667 | + builder.setServerCurrentTime(111111L); |
| 668 | + builder.setServerStartCode(15L); |
| 669 | + builder.setUseThisHostnameInstead("some-host-name"); |
| 670 | + RegionServerStatusProtos.RegionServerStartupRequest regionServerStartupRequest = |
| 671 | + builder.build(); |
| 672 | + |
| 673 | + String actual = ProtobufUtil.getShortTextFormat(regionServerStartupRequest); |
| 674 | + |
| 675 | + assertNotNull(actual); |
| 676 | + assertEquals( |
| 677 | + "port: 8080 server_start_code: 15 server_current_time: 111111 use_this_hostname_instead: \"some-host-name\"", |
| 678 | + actual); |
| 679 | + } |
| 680 | + |
| 681 | + @Test |
| 682 | + public void testGetShortTextFormatMutationProto() { |
| 683 | + MutationProto mutationProto = |
| 684 | + ClientProtos.MutationProto.newBuilder().setRow(ByteString.copyFromUtf8("row123")).build(); |
| 685 | + |
| 686 | + String actual = ProtobufUtil.getShortTextFormat(mutationProto); |
| 687 | + |
| 688 | + assertNotNull(actual); |
| 689 | + assertEquals("row=row123, type=APPEND", actual); |
| 690 | + } |
| 691 | + |
| 692 | + @Test |
| 693 | + public void testGetShortTextFormatGetRequest() throws IOException { |
| 694 | + ClientProtos.GetRequest getRequest = ClientProtos.GetRequest.newBuilder() |
| 695 | + .setRegion(givenRegion()).setGet(ProtobufUtil.toGet(new Get(Bytes.toBytes("foo")))).build(); |
| 696 | + |
| 697 | + String actual = ProtobufUtil.getShortTextFormat(getRequest); |
| 698 | + |
| 699 | + assertNotNull(actual); |
| 700 | + assertEquals("region= test, row=foo", actual); |
| 701 | + } |
| 702 | + |
| 703 | + @Test |
| 704 | + public void testGetShortTextFormatMultiRequest() throws IOException { |
| 705 | + ClientProtos.Action action = ClientProtos.Action.newBuilder() |
| 706 | + .setGet(ProtobufUtil.toGet(new Get(Bytes.toBytes("foo")))).build(); |
| 707 | + ClientProtos.RegionAction regionAction = |
| 708 | + ClientProtos.RegionAction.newBuilder().addAction(action).setRegion(givenRegion()).build(); |
| 709 | + |
| 710 | + ClientProtos.MultiRequest multiRequest = |
| 711 | + ClientProtos.MultiRequest.newBuilder().addRegionAction(regionAction).build(); |
| 712 | + |
| 713 | + String actual = ProtobufUtil.getShortTextFormat(multiRequest); |
| 714 | + |
| 715 | + assertNotNull(actual); |
| 716 | + assertEquals("region= test, for 1 action(s) and 1st row key=foo", actual); |
| 717 | + } |
| 718 | + |
| 719 | + @Test |
| 720 | + public void testGetShortTextFormatMutateRequest() throws IOException { |
| 721 | + ClientProtos.MutateRequest mutateRequest = ClientProtos.MutateRequest.newBuilder() |
| 722 | + .setMutation( |
| 723 | + ProtobufUtil.toMutation(MutationType.INCREMENT, new Increment(Bytes.toBytes("foo")))) |
| 724 | + .setRegion(givenRegion()).build(); |
| 725 | + |
| 726 | + String actual = ProtobufUtil.getShortTextFormat(mutateRequest); |
| 727 | + |
| 728 | + assertNotNull(actual); |
| 729 | + assertEquals("region= test, row=foo", actual); |
| 730 | + } |
| 731 | + |
| 732 | + @Test |
| 733 | + public void testGetShortTextFormatCoprocessorServiceRequest() { |
| 734 | + ClientProtos.CoprocessorServiceCall call = ClientProtos.CoprocessorServiceCall.newBuilder() |
| 735 | + .setRow(UnsafeByteOperations.unsafeWrap(Bytes.toBytes("foo"))).setMethodName("awesomeMethod") |
| 736 | + .setServiceName("awesomeService") |
| 737 | + .setRequest(UnsafeByteOperations.unsafeWrap(Bytes.toBytes("foo-request"))).build(); |
| 738 | + |
| 739 | + ClientProtos.CoprocessorServiceRequest.Builder builder = |
| 740 | + ClientProtos.CoprocessorServiceRequest.newBuilder(); |
| 741 | + builder.setRegion(givenRegion()); |
| 742 | + builder.setCall(call); |
| 743 | + ClientProtos.CoprocessorServiceRequest coprocessorServiceRequest = builder.build(); |
| 744 | + |
| 745 | + String actual = ProtobufUtil.getShortTextFormat(coprocessorServiceRequest); |
| 746 | + |
| 747 | + assertNotNull(actual); |
| 748 | + assertEquals("coprocessorService= awesomeService:awesomeMethod", actual); |
| 749 | + } |
| 750 | + |
| 751 | + @Test |
| 752 | + public void testGetShortTextFormatMoveRegionRequest() { |
| 753 | + MasterProtos.MoveRegionRequest.Builder builder = MasterProtos.MoveRegionRequest.newBuilder(); |
| 754 | + builder.setRegion(givenRegion()); |
| 755 | + builder.setDestServerName(givenServerName()); |
| 756 | + MasterProtos.MoveRegionRequest moveRegionRequest = builder.build(); |
| 757 | + |
| 758 | + String actual = ProtobufUtil.getShortTextFormat(moveRegionRequest); |
| 759 | + |
| 760 | + assertNotNull(actual); |
| 761 | + assertEquals( |
| 762 | + "region { type: REGION_NAME value: \"test\" } dest_server_name { host_name: \"a.b.com\" }", |
| 763 | + actual); |
| 764 | + } |
| 765 | + |
| 766 | + private static HBaseProtos.ServerName givenServerName() { |
| 767 | + return HBaseProtos.ServerName.newBuilder().setHostName("a.b.com").build(); |
| 768 | + } |
| 769 | + |
| 770 | + private static HBaseProtos.RegionSpecifier givenRegion() { |
| 771 | + return HBaseProtos.RegionSpecifier.newBuilder().setValue(ByteString.copyFromUtf8("test")) |
| 772 | + .setType(HBaseProtos.RegionSpecifier.RegionSpecifierType.REGION_NAME).build(); |
| 773 | + } |
626 | 774 | } |
0 commit comments