Repository: incubator-slider Updated Branches: refs/heads/develop fa4242a5a -> c9c7eeeac
SLIDER-1197 Provide information on yarn headroom resource available Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/c9c7eeea Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/c9c7eeea Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/c9c7eeea Branch: refs/heads/develop Commit: c9c7eeeac4a12f974b8897348c5c8f6e7328b3c0 Parents: fa4242a Author: Gour Saha <gourks...@apache.org> Authored: Thu Feb 16 07:10:26 2017 -0800 Committer: Gour Saha <gourks...@apache.org> Committed: Thu Feb 16 07:10:58 2017 -0800 ---------------------------------------------------------------------- .../org/apache/slider/api/proto/Messages.java | 1131 ++++++++++++++++-- .../types/ApplicationLivenessInformation.java | 4 + .../slider/api/types/ResourceInformation.java | 43 + .../server/appmaster/SliderAppMaster.java | 9 +- .../slider/server/appmaster/state/AppState.java | 12 +- .../state/RMClientAccessForAppState.java | 44 + .../src/main/proto/SliderClusterMessages.proto | 11 + 7 files changed, 1148 insertions(+), 106 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java b/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java index 3b87fda..81a0562 100644 --- a/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java +++ b/slider-core/src/main/java/org/apache/slider/api/proto/Messages.java @@ -14629,28 +14629,596 @@ public final class Messages { // @@protoc_insertion_point(class_scope:org.apache.slider.api.GetInstanceDefinitionResponseProto) } + public interface ResourceInformationProtoOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional int32 memory = 1; + /** + * <code>optional int32 memory = 1;</code> + */ + boolean hasMemory(); + /** + * <code>optional int32 memory = 1;</code> + */ + int getMemory(); + + // optional int32 virtualCores = 2; + /** + * <code>optional int32 virtualCores = 2;</code> + */ + boolean hasVirtualCores(); + /** + * <code>optional int32 virtualCores = 2;</code> + */ + int getVirtualCores(); + } + /** + * Protobuf type {@code org.apache.slider.api.ResourceInformationProto} + * + * <pre> + ** + * See org.apache.slider.api.types.ResourceInformation + * </pre> + */ + public static final class ResourceInformationProto extends + com.google.protobuf.GeneratedMessage + implements ResourceInformationProtoOrBuilder { + // Use ResourceInformationProto.newBuilder() to construct. + private ResourceInformationProto(com.google.protobuf.GeneratedMessage.Builder<?> builder) { + super(builder); + this.unknownFields = builder.getUnknownFields(); + } + private ResourceInformationProto(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); } + + private static final ResourceInformationProto defaultInstance; + public static ResourceInformationProto getDefaultInstance() { + return defaultInstance; + } + + public ResourceInformationProto getDefaultInstanceForType() { + return defaultInstance; + } + + private final com.google.protobuf.UnknownFieldSet unknownFields; + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet + getUnknownFields() { + return this.unknownFields; + } + private ResourceInformationProto( + 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 8: { + bitField0_ |= 0x00000001; + memory_ = input.readInt32(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + virtualCores_ = input.readInt32(); + 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.slider.api.proto.Messages.internal_static_org_apache_slider_api_ResourceInformationProto_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ResourceInformationProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.slider.api.proto.Messages.ResourceInformationProto.class, org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder.class); + } + + public static com.google.protobuf.Parser<ResourceInformationProto> PARSER = + new com.google.protobuf.AbstractParser<ResourceInformationProto>() { + public ResourceInformationProto parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return new ResourceInformationProto(input, extensionRegistry); + } + }; + + @java.lang.Override + public com.google.protobuf.Parser<ResourceInformationProto> getParserForType() { + return PARSER; + } + + private int bitField0_; + // optional int32 memory = 1; + public static final int MEMORY_FIELD_NUMBER = 1; + private int memory_; + /** + * <code>optional int32 memory = 1;</code> + */ + public boolean hasMemory() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>optional int32 memory = 1;</code> + */ + public int getMemory() { + return memory_; + } + + // optional int32 virtualCores = 2; + public static final int VIRTUALCORES_FIELD_NUMBER = 2; + private int virtualCores_; + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public boolean hasVirtualCores() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public int getVirtualCores() { + return virtualCores_; + } + + private void initFields() { + memory_ = 0; + virtualCores_ = 0; + } + 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(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeInt32(1, memory_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, virtualCores_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, memory_); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, virtualCores_); + } + 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.slider.api.proto.Messages.ResourceInformationProto)) { + return super.equals(obj); + } + org.apache.slider.api.proto.Messages.ResourceInformationProto other = (org.apache.slider.api.proto.Messages.ResourceInformationProto) obj; + + boolean result = true; + result = result && (hasMemory() == other.hasMemory()); + if (hasMemory()) { + result = result && (getMemory() + == other.getMemory()); + } + result = result && (hasVirtualCores() == other.hasVirtualCores()); + if (hasVirtualCores()) { + result = result && (getVirtualCores() + == other.getVirtualCores()); + } + 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 (hasMemory()) { + hash = (37 * hash) + MEMORY_FIELD_NUMBER; + hash = (53 * hash) + getMemory(); + } + if (hasVirtualCores()) { + hash = (37 * hash) + VIRTUALCORES_FIELD_NUMBER; + hash = (53 * hash) + getVirtualCores(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto 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.slider.api.proto.Messages.ResourceInformationProto parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseFrom(input, extensionRegistry); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return PARSER.parseDelimitedFrom(input, extensionRegistry); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return PARSER.parseFrom(input); + } + public static org.apache.slider.api.proto.Messages.ResourceInformationProto 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.slider.api.proto.Messages.ResourceInformationProto 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 org.apache.slider.api.ResourceInformationProto} + * + * <pre> + ** + * See org.apache.slider.api.types.ResourceInformation + * </pre> + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ResourceInformationProto_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ResourceInformationProto_fieldAccessorTable + .ensureFieldAccessorsInitialized( + org.apache.slider.api.proto.Messages.ResourceInformationProto.class, org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder.class); + } + + // Construct using org.apache.slider.api.proto.Messages.ResourceInformationProto.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(); + memory_ = 0; + bitField0_ = (bitField0_ & ~0x00000001); + virtualCores_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return org.apache.slider.api.proto.Messages.internal_static_org_apache_slider_api_ResourceInformationProto_descriptor; + } + + public org.apache.slider.api.proto.Messages.ResourceInformationProto getDefaultInstanceForType() { + return org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance(); + } + + public org.apache.slider.api.proto.Messages.ResourceInformationProto build() { + org.apache.slider.api.proto.Messages.ResourceInformationProto result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + public org.apache.slider.api.proto.Messages.ResourceInformationProto buildPartial() { + org.apache.slider.api.proto.Messages.ResourceInformationProto result = new org.apache.slider.api.proto.Messages.ResourceInformationProto(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.memory_ = memory_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.virtualCores_ = virtualCores_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof org.apache.slider.api.proto.Messages.ResourceInformationProto) { + return mergeFrom((org.apache.slider.api.proto.Messages.ResourceInformationProto)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(org.apache.slider.api.proto.Messages.ResourceInformationProto other) { + if (other == org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance()) return this; + if (other.hasMemory()) { + setMemory(other.getMemory()); + } + if (other.hasVirtualCores()) { + setVirtualCores(other.getVirtualCores()); + } + 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.slider.api.proto.Messages.ResourceInformationProto parsedMessage = null; + try { + parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + parsedMessage = (org.apache.slider.api.proto.Messages.ResourceInformationProto) e.getUnfinishedMessage(); + throw e; + } finally { + if (parsedMessage != null) { + mergeFrom(parsedMessage); + } + } + return this; + } + private int bitField0_; + + // optional int32 memory = 1; + private int memory_ ; + /** + * <code>optional int32 memory = 1;</code> + */ + public boolean hasMemory() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + /** + * <code>optional int32 memory = 1;</code> + */ + public int getMemory() { + return memory_; + } + /** + * <code>optional int32 memory = 1;</code> + */ + public Builder setMemory(int value) { + bitField0_ |= 0x00000001; + memory_ = value; + onChanged(); + return this; + } + /** + * <code>optional int32 memory = 1;</code> + */ + public Builder clearMemory() { + bitField0_ = (bitField0_ & ~0x00000001); + memory_ = 0; + onChanged(); + return this; + } + + // optional int32 virtualCores = 2; + private int virtualCores_ ; + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public boolean hasVirtualCores() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public int getVirtualCores() { + return virtualCores_; + } + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public Builder setVirtualCores(int value) { + bitField0_ |= 0x00000002; + virtualCores_ = value; + onChanged(); + return this; + } + /** + * <code>optional int32 virtualCores = 2;</code> + */ + public Builder clearVirtualCores() { + bitField0_ = (bitField0_ & ~0x00000002); + virtualCores_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:org.apache.slider.api.ResourceInformationProto) + } + + static { + defaultInstance = new ResourceInformationProto(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:org.apache.slider.api.ResourceInformationProto) + } + public interface ApplicationLivenessInformationProtoOrBuilder extends com.google.protobuf.MessageOrBuilder { // optional bool allRequestsSatisfied = 1; /** - * <code>optional bool allRequestsSatisfied = 1;</code> + * <code>optional bool allRequestsSatisfied = 1;</code> + */ + boolean hasAllRequestsSatisfied(); + /** + * <code>optional bool allRequestsSatisfied = 1;</code> + */ + boolean getAllRequestsSatisfied(); + + // optional int32 requestsOutstanding = 2; + /** + * <code>optional int32 requestsOutstanding = 2;</code> + */ + boolean hasRequestsOutstanding(); + /** + * <code>optional int32 requestsOutstanding = 2;</code> + */ + int getRequestsOutstanding(); + + // optional int32 activeRequests = 3; + /** + * <code>optional int32 activeRequests = 3;</code> + */ + boolean hasActiveRequests(); + /** + * <code>optional int32 activeRequests = 3;</code> + */ + int getActiveRequests(); + + // optional int64 lastAllocationTime = 4; + /** + * <code>optional int64 lastAllocationTime = 4;</code> */ - boolean hasAllRequestsSatisfied(); + boolean hasLastAllocationTime(); /** - * <code>optional bool allRequestsSatisfied = 1;</code> + * <code>optional int64 lastAllocationTime = 4;</code> */ - boolean getAllRequestsSatisfied(); + long getLastAllocationTime(); - // optional int32 requestsOutstanding = 2; + // optional .org.apache.slider.api.ResourceInformationProto availableResource = 5; /** - * <code>optional int32 requestsOutstanding = 2;</code> + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> */ - boolean hasRequestsOutstanding(); + boolean hasAvailableResource(); /** - * <code>optional int32 requestsOutstanding = 2;</code> + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> */ - int getRequestsOutstanding(); + org.apache.slider.api.proto.Messages.ResourceInformationProto getAvailableResource(); + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder getAvailableResourceOrBuilder(); } /** * Protobuf type {@code org.apache.slider.api.ApplicationLivenessInformationProto} @@ -14718,6 +15286,29 @@ public final class Messages { requestsOutstanding_ = input.readInt32(); break; } + case 24: { + bitField0_ |= 0x00000004; + activeRequests_ = input.readInt32(); + break; + } + case 32: { + bitField0_ |= 0x00000008; + lastAllocationTime_ = input.readInt64(); + break; + } + case 42: { + org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder subBuilder = null; + if (((bitField0_ & 0x00000010) == 0x00000010)) { + subBuilder = availableResource_.toBuilder(); + } + availableResource_ = input.readMessage(org.apache.slider.api.proto.Messages.ResourceInformationProto.PARSER, extensionRegistry); + if (subBuilder != null) { + subBuilder.mergeFrom(availableResource_); + availableResource_ = subBuilder.buildPartial(); + } + bitField0_ |= 0x00000010; + break; + } } } } catch (com.google.protobuf.InvalidProtocolBufferException e) { @@ -14790,9 +15381,66 @@ public final class Messages { return requestsOutstanding_; } + // optional int32 activeRequests = 3; + public static final int ACTIVEREQUESTS_FIELD_NUMBER = 3; + private int activeRequests_; + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public boolean hasActiveRequests() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public int getActiveRequests() { + return activeRequests_; + } + + // optional int64 lastAllocationTime = 4; + public static final int LASTALLOCATIONTIME_FIELD_NUMBER = 4; + private long lastAllocationTime_; + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public boolean hasLastAllocationTime() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public long getLastAllocationTime() { + return lastAllocationTime_; + } + + // optional .org.apache.slider.api.ResourceInformationProto availableResource = 5; + public static final int AVAILABLERESOURCE_FIELD_NUMBER = 5; + private org.apache.slider.api.proto.Messages.ResourceInformationProto availableResource_; + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public boolean hasAvailableResource() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public org.apache.slider.api.proto.Messages.ResourceInformationProto getAvailableResource() { + return availableResource_; + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder getAvailableResourceOrBuilder() { + return availableResource_; + } + private void initFields() { allRequestsSatisfied_ = false; requestsOutstanding_ = 0; + activeRequests_ = 0; + lastAllocationTime_ = 0L; + availableResource_ = org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance(); } private byte memoizedIsInitialized = -1; public final boolean isInitialized() { @@ -14812,6 +15460,15 @@ public final class Messages { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeInt32(2, requestsOutstanding_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, activeRequests_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + output.writeInt64(4, lastAllocationTime_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + output.writeMessage(5, availableResource_); + } getUnknownFields().writeTo(output); } @@ -14829,6 +15486,18 @@ public final class Messages { size += com.google.protobuf.CodedOutputStream .computeInt32Size(2, requestsOutstanding_); } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, activeRequests_); + } + if (((bitField0_ & 0x00000008) == 0x00000008)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, lastAllocationTime_); + } + if (((bitField0_ & 0x00000010) == 0x00000010)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, availableResource_); + } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; @@ -14862,6 +15531,21 @@ public final class Messages { result = result && (getRequestsOutstanding() == other.getRequestsOutstanding()); } + result = result && (hasActiveRequests() == other.hasActiveRequests()); + if (hasActiveRequests()) { + result = result && (getActiveRequests() + == other.getActiveRequests()); + } + result = result && (hasLastAllocationTime() == other.hasLastAllocationTime()); + if (hasLastAllocationTime()) { + result = result && (getLastAllocationTime() + == other.getLastAllocationTime()); + } + result = result && (hasAvailableResource() == other.hasAvailableResource()); + if (hasAvailableResource()) { + result = result && getAvailableResource() + .equals(other.getAvailableResource()); + } result = result && getUnknownFields().equals(other.getUnknownFields()); return result; @@ -14883,6 +15567,18 @@ public final class Messages { hash = (37 * hash) + REQUESTSOUTSTANDING_FIELD_NUMBER; hash = (53 * hash) + getRequestsOutstanding(); } + if (hasActiveRequests()) { + hash = (37 * hash) + ACTIVEREQUESTS_FIELD_NUMBER; + hash = (53 * hash) + getActiveRequests(); + } + if (hasLastAllocationTime()) { + hash = (37 * hash) + LASTALLOCATIONTIME_FIELD_NUMBER; + hash = (53 * hash) + hashLong(getLastAllocationTime()); + } + if (hasAvailableResource()) { + hash = (37 * hash) + AVAILABLERESOURCE_FIELD_NUMBER; + hash = (53 * hash) + getAvailableResource().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -14989,6 +15685,7 @@ public final class Messages { } private void maybeForceBuilderInitialization() { if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + getAvailableResourceFieldBuilder(); } } private static Builder create() { @@ -15001,6 +15698,16 @@ public final class Messages { bitField0_ = (bitField0_ & ~0x00000001); requestsOutstanding_ = 0; bitField0_ = (bitField0_ & ~0x00000002); + activeRequests_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + lastAllocationTime_ = 0L; + bitField0_ = (bitField0_ & ~0x00000008); + if (availableResourceBuilder_ == null) { + availableResource_ = org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance(); + } else { + availableResourceBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); return this; } @@ -15037,6 +15744,22 @@ public final class Messages { to_bitField0_ |= 0x00000002; } result.requestsOutstanding_ = requestsOutstanding_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.activeRequests_ = activeRequests_; + if (((from_bitField0_ & 0x00000008) == 0x00000008)) { + to_bitField0_ |= 0x00000008; + } + result.lastAllocationTime_ = lastAllocationTime_; + if (((from_bitField0_ & 0x00000010) == 0x00000010)) { + to_bitField0_ |= 0x00000010; + } + if (availableResourceBuilder_ == null) { + result.availableResource_ = availableResource_; + } else { + result.availableResource_ = availableResourceBuilder_.build(); + } result.bitField0_ = to_bitField0_; onBuilt(); return result; @@ -15059,6 +15782,15 @@ public final class Messages { if (other.hasRequestsOutstanding()) { setRequestsOutstanding(other.getRequestsOutstanding()); } + if (other.hasActiveRequests()) { + setActiveRequests(other.getActiveRequests()); + } + if (other.hasLastAllocationTime()) { + setLastAllocationTime(other.getLastAllocationTime()); + } + if (other.hasAvailableResource()) { + mergeAvailableResource(other.getAvailableResource()); + } this.mergeUnknownFields(other.getUnknownFields()); return this; } @@ -15152,6 +15884,189 @@ public final class Messages { return this; } + // optional int32 activeRequests = 3; + private int activeRequests_ ; + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public boolean hasActiveRequests() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public int getActiveRequests() { + return activeRequests_; + } + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public Builder setActiveRequests(int value) { + bitField0_ |= 0x00000004; + activeRequests_ = value; + onChanged(); + return this; + } + /** + * <code>optional int32 activeRequests = 3;</code> + */ + public Builder clearActiveRequests() { + bitField0_ = (bitField0_ & ~0x00000004); + activeRequests_ = 0; + onChanged(); + return this; + } + + // optional int64 lastAllocationTime = 4; + private long lastAllocationTime_ ; + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public boolean hasLastAllocationTime() { + return ((bitField0_ & 0x00000008) == 0x00000008); + } + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public long getLastAllocationTime() { + return lastAllocationTime_; + } + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public Builder setLastAllocationTime(long value) { + bitField0_ |= 0x00000008; + lastAllocationTime_ = value; + onChanged(); + return this; + } + /** + * <code>optional int64 lastAllocationTime = 4;</code> + */ + public Builder clearLastAllocationTime() { + bitField0_ = (bitField0_ & ~0x00000008); + lastAllocationTime_ = 0L; + onChanged(); + return this; + } + + // optional .org.apache.slider.api.ResourceInformationProto availableResource = 5; + private org.apache.slider.api.proto.Messages.ResourceInformationProto availableResource_ = org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance(); + private com.google.protobuf.SingleFieldBuilder< + org.apache.slider.api.proto.Messages.ResourceInformationProto, org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder, org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder> availableResourceBuilder_; + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public boolean hasAvailableResource() { + return ((bitField0_ & 0x00000010) == 0x00000010); + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public org.apache.slider.api.proto.Messages.ResourceInformationProto getAvailableResource() { + if (availableResourceBuilder_ == null) { + return availableResource_; + } else { + return availableResourceBuilder_.getMessage(); + } + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public Builder setAvailableResource(org.apache.slider.api.proto.Messages.ResourceInformationProto value) { + if (availableResourceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + availableResource_ = value; + onChanged(); + } else { + availableResourceBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public Builder setAvailableResource( + org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder builderForValue) { + if (availableResourceBuilder_ == null) { + availableResource_ = builderForValue.build(); + onChanged(); + } else { + availableResourceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public Builder mergeAvailableResource(org.apache.slider.api.proto.Messages.ResourceInformationProto value) { + if (availableResourceBuilder_ == null) { + if (((bitField0_ & 0x00000010) == 0x00000010) && + availableResource_ != org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance()) { + availableResource_ = + org.apache.slider.api.proto.Messages.ResourceInformationProto.newBuilder(availableResource_).mergeFrom(value).buildPartial(); + } else { + availableResource_ = value; + } + onChanged(); + } else { + availableResourceBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000010; + return this; + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public Builder clearAvailableResource() { + if (availableResourceBuilder_ == null) { + availableResource_ = org.apache.slider.api.proto.Messages.ResourceInformationProto.getDefaultInstance(); + onChanged(); + } else { + availableResourceBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000010); + return this; + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder getAvailableResourceBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getAvailableResourceFieldBuilder().getBuilder(); + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + public org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder getAvailableResourceOrBuilder() { + if (availableResourceBuilder_ != null) { + return availableResourceBuilder_.getMessageOrBuilder(); + } else { + return availableResource_; + } + } + /** + * <code>optional .org.apache.slider.api.ResourceInformationProto availableResource = 5;</code> + */ + private com.google.protobuf.SingleFieldBuilder< + org.apache.slider.api.proto.Messages.ResourceInformationProto, org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder, org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder> + getAvailableResourceFieldBuilder() { + if (availableResourceBuilder_ == null) { + availableResourceBuilder_ = new com.google.protobuf.SingleFieldBuilder< + org.apache.slider.api.proto.Messages.ResourceInformationProto, org.apache.slider.api.proto.Messages.ResourceInformationProto.Builder, org.apache.slider.api.proto.Messages.ResourceInformationProtoOrBuilder>( + availableResource_, + getParentForChildren(), + isClean()); + availableResource_ = null; + } + return availableResourceBuilder_; + } + // @@protoc_insertion_point(builder_scope:org.apache.slider.api.ApplicationLivenessInformationProto) } @@ -34423,6 +35338,11 @@ public final class Messages { com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_org_apache_slider_api_GetInstanceDefinitionResponseProto_fieldAccessorTable; private static com.google.protobuf.Descriptors.Descriptor + internal_static_org_apache_slider_api_ResourceInformationProto_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_org_apache_slider_api_ResourceInformationProto_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor; private static com.google.protobuf.GeneratedMessage.FieldAccessorTable @@ -34603,69 +35523,74 @@ public final class Messages { "ResponseProto\"#\n!GetInstanceDefinitionRe" + "questProto\"^\n\"GetInstanceDefinitionRespo" + "nseProto\022\020\n\010internal\030\001 \002(\t\022\021\n\tresources\030" + - "\002 \002(\t\022\023\n\013application\030\003 \002(\t\"`\n#Applicatio" + - "nLivenessInformationProto\022\034\n\024allRequests" + - "Satisfied\030\001 \001(\010\022\033\n\023requestsOutstanding\030\002", - " \001(\005\"\256\003\n\031ComponentInformationProto\022\014\n\004na" + - "me\030\001 \001(\t\022\020\n\010priority\030\002 \001(\005\022\017\n\007desired\030\003 " + - "\001(\005\022\016\n\006actual\030\004 \001(\005\022\021\n\treleasing\030\005 \001(\005\022\021" + - "\n\trequested\030\006 \001(\005\022\016\n\006failed\030\007 \001(\005\022\017\n\007sta" + - "rted\030\010 \001(\005\022\023\n\013startFailed\030\t \001(\005\022\021\n\tcompl" + - "eted\030\n \001(\005\022\026\n\016totalRequested\030\013 \001(\005\022\026\n\016fa" + - "ilureMessage\030\014 \001(\t\022\027\n\017placementPolicy\030\r " + - "\001(\005\022\022\n\ncontainers\030\016 \003(\t\022\026\n\016failedRecentl" + - "y\030\017 \001(\005\022\022\n\nnodeFailed\030\020 \001(\005\022\021\n\tpreempted" + - "\030\021 \001(\005\022%\n\035pendingAntiAffineRequestCount\030", - "\022 \001(\005\022\036\n\026isAARequestOutstanding\030\023 \001(\010\"\261\002" + - "\n\031ContainerInformationProto\022\023\n\013container" + - "Id\030\001 \001(\t\022\021\n\tcomponent\030\002 \001(\t\022\020\n\010released\030" + - "\003 \001(\010\022\r\n\005state\030\004 \001(\005\022\020\n\010exitCode\030\005 \001(\005\022\023" + - "\n\013diagnostics\030\006 \001(\t\022\022\n\ncreateTime\030\007 \001(\003\022" + - "\021\n\tstartTime\030\010 \001(\003\022\016\n\006output\030\t \003(\t\022\014\n\004ho" + - "st\030\n \001(\t\022\017\n\007hostURL\030\013 \001(\t\022\021\n\tplacement\030\014" + - " \001(\t\022\022\n\nappVersion\030\r \001(\t\022\017\n\007logLink\030\016 \001(" + - "\t\022\026\n\016completionTime\030\017 \001(\003\"N\n\024PingInforma" + - "tionProto\022\014\n\004text\030\001 \001(\t\022\014\n\004verb\030\002 \001(\t\022\014\n", - "\004body\030\003 \001(\t\022\014\n\004time\030\004 \001(\003\"\343\001\n\031NodeEntryI" + - "nformationProto\022\020\n\010priority\030\001 \002(\005\022\021\n\treq" + - "uested\030\002 \002(\005\022\020\n\010starting\030\003 \002(\005\022\023\n\013startF" + - "ailed\030\004 \002(\005\022\016\n\006failed\030\005 \002(\005\022\026\n\016failedRec" + - "ently\030\006 \002(\005\022\021\n\tpreempted\030\007 \002(\005\022\014\n\004live\030\010" + - " \002(\005\022\021\n\treleasing\030\t \002(\005\022\020\n\010lastUsed\030\n \002(" + - "\003\022\014\n\004name\030\013 \002(\t\"\334\001\n\024NodeInformationProto" + - "\022\020\n\010hostname\030\001 \002(\t\022\r\n\005state\030\002 \002(\t\022\023\n\013htt" + - "pAddress\030\003 \002(\t\022\020\n\010rackName\030\004 \002(\t\022\016\n\006labe" + - "ls\030\005 \002(\t\022\024\n\014healthReport\030\006 \002(\t\022\023\n\013lastUp", - "dated\030\007 \002(\003\022A\n\007entries\030\010 \003(\01320.org.apach" + - "e.slider.api.NodeEntryInformationProto\"\026" + - "\n\024GetModelRequestProto\"\035\n\033GetModelDesire" + - "dRequestProto\"$\n\"GetModelDesiredAppconfR" + - "equestProto\"&\n$GetModelDesiredResourcesR" + - "equestProto\"%\n#GetModelResolvedAppconfRe" + - "questProto\"\'\n%GetModelResolvedResourcesR" + - "equestProto\"#\n!GetModelLiveResourcesRequ" + - "estProto\"\037\n\035GetLiveContainersRequestProt" + - "o\"u\n\036GetLiveContainersResponseProto\022\r\n\005n", - "ames\030\001 \003(\t\022D\n\ncontainers\030\002 \003(\01320.org.apa" + - "che.slider.api.ContainerInformationProto" + - "\"3\n\034GetLiveContainerRequestProto\022\023\n\013cont" + - "ainerId\030\001 \002(\t\"\037\n\035GetLiveComponentsReques" + - "tProto\"u\n\036GetLiveComponentsResponseProto" + - "\022\r\n\005names\030\001 \003(\t\022D\n\ncomponents\030\002 \003(\01320.or" + - "g.apache.slider.api.ComponentInformation" + - "Proto\",\n\034GetLiveComponentRequestProto\022\014\n" + - "\004name\030\001 \002(\t\"$\n\"GetApplicationLivenessReq" + - "uestProto\"\023\n\021EmptyPayloadProto\" \n\020Wrappe", - "dJsonProto\022\014\n\004json\030\001 \002(\t\"h\n\037GetCertifica" + - "teStoreRequestProto\022\020\n\010hostname\030\001 \001(\t\022\023\n" + - "\013requesterId\030\002 \002(\t\022\020\n\010password\030\003 \002(\t\022\014\n\004" + - "type\030\004 \002(\t\"1\n GetCertificateStoreRespons" + - "eProto\022\r\n\005store\030\001 \002(\014\"\032\n\030GetLiveNodesReq" + - "uestProto\"W\n\031GetLiveNodesResponseProto\022:" + - "\n\005nodes\030\001 \003(\0132+.org.apache.slider.api.No" + - "deInformationProto\"\'\n\027GetLiveNodeRequest" + - "Proto\022\014\n\004name\030\001 \002(\tB-\n\033org.apache.slider" + - ".api.protoB\010Messages\210\001\001\240\001\001" + "\002 \002(\t\022\023\n\013application\030\003 \002(\t\"@\n\030ResourceIn" + + "formationProto\022\016\n\006memory\030\001 \001(\005\022\024\n\014virtua" + + "lCores\030\002 \001(\005\"\340\001\n#ApplicationLivenessInfo", + "rmationProto\022\034\n\024allRequestsSatisfied\030\001 \001" + + "(\010\022\033\n\023requestsOutstanding\030\002 \001(\005\022\026\n\016activ" + + "eRequests\030\003 \001(\005\022\032\n\022lastAllocationTime\030\004 " + + "\001(\003\022J\n\021availableResource\030\005 \001(\0132/.org.apa" + + "che.slider.api.ResourceInformationProto\"" + + "\256\003\n\031ComponentInformationProto\022\014\n\004name\030\001 " + + "\001(\t\022\020\n\010priority\030\002 \001(\005\022\017\n\007desired\030\003 \001(\005\022\016" + + "\n\006actual\030\004 \001(\005\022\021\n\treleasing\030\005 \001(\005\022\021\n\treq" + + "uested\030\006 \001(\005\022\016\n\006failed\030\007 \001(\005\022\017\n\007started\030" + + "\010 \001(\005\022\023\n\013startFailed\030\t \001(\005\022\021\n\tcompleted\030", + "\n \001(\005\022\026\n\016totalRequested\030\013 \001(\005\022\026\n\016failure" + + "Message\030\014 \001(\t\022\027\n\017placementPolicy\030\r \001(\005\022\022" + + "\n\ncontainers\030\016 \003(\t\022\026\n\016failedRecently\030\017 \001" + + "(\005\022\022\n\nnodeFailed\030\020 \001(\005\022\021\n\tpreempted\030\021 \001(" + + "\005\022%\n\035pendingAntiAffineRequestCount\030\022 \001(\005" + + "\022\036\n\026isAARequestOutstanding\030\023 \001(\010\"\261\002\n\031Con" + + "tainerInformationProto\022\023\n\013containerId\030\001 " + + "\001(\t\022\021\n\tcomponent\030\002 \001(\t\022\020\n\010released\030\003 \001(\010" + + "\022\r\n\005state\030\004 \001(\005\022\020\n\010exitCode\030\005 \001(\005\022\023\n\013dia" + + "gnostics\030\006 \001(\t\022\022\n\ncreateTime\030\007 \001(\003\022\021\n\tst", + "artTime\030\010 \001(\003\022\016\n\006output\030\t \003(\t\022\014\n\004host\030\n " + + "\001(\t\022\017\n\007hostURL\030\013 \001(\t\022\021\n\tplacement\030\014 \001(\t\022" + + "\022\n\nappVersion\030\r \001(\t\022\017\n\007logLink\030\016 \001(\t\022\026\n\016" + + "completionTime\030\017 \001(\003\"N\n\024PingInformationP" + + "roto\022\014\n\004text\030\001 \001(\t\022\014\n\004verb\030\002 \001(\t\022\014\n\004body" + + "\030\003 \001(\t\022\014\n\004time\030\004 \001(\003\"\343\001\n\031NodeEntryInform" + + "ationProto\022\020\n\010priority\030\001 \002(\005\022\021\n\trequeste" + + "d\030\002 \002(\005\022\020\n\010starting\030\003 \002(\005\022\023\n\013startFailed" + + "\030\004 \002(\005\022\016\n\006failed\030\005 \002(\005\022\026\n\016failedRecently" + + "\030\006 \002(\005\022\021\n\tpreempted\030\007 \002(\005\022\014\n\004live\030\010 \002(\005\022", + "\021\n\treleasing\030\t \002(\005\022\020\n\010lastUsed\030\n \002(\003\022\014\n\004" + + "name\030\013 \002(\t\"\334\001\n\024NodeInformationProto\022\020\n\010h" + + "ostname\030\001 \002(\t\022\r\n\005state\030\002 \002(\t\022\023\n\013httpAddr" + + "ess\030\003 \002(\t\022\020\n\010rackName\030\004 \002(\t\022\016\n\006labels\030\005 " + + "\002(\t\022\024\n\014healthReport\030\006 \002(\t\022\023\n\013lastUpdated" + + "\030\007 \002(\003\022A\n\007entries\030\010 \003(\01320.org.apache.sli" + + "der.api.NodeEntryInformationProto\"\026\n\024Get" + + "ModelRequestProto\"\035\n\033GetModelDesiredRequ" + + "estProto\"$\n\"GetModelDesiredAppconfReques" + + "tProto\"&\n$GetModelDesiredResourcesReques", + "tProto\"%\n#GetModelResolvedAppconfRequest" + + "Proto\"\'\n%GetModelResolvedResourcesReques" + + "tProto\"#\n!GetModelLiveResourcesRequestPr" + + "oto\"\037\n\035GetLiveContainersRequestProto\"u\n\036" + + "GetLiveContainersResponseProto\022\r\n\005names\030" + + "\001 \003(\t\022D\n\ncontainers\030\002 \003(\01320.org.apache.s" + + "lider.api.ContainerInformationProto\"3\n\034G" + + "etLiveContainerRequestProto\022\023\n\013container" + + "Id\030\001 \002(\t\"\037\n\035GetLiveComponentsRequestProt" + + "o\"u\n\036GetLiveComponentsResponseProto\022\r\n\005n", + "ames\030\001 \003(\t\022D\n\ncomponents\030\002 \003(\01320.org.apa" + + "che.slider.api.ComponentInformationProto" + + "\",\n\034GetLiveComponentRequestProto\022\014\n\004name" + + "\030\001 \002(\t\"$\n\"GetApplicationLivenessRequestP" + + "roto\"\023\n\021EmptyPayloadProto\" \n\020WrappedJson" + + "Proto\022\014\n\004json\030\001 \002(\t\"h\n\037GetCertificateSto" + + "reRequestProto\022\020\n\010hostname\030\001 \001(\t\022\023\n\013requ" + + "esterId\030\002 \002(\t\022\020\n\010password\030\003 \002(\t\022\014\n\004type\030" + + "\004 \002(\t\"1\n GetCertificateStoreResponseProt" + + "o\022\r\n\005store\030\001 \002(\014\"\032\n\030GetLiveNodesRequestP", + "roto\"W\n\031GetLiveNodesResponseProto\022:\n\005nod" + + "es\030\001 \003(\0132+.org.apache.slider.api.NodeInf" + + "ormationProto\"\'\n\027GetLiveNodeRequestProto" + + "\022\014\n\004name\030\001 \002(\tB-\n\033org.apache.slider.api." + + "protoB\010Messages\210\001\001\240\001\001" }; com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { @@ -34810,164 +35735,170 @@ public final class Messages { com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetInstanceDefinitionResponseProto_descriptor, new java.lang.String[] { "Internal", "Resources", "Application", }); - internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor = + internal_static_org_apache_slider_api_ResourceInformationProto_descriptor = getDescriptor().getMessageTypes().get(23); + internal_static_org_apache_slider_api_ResourceInformationProto_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_org_apache_slider_api_ResourceInformationProto_descriptor, + new java.lang.String[] { "Memory", "VirtualCores", }); + internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor = + getDescriptor().getMessageTypes().get(24); internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_ApplicationLivenessInformationProto_descriptor, - new java.lang.String[] { "AllRequestsSatisfied", "RequestsOutstanding", }); + new java.lang.String[] { "AllRequestsSatisfied", "RequestsOutstanding", "ActiveRequests", "LastAllocationTime", "AvailableResource", }); internal_static_org_apache_slider_api_ComponentInformationProto_descriptor = - getDescriptor().getMessageTypes().get(24); + getDescriptor().getMessageTypes().get(25); internal_static_org_apache_slider_api_ComponentInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_ComponentInformationProto_descriptor, new java.lang.String[] { "Name", "Priority", "Desired", "Actual", "Releasing", "Requested", "Failed", "Started", "StartFailed", "Completed", "TotalRequested", "FailureMessage", "PlacementPolicy", "Containers", "FailedRecently", "NodeFailed", "Preempted", "PendingAntiAffineRequestCount", "IsAARequestOutstanding", }); internal_static_org_apache_slider_api_ContainerInformationProto_descriptor = - getDescriptor().getMessageTypes().get(25); + getDescriptor().getMessageTypes().get(26); internal_static_org_apache_slider_api_ContainerInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_ContainerInformationProto_descriptor, new java.lang.String[] { "ContainerId", "Component", "Released", "State", "ExitCode", "Diagnostics", "CreateTime", "StartTime", "Output", "Host", "HostURL", "Placement", "AppVersion", "LogLink", "CompletionTime", }); internal_static_org_apache_slider_api_PingInformationProto_descriptor = - getDescriptor().getMessageTypes().get(26); + getDescriptor().getMessageTypes().get(27); internal_static_org_apache_slider_api_PingInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_PingInformationProto_descriptor, new java.lang.String[] { "Text", "Verb", "Body", "Time", }); internal_static_org_apache_slider_api_NodeEntryInformationProto_descriptor = - getDescriptor().getMessageTypes().get(27); + getDescriptor().getMessageTypes().get(28); internal_static_org_apache_slider_api_NodeEntryInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_NodeEntryInformationProto_descriptor, new java.lang.String[] { "Priority", "Requested", "Starting", "StartFailed", "Failed", "FailedRecently", "Preempted", "Live", "Releasing", "LastUsed", "Name", }); internal_static_org_apache_slider_api_NodeInformationProto_descriptor = - getDescriptor().getMessageTypes().get(28); + getDescriptor().getMessageTypes().get(29); internal_static_org_apache_slider_api_NodeInformationProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_NodeInformationProto_descriptor, new java.lang.String[] { "Hostname", "State", "HttpAddress", "RackName", "Labels", "HealthReport", "LastUpdated", "Entries", }); internal_static_org_apache_slider_api_GetModelRequestProto_descriptor = - getDescriptor().getMessageTypes().get(29); + getDescriptor().getMessageTypes().get(30); internal_static_org_apache_slider_api_GetModelRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelDesiredRequestProto_descriptor = - getDescriptor().getMessageTypes().get(30); + getDescriptor().getMessageTypes().get(31); internal_static_org_apache_slider_api_GetModelDesiredRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelDesiredRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelDesiredAppconfRequestProto_descriptor = - getDescriptor().getMessageTypes().get(31); + getDescriptor().getMessageTypes().get(32); internal_static_org_apache_slider_api_GetModelDesiredAppconfRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelDesiredAppconfRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelDesiredResourcesRequestProto_descriptor = - getDescriptor().getMessageTypes().get(32); + getDescriptor().getMessageTypes().get(33); internal_static_org_apache_slider_api_GetModelDesiredResourcesRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelDesiredResourcesRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelResolvedAppconfRequestProto_descriptor = - getDescriptor().getMessageTypes().get(33); + getDescriptor().getMessageTypes().get(34); internal_static_org_apache_slider_api_GetModelResolvedAppconfRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelResolvedAppconfRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelResolvedResourcesRequestProto_descriptor = - getDescriptor().getMessageTypes().get(34); + getDescriptor().getMessageTypes().get(35); internal_static_org_apache_slider_api_GetModelResolvedResourcesRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelResolvedResourcesRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetModelLiveResourcesRequestProto_descriptor = - getDescriptor().getMessageTypes().get(35); + getDescriptor().getMessageTypes().get(36); internal_static_org_apache_slider_api_GetModelLiveResourcesRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetModelLiveResourcesRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetLiveContainersRequestProto_descriptor = - getDescriptor().getMessageTypes().get(36); + getDescriptor().getMessageTypes().get(37); internal_static_org_apache_slider_api_GetLiveContainersRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveContainersRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetLiveContainersResponseProto_descriptor = - getDescriptor().getMessageTypes().get(37); + getDescriptor().getMessageTypes().get(38); internal_static_org_apache_slider_api_GetLiveContainersResponseProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveContainersResponseProto_descriptor, new java.lang.String[] { "Names", "Containers", }); internal_static_org_apache_slider_api_GetLiveContainerRequestProto_descriptor = - getDescriptor().getMessageTypes().get(38); + getDescriptor().getMessageTypes().get(39); internal_static_org_apache_slider_api_GetLiveContainerRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveContainerRequestProto_descriptor, new java.lang.String[] { "ContainerId", }); internal_static_org_apache_slider_api_GetLiveComponentsRequestProto_descriptor = - getDescriptor().getMessageTypes().get(39); + getDescriptor().getMessageTypes().get(40); internal_static_org_apache_slider_api_GetLiveComponentsRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveComponentsRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetLiveComponentsResponseProto_descriptor = - getDescriptor().getMessageTypes().get(40); + getDescriptor().getMessageTypes().get(41); internal_static_org_apache_slider_api_GetLiveComponentsResponseProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveComponentsResponseProto_descriptor, new java.lang.String[] { "Names", "Components", }); internal_static_org_apache_slider_api_GetLiveComponentRequestProto_descriptor = - getDescriptor().getMessageTypes().get(41); + getDescriptor().getMessageTypes().get(42); internal_static_org_apache_slider_api_GetLiveComponentRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveComponentRequestProto_descriptor, new java.lang.String[] { "Name", }); internal_static_org_apache_slider_api_GetApplicationLivenessRequestProto_descriptor = - getDescriptor().getMessageTypes().get(42); + getDescriptor().getMessageTypes().get(43); internal_static_org_apache_slider_api_GetApplicationLivenessRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetApplicationLivenessRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_EmptyPayloadProto_descriptor = - getDescriptor().getMessageTypes().get(43); + getDescriptor().getMessageTypes().get(44); internal_static_org_apache_slider_api_EmptyPayloadProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_EmptyPayloadProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_WrappedJsonProto_descriptor = - getDescriptor().getMessageTypes().get(44); + getDescriptor().getMessageTypes().get(45); internal_static_org_apache_slider_api_WrappedJsonProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_WrappedJsonProto_descriptor, new java.lang.String[] { "Json", }); internal_static_org_apache_slider_api_GetCertificateStoreRequestProto_descriptor = - getDescriptor().getMessageTypes().get(45); + getDescriptor().getMessageTypes().get(46); internal_static_org_apache_slider_api_GetCertificateStoreRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetCertificateStoreRequestProto_descriptor, new java.lang.String[] { "Hostname", "RequesterId", "Password", "Type", }); internal_static_org_apache_slider_api_GetCertificateStoreResponseProto_descriptor = - getDescriptor().getMessageTypes().get(46); + getDescriptor().getMessageTypes().get(47); internal_static_org_apache_slider_api_GetCertificateStoreResponseProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetCertificateStoreResponseProto_descriptor, new java.lang.String[] { "Store", }); internal_static_org_apache_slider_api_GetLiveNodesRequestProto_descriptor = - getDescriptor().getMessageTypes().get(47); + getDescriptor().getMessageTypes().get(48); internal_static_org_apache_slider_api_GetLiveNodesRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveNodesRequestProto_descriptor, new java.lang.String[] { }); internal_static_org_apache_slider_api_GetLiveNodesResponseProto_descriptor = - getDescriptor().getMessageTypes().get(48); + getDescriptor().getMessageTypes().get(49); internal_static_org_apache_slider_api_GetLiveNodesResponseProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveNodesResponseProto_descriptor, new java.lang.String[] { "Nodes", }); internal_static_org_apache_slider_api_GetLiveNodeRequestProto_descriptor = - getDescriptor().getMessageTypes().get(49); + getDescriptor().getMessageTypes().get(50); internal_static_org_apache_slider_api_GetLiveNodeRequestProto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_org_apache_slider_api_GetLiveNodeRequestProto_descriptor, http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java b/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java index e72bf58..1aea3a3 100644 --- a/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java +++ b/slider-core/src/main/java/org/apache/slider/api/types/ApplicationLivenessInformation.java @@ -42,6 +42,9 @@ public class ApplicationLivenessInformation { /** stores the allocation time of the most recently created container */ public long lastAllocationTime; + /** stores the headroom resource available to this application attempt */ + public ResourceInformation availableResource; + @Override public String toString() { final StringBuilder sb = @@ -50,6 +53,7 @@ public class ApplicationLivenessInformation { sb.append(", requestsOutstanding=").append(requestsOutstanding); sb.append(", activeRequests=").append(activeRequests); sb.append(", lastAllocationTime=").append(lastAllocationTime); + sb.append(", availableResource=").append(availableResource); sb.append('}'); return sb.toString(); } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/api/types/ResourceInformation.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/api/types/ResourceInformation.java b/slider-core/src/main/java/org/apache/slider/api/types/ResourceInformation.java new file mode 100644 index 0000000..e5f2205 --- /dev/null +++ b/slider-core/src/main/java/org/apache/slider/api/types/ResourceInformation.java @@ -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. + */ + +package org.apache.slider.api.types; + +import org.codehaus.jackson.annotate.JsonIgnoreProperties; +import org.codehaus.jackson.map.annotate.JsonSerialize; + +/** + * Serialized information for resource + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +public class ResourceInformation { + public int memory; + public int virtualCores; + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("ResourceInformation [memory="); + builder.append(memory); + builder.append(", virtualCores="); + builder.append(virtualCores); + builder.append("]"); + return builder.toString(); + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java index 3d63254..bc0339a 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java @@ -27,7 +27,6 @@ import com.google.common.base.Preconditions; import com.google.protobuf.BlockingService; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.fs.Path; @@ -53,7 +52,6 @@ import org.apache.hadoop.yarn.api.records.ApplicationAttemptId; import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport; import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.api.records.Container; -import org.apache.hadoop.yarn.api.records.ContainerExitStatus; import org.apache.hadoop.yarn.api.records.ContainerId; import org.apache.hadoop.yarn.api.records.ContainerLaunchContext; import org.apache.hadoop.yarn.api.records.ContainerState; @@ -92,11 +90,9 @@ import org.apache.slider.api.ClusterDescription; import org.apache.slider.api.InternalKeys; import org.apache.slider.api.ResourceKeys; import org.apache.slider.api.RoleKeys; -import org.apache.slider.api.StateValues; import org.apache.slider.api.StatusKeys; import org.apache.slider.api.proto.SliderClusterAPI; import org.apache.slider.api.types.ApplicationDiagnostics; -import org.apache.slider.api.types.ContainerInformation; import org.apache.slider.client.SliderYarnClientImpl; import org.apache.slider.common.SliderExitCodes; import org.apache.slider.common.SliderKeys; @@ -162,6 +158,7 @@ import org.apache.slider.server.appmaster.state.AppState; import org.apache.slider.server.appmaster.state.AppStateBindingInfo; import org.apache.slider.server.appmaster.state.ContainerAssignment; import org.apache.slider.server.appmaster.state.ProviderAppState; +import org.apache.slider.server.appmaster.state.RMClientAccessForAppState; import org.apache.slider.server.appmaster.operations.RMOperationHandler; import org.apache.slider.server.appmaster.state.RoleInstance; import org.apache.slider.server.appmaster.web.AgentService; @@ -731,7 +728,9 @@ public class SliderAppMaster extends AbstractSliderLaunchedService addService(asyncRMClient); //now bring it up deployChildService(asyncRMClient); - + RMClientAccessForAppState rmClientAccess = new RMClientAccessForAppState( + asyncRMClient); + appState.setRMClientAccessForAppState(rmClientAccess); // nmclient relays callbacks back to this class nmClientAsync = new NMClientAsyncImpl("nmclient", this); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java index 183f740..187c292 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java @@ -49,9 +49,10 @@ import org.apache.slider.api.ResourceKeys; import org.apache.slider.api.StateValues; import org.apache.slider.api.StatusKeys; import org.apache.slider.api.types.ApplicationLivenessInformation; +import org.apache.slider.api.types.ApplicationDiagnostics; import org.apache.slider.api.types.ComponentInformation; import org.apache.slider.api.types.ContainerInformation; -import org.apache.slider.api.types.ApplicationDiagnostics; +import org.apache.slider.api.types.ResourceInformation; import org.apache.slider.api.types.RoleStatistics; import org.apache.slider.common.SliderExitCodes; import org.apache.slider.common.SliderKeys; @@ -303,6 +304,7 @@ public class AppState { private Resource maxResource; private long lastAllocationTime; + private RMClientAccessForAppState rmClientAccess; /** * Create an instance @@ -420,6 +422,11 @@ public class AppState { this.clusterStatus = clusterDesc; } + public void setRMClientAccessForAppState( + RMClientAccessForAppState rmClientAccess) { + this.rmClientAccess = rmClientAccess; + } + /** * Set the instance definition -this also builds the (now obsolete) * cluster specification from it. @@ -1929,6 +1936,9 @@ public class AppState { li.allRequestsSatisfied = outstanding <= 0; li.activeRequests = (int)stats.requested; li.lastAllocationTime = this.lastAllocationTime; + if (rmClientAccess != null) { + li.availableResource = rmClientAccess.getAvailableResource(); + } return li; } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RMClientAccessForAppState.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RMClientAccessForAppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RMClientAccessForAppState.java new file mode 100644 index 0000000..08b71c8 --- /dev/null +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RMClientAccessForAppState.java @@ -0,0 +1,44 @@ +/* + * 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. + */ + +package org.apache.slider.server.appmaster.state; + +import org.apache.hadoop.yarn.api.records.Resource; +import org.apache.hadoop.yarn.client.api.async.AMRMClientAsync; +import org.apache.slider.api.types.ResourceInformation; + +public class RMClientAccessForAppState { + private AMRMClientAsync amRmClientAsync; + + public RMClientAccessForAppState(AMRMClientAsync amRmClientAsync) { + this.amRmClientAsync = amRmClientAsync; + } + + /** + * Retrieve the latest headroom resource info for an application attempt from + * Yarn. + */ + public ResourceInformation getAvailableResource() { + ResourceInformation ri = new ResourceInformation(); + Resource res = amRmClientAsync.getAvailableResources(); + ri.memory = res.getMemory(); + ri.virtualCores = res.getVirtualCores(); + return ri; + } + +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c9c7eeea/slider-core/src/main/proto/SliderClusterMessages.proto ---------------------------------------------------------------------- diff --git a/slider-core/src/main/proto/SliderClusterMessages.proto b/slider-core/src/main/proto/SliderClusterMessages.proto index f326b29..1e44a1b 100644 --- a/slider-core/src/main/proto/SliderClusterMessages.proto +++ b/slider-core/src/main/proto/SliderClusterMessages.proto @@ -228,11 +228,22 @@ message GetInstanceDefinitionResponseProto { **************************************************************************/ /** + * See org.apache.slider.api.types.ResourceInformation + */ +message ResourceInformationProto { + optional int32 memory = 1; + optional int32 virtualCores = 2; +} + +/** * See org.apache.slider.api.types.ApplicationLivenessInformation */ message ApplicationLivenessInformationProto { optional bool allRequestsSatisfied = 1; optional int32 requestsOutstanding = 2; + optional int32 activeRequests = 3; + optional int64 lastAllocationTime = 4; + optional ResourceInformationProto availableResource = 5; } /*