diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java index fa9594a9dbd..4aadd3093d9 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Admin.java @@ -1583,4 +1583,18 @@ public interface Admin extends Abortable, Closeable { SPLIT, MERGE } + + /** + * List dead region servers. + * @return List of dead region servers. + */ + List listDeadServers() throws IOException; + + /** + * Clear dead region servers from master. + * @param servers list of dead region servers. + * @throws IOException if a remote or network exception occurs + * @return List of servers that not cleared + */ + List clearDeadServers(final List servers) throws IOException; } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java index 5e670a35af8..6227a15c236 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionManager.java @@ -1798,6 +1798,21 @@ class ConnectionManager { MasterProtos.ListProceduresRequest request) throws ServiceException { return stub.listProcedures(controller, request); } + + @Override + public MasterProtos.ClearDeadServersResponse clearDeadServers( + RpcController controller, + MasterProtos.ClearDeadServersRequest request) throws ServiceException { + return stub.clearDeadServers(controller, request); + } + + @Override + public MasterProtos.ListDeadServersResponse listDeadServers( + RpcController controller, + MasterProtos.ListDeadServersRequest request) throws ServiceException { + return stub.listDeadServers(controller, request); + } + @Override public AddColumnResponse addColumn(RpcController controller, AddColumnRequest request) throws ServiceException { diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java index 84871ed3bea..d543ddbe189 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java @@ -102,6 +102,7 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureReq import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AddColumnRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AssignRegionRequest; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateTableRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateTableResponse; @@ -135,6 +136,7 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshot import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListTableDescriptorsByNamespaceRequest; @@ -4899,6 +4901,34 @@ public class HBaseAdmin implements Admin { }); } + @Override + public List listDeadServers() throws IOException { + return executeCallable(new MasterCallable>(getConnection()) { + @Override + public List call(int callTimeout) throws ServiceException { + ListDeadServersRequest req = ListDeadServersRequest.newBuilder().build(); + return ProtobufUtil.toServerNameList( + master.listDeadServers(null, req).getServerNameList()); + } + }); + } + + @Override + public List clearDeadServers(final List servers) throws IOException { + if (servers == null || servers.size() == 0) { + throw new IllegalArgumentException("servers cannot be null or empty"); + } + return executeCallable(new MasterCallable>(getConnection()) { + @Override + public List call(int callTimeout) throws Exception { + ClearDeadServersRequest req = RequestConverter.buildClearDeadServersRequest(servers); + return ProtobufUtil.toServerNameList( + master.clearDeadServers(null, req).getServerNameList()); + } + }); + } + + private RpcControllerFactory getRpcControllerFactory() { return rpcControllerFactory; } diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java index f0715da8600..5945e5ee29f 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/ProtobufUtil.java @@ -396,6 +396,20 @@ public final class ProtobufUtil { } return ServerName.valueOf(hostName, port, startCode); } + /** + * Convert a list of protocol buffer ServerName to a list of ServerName + * @param proto protocol buffer ServerNameList + * @return a list of ServerName + */ + public static List toServerNameList( + List proto) { + List servers = new ArrayList(); + for (HBaseProtos.ServerName pbServer : proto) { + servers.add(toServerName(pbServer)); + } + return servers; + } + /** * Get HTableDescriptor[] from GetTableDescriptorsResponse protobuf diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java index 32bdcb93c18..b613b476e75 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/RequestConverter.java @@ -82,6 +82,7 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AddColumnRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AssignRegionRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.BalanceRequest; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateTableRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteColumnRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.DeleteTableRequest; @@ -1810,6 +1811,14 @@ public final class RequestConverter { return builder.build(); } + public static ClearDeadServersRequest buildClearDeadServersRequest(List deadServers) { + ClearDeadServersRequest.Builder builder = ClearDeadServersRequest.newBuilder(); + for(ServerName server: deadServers) { + builder.addServerName(ProtobufUtil.toServerName(server)); + } + return builder.build(); + } + private static MasterProtos.MasterSwitchType convert(Admin.MasterSwitchType switchType) { switch (switchType) { case SPLIT: diff --git a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java index b3ae957f624..da111a4b412 100644 --- a/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java +++ b/hbase-protocol/src/main/java/org/apache/hadoop/hbase/protobuf/generated/MasterProtos.java @@ -60631,6 +60631,2507 @@ public final class MasterProtos { // @@protoc_insertion_point(class_scope:hbase.pb.SecurityCapabilitiesResponse) } + public interface ListDeadServersRequestOrBuilder + extends com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code hbase.pb.ListDeadServersRequest} + */ + public static final class ListDeadServersRequest extends + com.google.protobuf.GeneratedMessage + implements ListDeadServersRequestOrBuilder { + // Use ListDeadServersRequest.newBuilder() to construct. + private ListDeadServersRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ListDeadServersRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ListDeadServersRequest defaultInstance; + public static ListDeadServersRequest getDefaultInstance() { + return defaultInstance; + } + + public ListDeadServersRequest getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ListDeadServersRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public ListDeadServersRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ListDeadServersRequest(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + private void initFields() { + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest)) { + return super.equals(obj); + } + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest) obj; + + boolean result = true; + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code hbase.pb.ListDeadServersRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.Builder.class); + } + + // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersRequest_descriptor; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest getDefaultInstanceForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.getDefaultInstance(); + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest build() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest buildPartial() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest(this); + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest) { + return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest other) { + if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + + // @@protoc_insertion_point(builder_scope:hbase.pb.ListDeadServersRequest) + } + + static { + defaultInstance = new ListDeadServersRequest(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:hbase.pb.ListDeadServersRequest) + } + + public interface ListDeadServersResponseOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // repeated .hbase.pb.ServerName server_name = 1; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + int getServerNameCount(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameOrBuilderList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index); + } + /** + * Protobuf type {@code hbase.pb.ListDeadServersResponse} + */ + public static final class ListDeadServersResponse extends + com.google.protobuf.GeneratedMessage + implements ListDeadServersResponseOrBuilder { + // Use ListDeadServersResponse.newBuilder() to construct. + private ListDeadServersResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ListDeadServersResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ListDeadServersResponse defaultInstance; + public static ListDeadServersResponse getDefaultInstance() { + return defaultInstance; + } + + public ListDeadServersResponse getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ListDeadServersResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + serverName_.add(input.readMessage(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.PARSER, extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public ListDeadServersResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ListDeadServersResponse(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + // repeated .hbase.pb.ServerName server_name = 1; + public static final int SERVER_NAME_FIELD_NUMBER = 1; + private java.util.List serverName_; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + return serverName_.size(); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + return serverName_.get(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + return serverName_.get(index); + } + + private void initFields() { + serverName_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + for (int i = 0; i < serverName_.size(); i++) { + output.writeMessage(1, serverName_.get(i)); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < serverName_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, serverName_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse)) { + return super.equals(obj); + } + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse) obj; + + boolean result = true; + result = result && getServerNameList() + .equals(other.getServerNameList()); + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + if (getServerNameCount() > 0) { + hash = (37 * hash) + SERVER_NAME_FIELD_NUMBER; + hash = (53 * hash) + getServerNameList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code hbase.pb.ListDeadServersResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.Builder.class); + } + + // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getServerNameFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + serverNameBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ListDeadServersResponse_descriptor; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse getDefaultInstanceForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance(); + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse build() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse buildPartial() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse(this); + int from_bitField0_ = bitField0_; + if (serverNameBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.serverName_ = serverName_; + } else { + result.serverName_ = serverNameBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse) { + return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse other) { + if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance()) return this; + if (serverNameBuilder_ == null) { + if (!other.serverName_.isEmpty()) { + if (serverName_.isEmpty()) { + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServerNameIsMutable(); + serverName_.addAll(other.serverName_); + } + onChanged(); + } + } else { + if (!other.serverName_.isEmpty()) { + if (serverNameBuilder_.isEmpty()) { + serverNameBuilder_.dispose(); + serverNameBuilder_ = null; + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + serverNameBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getServerNameFieldBuilder() : null; + } else { + serverNameBuilder_.addAllMessages(other.serverName_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // repeated .hbase.pb.ServerName server_name = 1; + private java.util.List serverName_ = + java.util.Collections.emptyList(); + private void ensureServerNameIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(serverName_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> serverNameBuilder_; + + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + if (serverNameBuilder_ == null) { + return java.util.Collections.unmodifiableList(serverName_); + } else { + return serverNameBuilder_.getMessageList(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + if (serverNameBuilder_ == null) { + return serverName_.size(); + } else { + return serverNameBuilder_.getCount(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); + } else { + return serverNameBuilder_.getMessage(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.set(index, value); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.set(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(value); + onChanged(); + } else { + serverNameBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(index, value); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addAllServerName( + java.lang.Iterable values) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + super.addAll(values, serverName_); + onChanged(); + } else { + serverNameBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder clearServerName() { + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + serverNameBuilder_.clear(); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder removeServerName(int index) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.remove(index); + onChanged(); + } else { + serverNameBuilder_.remove(index); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder getServerNameBuilder( + int index) { + return getServerNameFieldBuilder().getBuilder(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); } else { + return serverNameBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + if (serverNameBuilder_ != null) { + return serverNameBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serverName_); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder() { + return getServerNameFieldBuilder().addBuilder( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder( + int index) { + return getServerNameFieldBuilder().addBuilder( + index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameBuilderList() { + return getServerNameFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> + getServerNameFieldBuilder() { + if (serverNameBuilder_ == null) { + serverNameBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder>( + serverName_, + ((bitField0_ & 0x00000001) == 0x00000001), + getParentForChildren(), + isClean()); + serverName_ = null; + } + return serverNameBuilder_; + } + + // @@protoc_insertion_point(builder_scope:hbase.pb.ListDeadServersResponse) + } + + static { + defaultInstance = new ListDeadServersResponse(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:hbase.pb.ListDeadServersResponse) + } + + public interface ClearDeadServersRequestOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // repeated .hbase.pb.ServerName server_name = 1; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + int getServerNameCount(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameOrBuilderList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index); + } + /** + * Protobuf type {@code hbase.pb.ClearDeadServersRequest} + */ + public static final class ClearDeadServersRequest extends + com.google.protobuf.GeneratedMessage + implements ClearDeadServersRequestOrBuilder { + // Use ClearDeadServersRequest.newBuilder() to construct. + private ClearDeadServersRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClearDeadServersRequest(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClearDeadServersRequest defaultInstance; + public static ClearDeadServersRequest getDefaultInstance() { + return defaultInstance; + } + + public ClearDeadServersRequest getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClearDeadServersRequest( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + serverName_.add(input.readMessage(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.PARSER, extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public ClearDeadServersRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ClearDeadServersRequest(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + // repeated .hbase.pb.ServerName server_name = 1; + public static final int SERVER_NAME_FIELD_NUMBER = 1; + private java.util.List serverName_; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + return serverName_.size(); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + return serverName_.get(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + return serverName_.get(index); + } + + private void initFields() { + serverName_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + for (int i = 0; i < serverName_.size(); i++) { + output.writeMessage(1, serverName_.get(i)); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < serverName_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, serverName_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest)) { + return super.equals(obj); + } + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest) obj; + + boolean result = true; + result = result && getServerNameList() + .equals(other.getServerNameList()); + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + if (getServerNameCount() > 0) { + hash = (37 * hash) + SERVER_NAME_FIELD_NUMBER; + hash = (53 * hash) + getServerNameList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code hbase.pb.ClearDeadServersRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersRequest_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.Builder.class); + } + + // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getServerNameFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + serverNameBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersRequest_descriptor; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest getDefaultInstanceForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.getDefaultInstance(); + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest build() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest buildPartial() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest(this); + int from_bitField0_ = bitField0_; + if (serverNameBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.serverName_ = serverName_; + } else { + result.serverName_ = serverNameBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest) { + return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest other) { + if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.getDefaultInstance()) return this; + if (serverNameBuilder_ == null) { + if (!other.serverName_.isEmpty()) { + if (serverName_.isEmpty()) { + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServerNameIsMutable(); + serverName_.addAll(other.serverName_); + } + onChanged(); + } + } else { + if (!other.serverName_.isEmpty()) { + if (serverNameBuilder_.isEmpty()) { + serverNameBuilder_.dispose(); + serverNameBuilder_ = null; + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + serverNameBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getServerNameFieldBuilder() : null; + } else { + serverNameBuilder_.addAllMessages(other.serverName_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // repeated .hbase.pb.ServerName server_name = 1; + private java.util.List serverName_ = + java.util.Collections.emptyList(); + private void ensureServerNameIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(serverName_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> serverNameBuilder_; + + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + if (serverNameBuilder_ == null) { + return java.util.Collections.unmodifiableList(serverName_); + } else { + return serverNameBuilder_.getMessageList(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + if (serverNameBuilder_ == null) { + return serverName_.size(); + } else { + return serverNameBuilder_.getCount(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); + } else { + return serverNameBuilder_.getMessage(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.set(index, value); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.set(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(value); + onChanged(); + } else { + serverNameBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(index, value); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addAllServerName( + java.lang.Iterable values) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + super.addAll(values, serverName_); + onChanged(); + } else { + serverNameBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder clearServerName() { + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + serverNameBuilder_.clear(); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder removeServerName(int index) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.remove(index); + onChanged(); + } else { + serverNameBuilder_.remove(index); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder getServerNameBuilder( + int index) { + return getServerNameFieldBuilder().getBuilder(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); } else { + return serverNameBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + if (serverNameBuilder_ != null) { + return serverNameBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serverName_); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder() { + return getServerNameFieldBuilder().addBuilder( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder( + int index) { + return getServerNameFieldBuilder().addBuilder( + index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameBuilderList() { + return getServerNameFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> + getServerNameFieldBuilder() { + if (serverNameBuilder_ == null) { + serverNameBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder>( + serverName_, + ((bitField0_ & 0x00000001) == 0x00000001), + getParentForChildren(), + isClean()); + serverName_ = null; + } + return serverNameBuilder_; + } + + // @@protoc_insertion_point(builder_scope:hbase.pb.ClearDeadServersRequest) + } + + static { + defaultInstance = new ClearDeadServersRequest(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:hbase.pb.ClearDeadServersRequest) + } + + public interface ClearDeadServersResponseOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // repeated .hbase.pb.ServerName server_name = 1; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + int getServerNameCount(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + java.util.List + getServerNameOrBuilderList(); + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index); + } + /** + * Protobuf type {@code hbase.pb.ClearDeadServersResponse} + */ + public static final class ClearDeadServersResponse extends + com.google.protobuf.GeneratedMessage + implements ClearDeadServersResponseOrBuilder { + // Use ClearDeadServersResponse.newBuilder() to construct. + private ClearDeadServersResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ClearDeadServersResponse(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ClearDeadServersResponse defaultInstance; + public static ClearDeadServersResponse getDefaultInstance() { + return defaultInstance; + } + + public ClearDeadServersResponse getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ClearDeadServersResponse( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + initFields(); + int mutable_bitField0_ = 0; + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder(); + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + done = true; + } + break; + } + case 10: { + if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(); + mutable_bitField0_ |= 0x00000001; + } + serverName_.add(input.readMessage(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.PARSER, extensionRegistry)); + break; + } + } + } + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(this); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException( + e.getMessage()).setUnfinishedMessage(this); + } finally { + if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + } + this.unknownFields = unknownFields.build(); + makeExtensionsImmutable(); + } + } + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.Builder.class); + } + + public static com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + public ClearDeadServersResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ClearDeadServersResponse(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + // repeated .hbase.pb.ServerName server_name = 1; + public static final int SERVER_NAME_FIELD_NUMBER = 1; + private java.util.List serverName_; + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + return serverName_; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + return serverName_.size(); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + return serverName_.get(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + return serverName_.get(index); + } + + private void initFields() { + serverName_ = java.util.Collections.emptyList(); + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + memoizedIsInitialized = 0; + return false; + } + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + for (int i = 0; i < serverName_.size(); i++) { + output.writeMessage(1, serverName_.get(i)); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < serverName_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, serverName_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse)) { + return super.equals(obj); + } + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse other = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse) obj; + + boolean result = true; + result = result && getServerNameList() + .equals(other.getServerNameList()); + result = result && + getUnknownFields().equals(other.getUnknownFields()); + return result; + } + + private int memoizedHashCode = 0; + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptorForType().hashCode(); + if (getServerNameCount() > 0) { + hash = (37 * hash) + SERVER_NAME_FIELD_NUMBER; + hash = (53 * hash) + getServerNameList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code hbase.pb.ClearDeadServersResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder + implements org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersResponse_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.Builder.class); + } + + // Construct using org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getServerNameFieldBuilder(); + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + } else { + serverNameBuilder_.clear(); + } + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.internal_static_hbase_pb_ClearDeadServersResponse_descriptor; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse getDefaultInstanceForType() { + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance(); + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse build() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse buildPartial() { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse result = new org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse(this); + int from_bitField0_ = bitField0_; + if (serverNameBuilder_ == null) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = java.util.Collections.unmodifiableList(serverName_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.serverName_ = serverName_; + } else { + result.serverName_ = serverNameBuilder_.build(); + } + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse) { + return mergeFrom((org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse other) { + if (other == org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance()) return this; + if (serverNameBuilder_ == null) { + if (!other.serverName_.isEmpty()) { + if (serverName_.isEmpty()) { + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureServerNameIsMutable(); + serverName_.addAll(other.serverName_); + } + onChanged(); + } + } else { + if (!other.serverName_.isEmpty()) { + if (serverNameBuilder_.isEmpty()) { + serverNameBuilder_.dispose(); + serverNameBuilder_ = null; + serverName_ = other.serverName_; + bitField0_ = (bitField0_ & ~0x00000001); + serverNameBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getServerNameFieldBuilder() : null; + } else { + serverNameBuilder_.addAllMessages(other.serverName_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + for (int i = 0; i < getServerNameCount(); i++) { + if (!getServerName(i).isInitialized()) { + + return false; + } + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // repeated .hbase.pb.ServerName server_name = 1; + private java.util.List serverName_ = + java.util.Collections.emptyList(); + private void ensureServerNameIsMutable() { + if (!((bitField0_ & 0x00000001) == 0x00000001)) { + serverName_ = new java.util.ArrayList(serverName_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> serverNameBuilder_; + + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List getServerNameList() { + if (serverNameBuilder_ == null) { + return java.util.Collections.unmodifiableList(serverName_); + } else { + return serverNameBuilder_.getMessageList(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public int getServerNameCount() { + if (serverNameBuilder_ == null) { + return serverName_.size(); + } else { + return serverNameBuilder_.getCount(); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName getServerName(int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); + } else { + return serverNameBuilder_.getMessage(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.set(index, value); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder setServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.set(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName(org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(value); + onChanged(); + } else { + serverNameBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName value) { + if (serverNameBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureServerNameIsMutable(); + serverName_.add(index, value); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addServerName( + int index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder builderForValue) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.add(index, builderForValue.build()); + onChanged(); + } else { + serverNameBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder addAllServerName( + java.lang.Iterable values) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + super.addAll(values, serverName_); + onChanged(); + } else { + serverNameBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder clearServerName() { + if (serverNameBuilder_ == null) { + serverName_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + serverNameBuilder_.clear(); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public Builder removeServerName(int index) { + if (serverNameBuilder_ == null) { + ensureServerNameIsMutable(); + serverName_.remove(index); + onChanged(); + } else { + serverNameBuilder_.remove(index); + } + return this; + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder getServerNameBuilder( + int index) { + return getServerNameFieldBuilder().getBuilder(index); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder getServerNameOrBuilder( + int index) { + if (serverNameBuilder_ == null) { + return serverName_.get(index); } else { + return serverNameBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameOrBuilderList() { + if (serverNameBuilder_ != null) { + return serverNameBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(serverName_); + } + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder() { + return getServerNameFieldBuilder().addBuilder( + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder addServerNameBuilder( + int index) { + return getServerNameFieldBuilder().addBuilder( + index, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.getDefaultInstance()); + } + /** + * repeated .hbase.pb.ServerName server_name = 1; + */ + public java.util.List + getServerNameBuilderList() { + return getServerNameFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder> + getServerNameFieldBuilder() { + if (serverNameBuilder_ == null) { + serverNameBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerName.Builder, org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.ServerNameOrBuilder>( + serverName_, + ((bitField0_ & 0x00000001) == 0x00000001), + getParentForChildren(), + isClean()); + serverName_ = null; + } + return serverNameBuilder_; + } + + // @@protoc_insertion_point(builder_scope:hbase.pb.ClearDeadServersResponse) + } + + static { + defaultInstance = new ClearDeadServersResponse(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:hbase.pb.ClearDeadServersResponse) + } + /** * Protobuf service {@code hbase.pb.MasterService} */ @@ -61391,6 +63892,30 @@ public final class MasterProtos { org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest request, com.google.protobuf.RpcCallback done); + /** + * rpc ClearDeadServers(.hbase.pb.ClearDeadServersRequest) returns (.hbase.pb.ClearDeadServersResponse); + * + *
+       ** clear dead servers from master
+       * 
+ */ + public abstract void clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request, + com.google.protobuf.RpcCallback done); + + /** + * rpc ListDeadServers(.hbase.pb.ListDeadServersRequest) returns (.hbase.pb.ListDeadServersResponse); + * + *
+       ** Returns a list of Dead Servers.
+       * 
+ */ + public abstract void listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request, + com.google.protobuf.RpcCallback done); + } public static com.google.protobuf.Service newReflectiveService( @@ -61876,6 +64401,22 @@ public final class MasterProtos { impl.listProcedures(controller, request, done); } + @java.lang.Override + public void clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request, + com.google.protobuf.RpcCallback done) { + impl.clearDeadServers(controller, request, done); + } + + @java.lang.Override + public void listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request, + com.google.protobuf.RpcCallback done) { + impl.listDeadServers(controller, request, done); + } + }; } @@ -62018,6 +64559,10 @@ public final class MasterProtos { return impl.abortProcedure(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest)request); case 59: return impl.listProcedures(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest)request); + case 60: + return impl.clearDeadServers(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest)request); + case 61: + return impl.listDeadServers(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest)request); default: throw new java.lang.AssertionError("Can't get here."); } @@ -62152,6 +64697,10 @@ public final class MasterProtos { return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest.getDefaultInstance(); case 59: return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest.getDefaultInstance(); + case 60: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.getDefaultInstance(); + case 61: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -62286,6 +64835,10 @@ public final class MasterProtos { return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance(); case 59: return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance(); + case 60: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance(); + case 61: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -63046,6 +65599,30 @@ public final class MasterProtos { org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest request, com.google.protobuf.RpcCallback done); + /** + * rpc ClearDeadServers(.hbase.pb.ClearDeadServersRequest) returns (.hbase.pb.ClearDeadServersResponse); + * + *
+     ** clear dead servers from master
+     * 
+ */ + public abstract void clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request, + com.google.protobuf.RpcCallback done); + + /** + * rpc ListDeadServers(.hbase.pb.ListDeadServersRequest) returns (.hbase.pb.ListDeadServersResponse); + * + *
+     ** Returns a list of Dead Servers.
+     * 
+ */ + public abstract void listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request, + com.google.protobuf.RpcCallback done); + public static final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptor() { @@ -63368,6 +65945,16 @@ public final class MasterProtos { com.google.protobuf.RpcUtil.specializeCallback( done)); return; + case 60: + this.clearDeadServers(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest)request, + com.google.protobuf.RpcUtil.specializeCallback( + done)); + return; + case 61: + this.listDeadServers(controller, (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest)request, + com.google.protobuf.RpcUtil.specializeCallback( + done)); + return; default: throw new java.lang.AssertionError("Can't get here."); } @@ -63502,6 +66089,10 @@ public final class MasterProtos { return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureRequest.getDefaultInstance(); case 59: return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest.getDefaultInstance(); + case 60: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest.getDefaultInstance(); + case 61: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -63636,6 +66227,10 @@ public final class MasterProtos { return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AbortProcedureResponse.getDefaultInstance(); case 59: return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance(); + case 60: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance(); + case 61: + return org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance(); default: throw new java.lang.AssertionError("Can't get here."); } @@ -64556,6 +67151,36 @@ public final class MasterProtos { org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.class, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance())); } + + public void clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request, + com.google.protobuf.RpcCallback done) { + channel.callMethod( + getDescriptor().getMethods().get(60), + controller, + request, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.class, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance())); + } + + public void listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request, + com.google.protobuf.RpcCallback done) { + channel.callMethod( + getDescriptor().getMethods().get(61), + controller, + request, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.class, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance())); + } } public static BlockingInterface newBlockingStub( @@ -64863,6 +67488,16 @@ public final class MasterProtos { com.google.protobuf.RpcController controller, org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest request) throws com.google.protobuf.ServiceException; + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request) + throws com.google.protobuf.ServiceException; + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request) + throws com.google.protobuf.ServiceException; } private static final class BlockingStub implements BlockingInterface { @@ -65591,6 +68226,30 @@ public final class MasterProtos { org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresResponse.getDefaultInstance()); } + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse clearDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest request) + throws com.google.protobuf.ServiceException { + return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse) channel.callBlockingMethod( + getDescriptor().getMethods().get(60), + controller, + request, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse.getDefaultInstance()); + } + + + public org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse listDeadServers( + com.google.protobuf.RpcController controller, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest request) + throws com.google.protobuf.ServiceException { + return (org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse) channel.callBlockingMethod( + getDescriptor().getMethods().get(61), + controller, + request, + org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse.getDefaultInstance()); + } + } // @@protoc_insertion_point(class_scope:hbase.pb.MasterService) @@ -66171,6 +68830,26 @@ public final class MasterProtos { private static com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_hbase_pb_SecurityCapabilitiesResponse_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_hbase_pb_ListDeadServersRequest_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_hbase_pb_ListDeadServersRequest_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_hbase_pb_ListDeadServersResponse_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_hbase_pb_ListDeadServersResponse_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_hbase_pb_ClearDeadServersRequest_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_hbase_pb_ClearDeadServersRequest_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_hbase_pb_ClearDeadServersResponse_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_hbase_pb_ClearDeadServersResponse_fieldAccessorTable; public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { @@ -66374,148 +69053,159 @@ public final class MasterProtos { "nse.Capability\"\202\001\n\nCapability\022\031\n\025SIMPLE_" + "AUTHENTICATION\020\000\022\031\n\025SECURE_AUTHENTICATIO" + "N\020\001\022\021\n\rAUTHORIZATION\020\002\022\026\n\022CELL_AUTHORIZA" + - "TION\020\003\022\023\n\017CELL_VISIBILITY\020\004*(\n\020MasterSwi" + - "tchType\022\t\n\005SPLIT\020\000\022\t\n\005MERGE\020\0012\232+\n\rMaster" + - "Service\022e\n\024GetSchemaAlterStatus\022%.hbase." + - "pb.GetSchemaAlterStatusRequest\032&.hbase.p" + - "b.GetSchemaAlterStatusResponse\022b\n\023GetTab" + - "leDescriptors\022$.hbase.pb.GetTableDescrip", - "torsRequest\032%.hbase.pb.GetTableDescripto" + - "rsResponse\022P\n\rGetTableNames\022\036.hbase.pb.G" + - "etTableNamesRequest\032\037.hbase.pb.GetTableN" + - "amesResponse\022Y\n\020GetClusterStatus\022!.hbase" + - ".pb.GetClusterStatusRequest\032\".hbase.pb.G" + - "etClusterStatusResponse\022V\n\017IsMasterRunni" + - "ng\022 .hbase.pb.IsMasterRunningRequest\032!.h" + - "base.pb.IsMasterRunningResponse\022D\n\tAddCo" + - "lumn\022\032.hbase.pb.AddColumnRequest\032\033.hbase" + - ".pb.AddColumnResponse\022M\n\014DeleteColumn\022\035.", - "hbase.pb.DeleteColumnRequest\032\036.hbase.pb." + - "DeleteColumnResponse\022M\n\014ModifyColumn\022\035.h" + - "base.pb.ModifyColumnRequest\032\036.hbase.pb.M" + - "odifyColumnResponse\022G\n\nMoveRegion\022\033.hbas" + - "e.pb.MoveRegionRequest\032\034.hbase.pb.MoveRe" + - "gionResponse\022k\n\026DispatchMergingRegions\022\'" + - ".hbase.pb.DispatchMergingRegionsRequest\032" + - "(.hbase.pb.DispatchMergingRegionsRespons" + - "e\022M\n\014AssignRegion\022\035.hbase.pb.AssignRegio" + - "nRequest\032\036.hbase.pb.AssignRegionResponse", - "\022S\n\016UnassignRegion\022\037.hbase.pb.UnassignRe" + - "gionRequest\032 .hbase.pb.UnassignRegionRes" + - "ponse\022P\n\rOfflineRegion\022\036.hbase.pb.Offlin" + - "eRegionRequest\032\037.hbase.pb.OfflineRegionR" + - "esponse\022J\n\013DeleteTable\022\034.hbase.pb.Delete" + - "TableRequest\032\035.hbase.pb.DeleteTableRespo" + - "nse\022P\n\rtruncateTable\022\036.hbase.pb.Truncate" + - "TableRequest\032\037.hbase.pb.TruncateTableRes" + - "ponse\022J\n\013EnableTable\022\034.hbase.pb.EnableTa" + - "bleRequest\032\035.hbase.pb.EnableTableRespons", - "e\022M\n\014DisableTable\022\035.hbase.pb.DisableTabl" + - "eRequest\032\036.hbase.pb.DisableTableResponse" + - "\022J\n\013ModifyTable\022\034.hbase.pb.ModifyTableRe" + - "quest\032\035.hbase.pb.ModifyTableResponse\022J\n\013" + - "CreateTable\022\034.hbase.pb.CreateTableReques" + - "t\032\035.hbase.pb.CreateTableResponse\022A\n\010Shut" + - "down\022\031.hbase.pb.ShutdownRequest\032\032.hbase." + - "pb.ShutdownResponse\022G\n\nStopMaster\022\033.hbas" + - "e.pb.StopMasterRequest\032\034.hbase.pb.StopMa" + - "sterResponse\022h\n\031IsMasterInMaintenanceMod", - "e\022$.hbase.pb.IsInMaintenanceModeRequest\032" + - "%.hbase.pb.IsInMaintenanceModeResponse\022>" + - "\n\007Balance\022\030.hbase.pb.BalanceRequest\032\031.hb" + - "ase.pb.BalanceResponse\022_\n\022SetBalancerRun" + - "ning\022#.hbase.pb.SetBalancerRunningReques" + - "t\032$.hbase.pb.SetBalancerRunningResponse\022" + - "\\\n\021IsBalancerEnabled\022\".hbase.pb.IsBalanc" + - "erEnabledRequest\032#.hbase.pb.IsBalancerEn" + - "abledResponse\022k\n\026SetSplitOrMergeEnabled\022" + - "\'.hbase.pb.SetSplitOrMergeEnabledRequest", - "\032(.hbase.pb.SetSplitOrMergeEnabledRespon" + - "se\022h\n\025IsSplitOrMergeEnabled\022&.hbase.pb.I" + - "sSplitOrMergeEnabledRequest\032\'.hbase.pb.I" + - "sSplitOrMergeEnabledResponse\022D\n\tNormaliz" + - "e\022\032.hbase.pb.NormalizeRequest\032\033.hbase.pb" + - ".NormalizeResponse\022e\n\024SetNormalizerRunni" + - "ng\022%.hbase.pb.SetNormalizerRunningReques" + - "t\032&.hbase.pb.SetNormalizerRunningRespons" + - "e\022b\n\023IsNormalizerEnabled\022$.hbase.pb.IsNo" + - "rmalizerEnabledRequest\032%.hbase.pb.IsNorm", - "alizerEnabledResponse\022S\n\016RunCatalogScan\022" + - "\037.hbase.pb.RunCatalogScanRequest\032 .hbase" + - ".pb.RunCatalogScanResponse\022e\n\024EnableCata" + - "logJanitor\022%.hbase.pb.EnableCatalogJanit" + - "orRequest\032&.hbase.pb.EnableCatalogJanito" + - "rResponse\022n\n\027IsCatalogJanitorEnabled\022(.h" + - "base.pb.IsCatalogJanitorEnabledRequest\032)" + - ".hbase.pb.IsCatalogJanitorEnabledRespons" + - "e\022V\n\017RunCleanerChore\022 .hbase.pb.RunClean" + - "erChoreRequest\032!.hbase.pb.RunCleanerChor", - "eResponse\022k\n\026SetCleanerChoreRunning\022\'.hb" + - "ase.pb.SetCleanerChoreRunningRequest\032(.h" + - "base.pb.SetCleanerChoreRunningResponse\022h" + - "\n\025IsCleanerChoreEnabled\022&.hbase.pb.IsCle" + - "anerChoreEnabledRequest\032\'.hbase.pb.IsCle" + - "anerChoreEnabledResponse\022^\n\021ExecMasterSe" + - "rvice\022#.hbase.pb.CoprocessorServiceReque" + - "st\032$.hbase.pb.CoprocessorServiceResponse" + - "\022A\n\010Snapshot\022\031.hbase.pb.SnapshotRequest\032" + - "\032.hbase.pb.SnapshotResponse\022h\n\025GetComple", - "tedSnapshots\022&.hbase.pb.GetCompletedSnap" + - "shotsRequest\032\'.hbase.pb.GetCompletedSnap" + - "shotsResponse\022S\n\016DeleteSnapshot\022\037.hbase." + - "pb.DeleteSnapshotRequest\032 .hbase.pb.Dele" + - "teSnapshotResponse\022S\n\016IsSnapshotDone\022\037.h" + - "base.pb.IsSnapshotDoneRequest\032 .hbase.pb" + - ".IsSnapshotDoneResponse\022V\n\017RestoreSnapsh" + - "ot\022 .hbase.pb.RestoreSnapshotRequest\032!.h" + - "base.pb.RestoreSnapshotResponse\022h\n\025IsRes" + - "toreSnapshotDone\022&.hbase.pb.IsRestoreSna", - "pshotDoneRequest\032\'.hbase.pb.IsRestoreSna" + - "pshotDoneResponse\022P\n\rExecProcedure\022\036.hba" + - "se.pb.ExecProcedureRequest\032\037.hbase.pb.Ex" + - "ecProcedureResponse\022W\n\024ExecProcedureWith" + - "Ret\022\036.hbase.pb.ExecProcedureRequest\032\037.hb" + - "ase.pb.ExecProcedureResponse\022V\n\017IsProced" + - "ureDone\022 .hbase.pb.IsProcedureDoneReques" + - "t\032!.hbase.pb.IsProcedureDoneResponse\022V\n\017" + - "ModifyNamespace\022 .hbase.pb.ModifyNamespa" + - "ceRequest\032!.hbase.pb.ModifyNamespaceResp", - "onse\022V\n\017CreateNamespace\022 .hbase.pb.Creat" + - "eNamespaceRequest\032!.hbase.pb.CreateNames" + - "paceResponse\022V\n\017DeleteNamespace\022 .hbase." + - "pb.DeleteNamespaceRequest\032!.hbase.pb.Del" + - "eteNamespaceResponse\022k\n\026GetNamespaceDesc" + - "riptor\022\'.hbase.pb.GetNamespaceDescriptor" + - "Request\032(.hbase.pb.GetNamespaceDescripto" + - "rResponse\022q\n\030ListNamespaceDescriptors\022)." + - "hbase.pb.ListNamespaceDescriptorsRequest" + - "\032*.hbase.pb.ListNamespaceDescriptorsResp", - "onse\022\206\001\n\037ListTableDescriptorsByNamespace" + - "\0220.hbase.pb.ListTableDescriptorsByNamesp" + - "aceRequest\0321.hbase.pb.ListTableDescripto" + - "rsByNamespaceResponse\022t\n\031ListTableNamesB" + - "yNamespace\022*.hbase.pb.ListTableNamesByNa" + - "mespaceRequest\032+.hbase.pb.ListTableNames" + - "ByNamespaceResponse\022A\n\010SetQuota\022\031.hbase." + - "pb.SetQuotaRequest\032\032.hbase.pb.SetQuotaRe" + - "sponse\022x\n\037getLastMajorCompactionTimestam" + - "p\022).hbase.pb.MajorCompactionTimestampReq", - "uest\032*.hbase.pb.MajorCompactionTimestamp" + - "Response\022\212\001\n(getLastMajorCompactionTimes" + - "tampForRegion\0222.hbase.pb.MajorCompaction" + - "TimestampForRegionRequest\032*.hbase.pb.Maj" + - "orCompactionTimestampResponse\022_\n\022getProc" + - "edureResult\022#.hbase.pb.GetProcedureResul" + - "tRequest\032$.hbase.pb.GetProcedureResultRe" + - "sponse\022h\n\027getSecurityCapabilities\022%.hbas" + - "e.pb.SecurityCapabilitiesRequest\032&.hbase" + - ".pb.SecurityCapabilitiesResponse\022S\n\016Abor", - "tProcedure\022\037.hbase.pb.AbortProcedureRequ" + - "est\032 .hbase.pb.AbortProcedureResponse\022S\n" + - "\016ListProcedures\022\037.hbase.pb.ListProcedure" + - "sRequest\032 .hbase.pb.ListProceduresRespon" + - "seBB\n*org.apache.hadoop.hbase.protobuf.g" + - "eneratedB\014MasterProtosH\001\210\001\001\240\001\001" + "TION\020\003\022\023\n\017CELL_VISIBILITY\020\004\"\030\n\026ListDeadS" + + "erversRequest\"D\n\027ListDeadServersResponse" + + "\022)\n\013server_name\030\001 \003(\0132\024.hbase.pb.ServerN" + + "ame\"D\n\027ClearDeadServersRequest\022)\n\013server" + + "_name\030\001 \003(\0132\024.hbase.pb.ServerName\"E\n\030Cle" + + "arDeadServersResponse\022)\n\013server_name\030\001 \003", + "(\0132\024.hbase.pb.ServerName*(\n\020MasterSwitch" + + "Type\022\t\n\005SPLIT\020\000\022\t\n\005MERGE\020\0012\315,\n\rMasterSer" + + "vice\022e\n\024GetSchemaAlterStatus\022%.hbase.pb." + + "GetSchemaAlterStatusRequest\032&.hbase.pb.G" + + "etSchemaAlterStatusResponse\022b\n\023GetTableD" + + "escriptors\022$.hbase.pb.GetTableDescriptor" + + "sRequest\032%.hbase.pb.GetTableDescriptorsR" + + "esponse\022P\n\rGetTableNames\022\036.hbase.pb.GetT" + + "ableNamesRequest\032\037.hbase.pb.GetTableName" + + "sResponse\022Y\n\020GetClusterStatus\022!.hbase.pb", + ".GetClusterStatusRequest\032\".hbase.pb.GetC" + + "lusterStatusResponse\022V\n\017IsMasterRunning\022" + + " .hbase.pb.IsMasterRunningRequest\032!.hbas" + + "e.pb.IsMasterRunningResponse\022D\n\tAddColum" + + "n\022\032.hbase.pb.AddColumnRequest\032\033.hbase.pb" + + ".AddColumnResponse\022M\n\014DeleteColumn\022\035.hba" + + "se.pb.DeleteColumnRequest\032\036.hbase.pb.Del" + + "eteColumnResponse\022M\n\014ModifyColumn\022\035.hbas" + + "e.pb.ModifyColumnRequest\032\036.hbase.pb.Modi" + + "fyColumnResponse\022G\n\nMoveRegion\022\033.hbase.p", + "b.MoveRegionRequest\032\034.hbase.pb.MoveRegio" + + "nResponse\022k\n\026DispatchMergingRegions\022\'.hb" + + "ase.pb.DispatchMergingRegionsRequest\032(.h" + + "base.pb.DispatchMergingRegionsResponse\022M" + + "\n\014AssignRegion\022\035.hbase.pb.AssignRegionRe" + + "quest\032\036.hbase.pb.AssignRegionResponse\022S\n" + + "\016UnassignRegion\022\037.hbase.pb.UnassignRegio" + + "nRequest\032 .hbase.pb.UnassignRegionRespon" + + "se\022P\n\rOfflineRegion\022\036.hbase.pb.OfflineRe" + + "gionRequest\032\037.hbase.pb.OfflineRegionResp", + "onse\022J\n\013DeleteTable\022\034.hbase.pb.DeleteTab" + + "leRequest\032\035.hbase.pb.DeleteTableResponse" + + "\022P\n\rtruncateTable\022\036.hbase.pb.TruncateTab" + + "leRequest\032\037.hbase.pb.TruncateTableRespon" + + "se\022J\n\013EnableTable\022\034.hbase.pb.EnableTable" + + "Request\032\035.hbase.pb.EnableTableResponse\022M" + + "\n\014DisableTable\022\035.hbase.pb.DisableTableRe" + + "quest\032\036.hbase.pb.DisableTableResponse\022J\n" + + "\013ModifyTable\022\034.hbase.pb.ModifyTableReque" + + "st\032\035.hbase.pb.ModifyTableResponse\022J\n\013Cre", + "ateTable\022\034.hbase.pb.CreateTableRequest\032\035" + + ".hbase.pb.CreateTableResponse\022A\n\010Shutdow" + + "n\022\031.hbase.pb.ShutdownRequest\032\032.hbase.pb." + + "ShutdownResponse\022G\n\nStopMaster\022\033.hbase.p" + + "b.StopMasterRequest\032\034.hbase.pb.StopMaste" + + "rResponse\022h\n\031IsMasterInMaintenanceMode\022$" + + ".hbase.pb.IsInMaintenanceModeRequest\032%.h" + + "base.pb.IsInMaintenanceModeResponse\022>\n\007B" + + "alance\022\030.hbase.pb.BalanceRequest\032\031.hbase" + + ".pb.BalanceResponse\022_\n\022SetBalancerRunnin", + "g\022#.hbase.pb.SetBalancerRunningRequest\032$" + + ".hbase.pb.SetBalancerRunningResponse\022\\\n\021" + + "IsBalancerEnabled\022\".hbase.pb.IsBalancerE" + + "nabledRequest\032#.hbase.pb.IsBalancerEnabl" + + "edResponse\022k\n\026SetSplitOrMergeEnabled\022\'.h" + + "base.pb.SetSplitOrMergeEnabledRequest\032(." + + "hbase.pb.SetSplitOrMergeEnabledResponse\022" + + "h\n\025IsSplitOrMergeEnabled\022&.hbase.pb.IsSp" + + "litOrMergeEnabledRequest\032\'.hbase.pb.IsSp" + + "litOrMergeEnabledResponse\022D\n\tNormalize\022\032", + ".hbase.pb.NormalizeRequest\032\033.hbase.pb.No" + + "rmalizeResponse\022e\n\024SetNormalizerRunning\022" + + "%.hbase.pb.SetNormalizerRunningRequest\032&" + + ".hbase.pb.SetNormalizerRunningResponse\022b" + + "\n\023IsNormalizerEnabled\022$.hbase.pb.IsNorma" + + "lizerEnabledRequest\032%.hbase.pb.IsNormali" + + "zerEnabledResponse\022S\n\016RunCatalogScan\022\037.h" + + "base.pb.RunCatalogScanRequest\032 .hbase.pb" + + ".RunCatalogScanResponse\022e\n\024EnableCatalog" + + "Janitor\022%.hbase.pb.EnableCatalogJanitorR", + "equest\032&.hbase.pb.EnableCatalogJanitorRe" + + "sponse\022n\n\027IsCatalogJanitorEnabled\022(.hbas" + + "e.pb.IsCatalogJanitorEnabledRequest\032).hb" + + "ase.pb.IsCatalogJanitorEnabledResponse\022V" + + "\n\017RunCleanerChore\022 .hbase.pb.RunCleanerC" + + "horeRequest\032!.hbase.pb.RunCleanerChoreRe" + + "sponse\022k\n\026SetCleanerChoreRunning\022\'.hbase" + + ".pb.SetCleanerChoreRunningRequest\032(.hbas" + + "e.pb.SetCleanerChoreRunningResponse\022h\n\025I" + + "sCleanerChoreEnabled\022&.hbase.pb.IsCleane", + "rChoreEnabledRequest\032\'.hbase.pb.IsCleane" + + "rChoreEnabledResponse\022^\n\021ExecMasterServi" + + "ce\022#.hbase.pb.CoprocessorServiceRequest\032" + + "$.hbase.pb.CoprocessorServiceResponse\022A\n" + + "\010Snapshot\022\031.hbase.pb.SnapshotRequest\032\032.h" + + "base.pb.SnapshotResponse\022h\n\025GetCompleted" + + "Snapshots\022&.hbase.pb.GetCompletedSnapsho" + + "tsRequest\032\'.hbase.pb.GetCompletedSnapsho" + + "tsResponse\022S\n\016DeleteSnapshot\022\037.hbase.pb." + + "DeleteSnapshotRequest\032 .hbase.pb.DeleteS", + "napshotResponse\022S\n\016IsSnapshotDone\022\037.hbas" + + "e.pb.IsSnapshotDoneRequest\032 .hbase.pb.Is" + + "SnapshotDoneResponse\022V\n\017RestoreSnapshot\022" + + " .hbase.pb.RestoreSnapshotRequest\032!.hbas" + + "e.pb.RestoreSnapshotResponse\022h\n\025IsRestor" + + "eSnapshotDone\022&.hbase.pb.IsRestoreSnapsh" + + "otDoneRequest\032\'.hbase.pb.IsRestoreSnapsh" + + "otDoneResponse\022P\n\rExecProcedure\022\036.hbase." + + "pb.ExecProcedureRequest\032\037.hbase.pb.ExecP" + + "rocedureResponse\022W\n\024ExecProcedureWithRet", + "\022\036.hbase.pb.ExecProcedureRequest\032\037.hbase" + + ".pb.ExecProcedureResponse\022V\n\017IsProcedure" + + "Done\022 .hbase.pb.IsProcedureDoneRequest\032!" + + ".hbase.pb.IsProcedureDoneResponse\022V\n\017Mod" + + "ifyNamespace\022 .hbase.pb.ModifyNamespaceR" + + "equest\032!.hbase.pb.ModifyNamespaceRespons" + + "e\022V\n\017CreateNamespace\022 .hbase.pb.CreateNa" + + "mespaceRequest\032!.hbase.pb.CreateNamespac" + + "eResponse\022V\n\017DeleteNamespace\022 .hbase.pb." + + "DeleteNamespaceRequest\032!.hbase.pb.Delete", + "NamespaceResponse\022k\n\026GetNamespaceDescrip" + + "tor\022\'.hbase.pb.GetNamespaceDescriptorReq" + + "uest\032(.hbase.pb.GetNamespaceDescriptorRe" + + "sponse\022q\n\030ListNamespaceDescriptors\022).hba" + + "se.pb.ListNamespaceDescriptorsRequest\032*." + + "hbase.pb.ListNamespaceDescriptorsRespons" + + "e\022\206\001\n\037ListTableDescriptorsByNamespace\0220." + + "hbase.pb.ListTableDescriptorsByNamespace" + + "Request\0321.hbase.pb.ListTableDescriptorsB" + + "yNamespaceResponse\022t\n\031ListTableNamesByNa", + "mespace\022*.hbase.pb.ListTableNamesByNames" + + "paceRequest\032+.hbase.pb.ListTableNamesByN" + + "amespaceResponse\022A\n\010SetQuota\022\031.hbase.pb." + + "SetQuotaRequest\032\032.hbase.pb.SetQuotaRespo" + + "nse\022x\n\037getLastMajorCompactionTimestamp\022)" + + ".hbase.pb.MajorCompactionTimestampReques" + + "t\032*.hbase.pb.MajorCompactionTimestampRes" + + "ponse\022\212\001\n(getLastMajorCompactionTimestam" + + "pForRegion\0222.hbase.pb.MajorCompactionTim" + + "estampForRegionRequest\032*.hbase.pb.MajorC", + "ompactionTimestampResponse\022_\n\022getProcedu" + + "reResult\022#.hbase.pb.GetProcedureResultRe" + + "quest\032$.hbase.pb.GetProcedureResultRespo" + + "nse\022h\n\027getSecurityCapabilities\022%.hbase.p" + + "b.SecurityCapabilitiesRequest\032&.hbase.pb" + + ".SecurityCapabilitiesResponse\022S\n\016AbortPr" + + "ocedure\022\037.hbase.pb.AbortProcedureRequest" + + "\032 .hbase.pb.AbortProcedureResponse\022S\n\016Li" + + "stProcedures\022\037.hbase.pb.ListProceduresRe" + + "quest\032 .hbase.pb.ListProceduresResponse\022", + "Y\n\020ClearDeadServers\022!.hbase.pb.ClearDead" + + "ServersRequest\032\".hbase.pb.ClearDeadServe" + + "rsResponse\022V\n\017ListDeadServers\022 .hbase.pb" + + ".ListDeadServersRequest\032!.hbase.pb.ListD" + + "eadServersResponseBB\n*org.apache.hadoop." + + "hbase.protobuf.generatedB\014MasterProtosH\001" + + "\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -67212,6 +69902,30 @@ public final class MasterProtos { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_hbase_pb_SecurityCapabilitiesResponse_descriptor, new java.lang.String[] { "Capabilities", }); + internal_static_hbase_pb_ListDeadServersRequest_descriptor = + getDescriptor().getMessageTypes().get(115); + internal_static_hbase_pb_ListDeadServersRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_hbase_pb_ListDeadServersRequest_descriptor, + new java.lang.String[] { }); + internal_static_hbase_pb_ListDeadServersResponse_descriptor = + getDescriptor().getMessageTypes().get(116); + internal_static_hbase_pb_ListDeadServersResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_hbase_pb_ListDeadServersResponse_descriptor, + new java.lang.String[] { "ServerName", }); + internal_static_hbase_pb_ClearDeadServersRequest_descriptor = + getDescriptor().getMessageTypes().get(117); + internal_static_hbase_pb_ClearDeadServersRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_hbase_pb_ClearDeadServersRequest_descriptor, + new java.lang.String[] { "ServerName", }); + internal_static_hbase_pb_ClearDeadServersResponse_descriptor = + getDescriptor().getMessageTypes().get(118); + internal_static_hbase_pb_ClearDeadServersResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_hbase_pb_ClearDeadServersResponse_descriptor, + new java.lang.String[] { "ServerName", }); return null; } }; diff --git a/hbase-protocol/src/main/protobuf/Master.proto b/hbase-protocol/src/main/protobuf/Master.proto index 4db87791349..ef8611414e8 100644 --- a/hbase-protocol/src/main/protobuf/Master.proto +++ b/hbase-protocol/src/main/protobuf/Master.proto @@ -556,6 +556,21 @@ message SecurityCapabilitiesResponse { repeated Capability capabilities = 1; } +message ListDeadServersRequest { +} + +message ListDeadServersResponse { + repeated ServerName server_name = 1; +} + +message ClearDeadServersRequest { + repeated ServerName server_name = 1; +} + +message ClearDeadServersResponse { + repeated ServerName server_name = 1; +} + service MasterService { /** Used by the client to get the number of regions that have received the updated schema */ rpc GetSchemaAlterStatus(GetSchemaAlterStatusRequest) @@ -848,4 +863,13 @@ service MasterService { /** returns a list of procedures */ rpc ListProcedures(ListProceduresRequest) returns(ListProceduresResponse); + + /** clear dead servers from master*/ + rpc ClearDeadServers(ClearDeadServersRequest) + returns(ClearDeadServersResponse); + + /** Returns a list of Dead Servers. */ + rpc ListDeadServers(ListDeadServersRequest) + returns(ListDeadServersResponse); + } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java index 2d8fdbacc5c..eab9f971189 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterAndRegionObserver.java @@ -64,6 +64,26 @@ public class BaseMasterAndRegionObserver extends BaseRegionObserver HRegionInfo regionA, HRegionInfo regionB) throws IOException { } + @Override + public void preListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void preClearDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postClearDeadServers(ObserverContext ctx) + throws IOException { + } + @Override public void preCreateTableHandler( final ObserverContext ctx, diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java index 5fe80c0deb4..373e5d5a425 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseMasterObserver.java @@ -75,6 +75,26 @@ public class BaseMasterObserver implements MasterObserver { HRegionInfo regionA, HRegionInfo regionB) throws IOException { } + @Override + public void preListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void preClearDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postClearDeadServers(ObserverContext ctx) + throws IOException { + } + @Override public void preDeleteTable(ObserverContext ctx, TableName tableName) throws IOException { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java index 24c62b2dfea..4ec02f4487a 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/MasterObserver.java @@ -1044,4 +1044,25 @@ public interface MasterObserver extends Coprocessor { */ void postDispatchMerge(final ObserverContext c, final HRegionInfo regionA, final HRegionInfo regionB) throws IOException; + + /** + * Called before list dead region servers. + */ + void preListDeadServers(ObserverContext ctx) throws IOException; + + /** + * Called after list dead region servers. + */ + void postListDeadServers(ObserverContext ctx) throws IOException; + + /** + * Called before clear dead region servers. + */ + void preClearDeadServers(ObserverContext ctx) throws IOException; + + /** + * Called after clear dead region servers. + */ + void postClearDeadServers(ObserverContext ctx) throws IOException; + } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java index 81accd2215a..75ab00ca804 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/DeadServer.java @@ -202,4 +202,17 @@ public class DeadServer { return o1.getSecond().compareTo(o2.getSecond()); } }; + + /** + * remove the specified dead server + * @param deadServerName the dead server name + * @return true if this server was removed + */ + public synchronized boolean removeDeadServer(final ServerName deadServerName) { + if (deadServers.remove(deadServerName) == null) { + return false; + } + return true; + } + } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java index 226ba069c95..9edc60e2e9d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java @@ -1172,6 +1172,47 @@ public class MasterCoprocessorHost }); } + public void preListDeadServers() throws IOException { + execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() { + @Override + public void call(MasterObserver oserver, ObserverContext ctx) + throws IOException { + oserver.preListDeadServers(ctx); + } + }); + } + + public void postListDeadServers() throws IOException { + execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() { + @Override + public void call(MasterObserver oserver, ObserverContext ctx) + throws IOException { + oserver.postListDeadServers(ctx); + } + }); + } + + public void preClearDeadServers() throws IOException { + execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() { + @Override + public void call(MasterObserver oserver, ObserverContext ctx) + throws IOException { + oserver.preClearDeadServers(ctx); + } + }); + } + + public void postClearDeadServers() throws IOException { + execOperation(coprocessors.isEmpty() ? null : new CoprocessorOperation() { + @Override + public void call(MasterObserver oserver, ObserverContext ctx) + throws IOException { + oserver.postClearDeadServers(ctx); + } + }); + } + + private static abstract class CoprocessorOperation extends ObserverContext { public CoprocessorOperation() { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java index a3adf660a49..738e8fb98d6 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java @@ -69,6 +69,8 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AssignRegionReque import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.AssignRegionResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.BalanceRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.BalanceResponse; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersRequest; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ClearDeadServersResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateNamespaceResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.CreateTableRequest; @@ -123,6 +125,8 @@ import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshot import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsRestoreSnapshotDoneResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.IsSnapshotDoneResponse; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersRequest; +import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListDeadServersResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsRequest; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListNamespaceDescriptorsResponse; import org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ListProceduresRequest; @@ -1136,6 +1140,66 @@ public class MasterRpcServices extends RSRpcServices } } + @Override + public ListDeadServersResponse listDeadServers(RpcController controller, + ListDeadServersRequest request) throws ServiceException { + + LOG.debug(master.getClientIdAuditPrefix() + " list dead region servers."); + ListDeadServersResponse.Builder response = ListDeadServersResponse.newBuilder(); + try { + master.checkInitialized(); + if (master.cpHost != null) { + master.cpHost.preListDeadServers(); + } + + Set servers = master.getServerManager().getDeadServers().copyServerNames(); + for (ServerName server : servers) { + response.addServerName(ProtobufUtil.toServerName(server)); + } + + if (master.cpHost != null) { + master.cpHost.postListDeadServers(); + } + } catch (IOException io) { + throw new ServiceException(io); + } + + return response.build(); + } + + @Override + public ClearDeadServersResponse clearDeadServers(RpcController controller, + ClearDeadServersRequest request) throws ServiceException { + LOG.debug(master.getClientIdAuditPrefix() + " clear dead region servers."); + ClearDeadServersResponse.Builder response = ClearDeadServersResponse.newBuilder(); + try { + master.checkInitialized(); + if (master.cpHost != null) { + master.cpHost.preClearDeadServers(); + } + + if (master.getServerManager().areDeadServersInProgress()) { + LOG.debug("Some dead server is still under processing, won't clear the dead server list"); + response.addAllServerName(request.getServerNameList()); + } else { + for (HBaseProtos.ServerName pbServer : request.getServerNameList()) { + if (!master.getServerManager().getDeadServers() + .removeDeadServer(ProtobufUtil.toServerName(pbServer))) { + response.addServerName(pbServer); + } + } + } + + if (master.cpHost != null) { + master.cpHost.postClearDeadServers(); + } + } catch (IOException io) { + throw new ServiceException(io); + } + return response.build(); + } + + @Override public ListNamespaceDescriptorsResponse listNamespaceDescriptors(RpcController c, ListNamespaceDescriptorsRequest request) throws ServiceException { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java index dd15c3cc1fd..e7277530292 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/AccessController.java @@ -2604,6 +2604,24 @@ public class AccessController extends BaseMasterAndRegionObserver Action.ADMIN); } + @Override + public void preListDeadServers(ObserverContext ctx) + throws IOException { } + + @Override + public void postListDeadServers(ObserverContext ctx) + throws IOException { } + + @Override + public void preClearDeadServers(ObserverContext ctx) + throws IOException { + requirePermission("clearDeadServers", Action.ADMIN); + } + + @Override + public void postClearDeadServers(ObserverContext ctx) + throws IOException { } + @Override public void preMerge(ObserverContext ctx, Region regionA, Region regionB) throws IOException { diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java index 54745f53c0e..452b2a27eb5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterObserver.java @@ -270,6 +270,26 @@ public class TestMasterObserver { postDispatchMergeCalled = true; } + @Override + public void preListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postListDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void preClearDeadServers(ObserverContext ctx) + throws IOException { + } + + @Override + public void postClearDeadServers(ObserverContext ctx) + throws IOException { + } + public boolean wasDispatchMergeCalled() { return preDispatchMergeCalled && postDispatchMergeCalled; } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java index ee8e1732ed0..f1a01c5301d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestDeadServer.java @@ -150,5 +150,23 @@ public class TestDeadServer { Assert.assertTrue(d.isEmpty()); } + @Test + public void testClearDeadServer(){ + DeadServer d = new DeadServer(); + d.add(hostname123); + d.add(hostname1234); + Assert.assertEquals(2, d.size()); + + d.removeDeadServer(hostname123); + Assert.assertEquals(1, d.size()); + d.removeDeadServer(hostname1234); + Assert.assertTrue(d.isEmpty()); + + d.add(hostname1234); + Assert.assertFalse(d.removeDeadServer(hostname123_2)); + Assert.assertEquals(1, d.size()); + Assert.assertTrue(d.removeDeadServer(hostname1234)); + Assert.assertTrue(d.isEmpty()); + } } diff --git a/hbase-shell/src/main/ruby/hbase/admin.rb b/hbase-shell/src/main/ruby/hbase/admin.rb index 0727f7cb6b5..60ae155fa5e 100644 --- a/hbase-shell/src/main/ruby/hbase/admin.rb +++ b/hbase-shell/src/main/ruby/hbase/admin.rb @@ -1170,5 +1170,27 @@ module Hbase set_user_metadata(htd, arg.delete(METADATA)) if arg[METADATA] set_descriptor_config(htd, arg.delete(CONFIGURATION)) if arg[CONFIGURATION] end + + #---------------------------------------------------------------------------------------------- + # clear dead region servers + def list_deadservers + @admin.listDeadServers.to_a + end + + #---------------------------------------------------------------------------------------------- + # clear dead region servers + def clear_deadservers(dead_servers) + # Flatten params array + dead_servers = dead_servers.flatten.compact + if dead_servers.empty? + servers = list_deadservers + else + servers = java.util.ArrayList.new + dead_servers.each do |s| + servers.add(ServerName.valueOf(s)) + end + end + @admin.clearDeadServers(servers).to_a + end end end diff --git a/hbase-shell/src/main/ruby/shell.rb b/hbase-shell/src/main/ruby/shell.rb index 99adf736cde..433ed10dc56 100644 --- a/hbase-shell/src/main/ruby/shell.rb +++ b/hbase-shell/src/main/ruby/shell.rb @@ -344,6 +344,8 @@ Shell.load_command_group( trace splitormerge_switch splitormerge_enabled + list_deadservers + clear_deadservers ], # TODO remove older hlog_roll command :aliases => { diff --git a/hbase-shell/src/main/ruby/shell/commands/clear_deadservers.rb b/hbase-shell/src/main/ruby/shell/commands/clear_deadservers.rb new file mode 100644 index 00000000000..19f1fcddfe5 --- /dev/null +++ b/hbase-shell/src/main/ruby/shell/commands/clear_deadservers.rb @@ -0,0 +1,52 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +module Shell + module Commands + class ClearDeadservers < Command + def help + <<-EOF + Clear the dead region servers that are never used. + Examples: + Clear all dead region servers: + hbase> clear_deadservers + Clear the specified dead region servers + hbase> clear_deadservers 'host187.example.com,60020,1289493121758' + or + hbase> clear_deadservers 'host187.example.com,60020,1289493121758', + 'host188.example.com,60020,1289493121758' + EOF + end + + def command(*dead_servers) + servers = admin.clear_deadservers(dead_servers) + if servers.size <= 0 + formatter.row(['true']) + else + formatter.row(['Some dead server clear failed']) + formatter.row(['SERVERNAME']) + servers.each do |server| + formatter.row([server.toString]) + end + formatter.footer(servers.size) + end + end + end + end +end diff --git a/hbase-shell/src/main/ruby/shell/commands/list_deadservers.rb b/hbase-shell/src/main/ruby/shell/commands/list_deadservers.rb new file mode 100644 index 00000000000..be3f0bf7ff0 --- /dev/null +++ b/hbase-shell/src/main/ruby/shell/commands/list_deadservers.rb @@ -0,0 +1,43 @@ +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +module Shell + module Commands + class ListDeadservers < Command + def help + <<-EOF + List all dead region servers in hbase + Examples: + hbase> list_deadservers + EOF + end + + def command + formatter.header(['SERVERNAME']) + + servers = admin.list_deadservers + servers.each do |server| + formatter.row([server.toString]) + end + + formatter.footer(servers.size) + end + end + end +end