You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/11/23 18:20:51 UTC
[39/50] incubator-slider git commit: SLIDER-994 add "nodemap" command
to get the (JSON) nodemap of the YARN cluster
SLIDER-994 add "nodemap" command to get the (JSON) nodemap of the YARN cluster
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/cc94e056
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/cc94e056
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/cc94e056
Branch: refs/heads/develop
Commit: cc94e056c3b0e8436932417503e08f33d0a4f0bb
Parents: 0c1977b
Author: Steve Loughran <st...@apache.org>
Authored: Fri Nov 20 19:06:05 2015 +0000
Committer: Steve Loughran <st...@apache.org>
Committed: Fri Nov 20 19:06:05 2015 +0000
----------------------------------------------------------------------
.../apache/slider/api/SliderApplicationApi.java | 7 +-
.../org/apache/slider/api/proto/Messages.java | 293 ++++---------------
.../org/apache/slider/client/SliderClient.java | 16 +-
.../client/ipc/SliderApplicationIpcClient.java | 3 +-
.../client/ipc/SliderClusterOperations.java | 24 +-
.../rest/SliderApplicationApiRestClient.java | 11 +-
.../server/appmaster/rpc/SliderIPCService.java | 9 +-
.../rest/application/ApplicationResource.java | 15 +-
.../resources/LiveNodesRefresher.java | 11 +-
.../src/main/proto/SliderClusterMessages.proto | 8 +-
.../rest/AbstractAppApiTestDelegates.groovy | 10 +-
.../providers/agent/TestAgentAAEcho.groovy | 4 +
12 files changed, 112 insertions(+), 299 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/api/SliderApplicationApi.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/api/SliderApplicationApi.java b/slider-core/src/main/java/org/apache/slider/api/SliderApplicationApi.java
index 750dba5..d21785f 100644
--- a/slider-core/src/main/java/org/apache/slider/api/SliderApplicationApi.java
+++ b/slider-core/src/main/java/org/apache/slider/api/SliderApplicationApi.java
@@ -22,6 +22,7 @@ import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.api.types.PingInformation;
import org.apache.slider.core.conf.AggregateConf;
import org.apache.slider.core.conf.ConfTree;
@@ -126,13 +127,13 @@ public interface SliderApplicationApi {
* @throws IOException on any failure
*/
ComponentInformation getComponent(String componentName) throws IOException;
-
+
/**
* List all nodes into a map of [name:info]
- * @return a possibly empty map of nodes
+ * @return a possibly empty list of nodes
* @throws IOException on any failure
*/
- Map<String, NodeInformation> getLiveNodes() throws IOException;
+ NodeInformationList getLiveNodes() throws IOException;
/**
* Get information about a node
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/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 ed056f5..6dd5849 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
@@ -32389,47 +32389,27 @@ public final class Messages {
public interface GetLiveNodesResponseProtoOrBuilder
extends com.google.protobuf.MessageOrBuilder {
- // repeated string names = 1;
- /**
- * <code>repeated string names = 1;</code>
- */
- java.util.List<java.lang.String>
- getNamesList();
- /**
- * <code>repeated string names = 1;</code>
- */
- int getNamesCount();
+ // repeated .org.apache.slider.api.NodeInformationProto nodes = 1;
/**
- * <code>repeated string names = 1;</code>
- */
- java.lang.String getNames(int index);
- /**
- * <code>repeated string names = 1;</code>
- */
- com.google.protobuf.ByteString
- getNamesBytes(int index);
-
- // repeated .org.apache.slider.api.NodeInformationProto nodes = 2;
- /**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto>
getNodesList();
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
org.apache.slider.api.proto.Messages.NodeInformationProto getNodes(int index);
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
int getNodesCount();
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
java.util.List<? extends org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder>
getNodesOrBuilderList();
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder getNodesOrBuilder(
int index);
@@ -32487,16 +32467,8 @@ public final class Messages {
}
case 10: {
if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
- names_ = new com.google.protobuf.LazyStringArrayList();
- mutable_bitField0_ |= 0x00000001;
- }
- names_.add(input.readBytes());
- break;
- }
- case 18: {
- if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
nodes_ = new java.util.ArrayList<org.apache.slider.api.proto.Messages.NodeInformationProto>();
- mutable_bitField0_ |= 0x00000002;
+ mutable_bitField0_ |= 0x00000001;
}
nodes_.add(input.readMessage(org.apache.slider.api.proto.Messages.NodeInformationProto.PARSER, extensionRegistry));
break;
@@ -32510,9 +32482,6 @@ public final class Messages {
e.getMessage()).setUnfinishedMessage(this);
} finally {
if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
- names_ = new com.google.protobuf.UnmodifiableLazyStringList(names_);
- }
- if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
nodes_ = java.util.Collections.unmodifiableList(nodes_);
}
this.unknownFields = unknownFields.build();
@@ -32546,66 +32515,36 @@ public final class Messages {
return PARSER;
}
- // repeated string names = 1;
- public static final int NAMES_FIELD_NUMBER = 1;
- private com.google.protobuf.LazyStringList names_;
- /**
- * <code>repeated string names = 1;</code>
- */
- public java.util.List<java.lang.String>
- getNamesList() {
- return names_;
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public int getNamesCount() {
- return names_.size();
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public java.lang.String getNames(int index) {
- return names_.get(index);
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public com.google.protobuf.ByteString
- getNamesBytes(int index) {
- return names_.getByteString(index);
- }
-
- // repeated .org.apache.slider.api.NodeInformationProto nodes = 2;
- public static final int NODES_FIELD_NUMBER = 2;
+ // repeated .org.apache.slider.api.NodeInformationProto nodes = 1;
+ public static final int NODES_FIELD_NUMBER = 1;
private java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto> nodes_;
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto> getNodesList() {
return nodes_;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public java.util.List<? extends org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder>
getNodesOrBuilderList() {
return nodes_;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public int getNodesCount() {
return nodes_.size();
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProto getNodes(int index) {
return nodes_.get(index);
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder getNodesOrBuilder(
int index) {
@@ -32613,7 +32552,6 @@ public final class Messages {
}
private void initFields() {
- names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
nodes_ = java.util.Collections.emptyList();
}
private byte memoizedIsInitialized = -1;
@@ -32634,11 +32572,8 @@ public final class Messages {
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
- for (int i = 0; i < names_.size(); i++) {
- output.writeBytes(1, names_.getByteString(i));
- }
for (int i = 0; i < nodes_.size(); i++) {
- output.writeMessage(2, nodes_.get(i));
+ output.writeMessage(1, nodes_.get(i));
}
getUnknownFields().writeTo(output);
}
@@ -32649,18 +32584,9 @@ public final class Messages {
if (size != -1) return size;
size = 0;
- {
- int dataSize = 0;
- for (int i = 0; i < names_.size(); i++) {
- dataSize += com.google.protobuf.CodedOutputStream
- .computeBytesSizeNoTag(names_.getByteString(i));
- }
- size += dataSize;
- size += 1 * getNamesList().size();
- }
for (int i = 0; i < nodes_.size(); i++) {
size += com.google.protobuf.CodedOutputStream
- .computeMessageSize(2, nodes_.get(i));
+ .computeMessageSize(1, nodes_.get(i));
}
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
@@ -32685,8 +32611,6 @@ public final class Messages {
org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto other = (org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto) obj;
boolean result = true;
- result = result && getNamesList()
- .equals(other.getNamesList());
result = result && getNodesList()
.equals(other.getNodesList());
result = result &&
@@ -32702,10 +32626,6 @@ public final class Messages {
}
int hash = 41;
hash = (19 * hash) + getDescriptorForType().hashCode();
- if (getNamesCount() > 0) {
- hash = (37 * hash) + NAMES_FIELD_NUMBER;
- hash = (53 * hash) + getNamesList().hashCode();
- }
if (getNodesCount() > 0) {
hash = (37 * hash) + NODES_FIELD_NUMBER;
hash = (53 * hash) + getNodesList().hashCode();
@@ -32820,11 +32740,9 @@ public final class Messages {
public Builder clear() {
super.clear();
- names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- bitField0_ = (bitField0_ & ~0x00000001);
if (nodesBuilder_ == null) {
nodes_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000001);
} else {
nodesBuilder_.clear();
}
@@ -32855,16 +32773,10 @@ public final class Messages {
public org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto buildPartial() {
org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto result = new org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto(this);
int from_bitField0_ = bitField0_;
- if (((bitField0_ & 0x00000001) == 0x00000001)) {
- names_ = new com.google.protobuf.UnmodifiableLazyStringList(
- names_);
- bitField0_ = (bitField0_ & ~0x00000001);
- }
- result.names_ = names_;
if (nodesBuilder_ == null) {
- if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
nodes_ = java.util.Collections.unmodifiableList(nodes_);
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000001);
}
result.nodes_ = nodes_;
} else {
@@ -32885,21 +32797,11 @@ public final class Messages {
public Builder mergeFrom(org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto other) {
if (other == org.apache.slider.api.proto.Messages.GetLiveNodesResponseProto.getDefaultInstance()) return this;
- if (!other.names_.isEmpty()) {
- if (names_.isEmpty()) {
- names_ = other.names_;
- bitField0_ = (bitField0_ & ~0x00000001);
- } else {
- ensureNamesIsMutable();
- names_.addAll(other.names_);
- }
- onChanged();
- }
if (nodesBuilder_ == null) {
if (!other.nodes_.isEmpty()) {
if (nodes_.isEmpty()) {
nodes_ = other.nodes_;
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000001);
} else {
ensureNodesIsMutable();
nodes_.addAll(other.nodes_);
@@ -32912,7 +32814,7 @@ public final class Messages {
nodesBuilder_.dispose();
nodesBuilder_ = null;
nodes_ = other.nodes_;
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000001);
nodesBuilder_ =
com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
getNodesFieldBuilder() : null;
@@ -32954,106 +32856,13 @@ public final class Messages {
}
private int bitField0_;
- // repeated string names = 1;
- private com.google.protobuf.LazyStringList names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- private void ensureNamesIsMutable() {
- if (!((bitField0_ & 0x00000001) == 0x00000001)) {
- names_ = new com.google.protobuf.LazyStringArrayList(names_);
- bitField0_ |= 0x00000001;
- }
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public java.util.List<java.lang.String>
- getNamesList() {
- return java.util.Collections.unmodifiableList(names_);
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public int getNamesCount() {
- return names_.size();
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public java.lang.String getNames(int index) {
- return names_.get(index);
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public com.google.protobuf.ByteString
- getNamesBytes(int index) {
- return names_.getByteString(index);
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public Builder setNames(
- int index, java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureNamesIsMutable();
- names_.set(index, value);
- onChanged();
- return this;
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public Builder addNames(
- java.lang.String value) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureNamesIsMutable();
- names_.add(value);
- onChanged();
- return this;
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public Builder addAllNames(
- java.lang.Iterable<java.lang.String> values) {
- ensureNamesIsMutable();
- super.addAll(values, names_);
- onChanged();
- return this;
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public Builder clearNames() {
- names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
- bitField0_ = (bitField0_ & ~0x00000001);
- onChanged();
- return this;
- }
- /**
- * <code>repeated string names = 1;</code>
- */
- public Builder addNamesBytes(
- com.google.protobuf.ByteString value) {
- if (value == null) {
- throw new NullPointerException();
- }
- ensureNamesIsMutable();
- names_.add(value);
- onChanged();
- return this;
- }
-
- // repeated .org.apache.slider.api.NodeInformationProto nodes = 2;
+ // repeated .org.apache.slider.api.NodeInformationProto nodes = 1;
private java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto> nodes_ =
java.util.Collections.emptyList();
private void ensureNodesIsMutable() {
- if (!((bitField0_ & 0x00000002) == 0x00000002)) {
+ if (!((bitField0_ & 0x00000001) == 0x00000001)) {
nodes_ = new java.util.ArrayList<org.apache.slider.api.proto.Messages.NodeInformationProto>(nodes_);
- bitField0_ |= 0x00000002;
+ bitField0_ |= 0x00000001;
}
}
@@ -33061,7 +32870,7 @@ public final class Messages {
org.apache.slider.api.proto.Messages.NodeInformationProto, org.apache.slider.api.proto.Messages.NodeInformationProto.Builder, org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder> nodesBuilder_;
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto> getNodesList() {
if (nodesBuilder_ == null) {
@@ -33071,7 +32880,7 @@ public final class Messages {
}
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public int getNodesCount() {
if (nodesBuilder_ == null) {
@@ -33081,7 +32890,7 @@ public final class Messages {
}
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProto getNodes(int index) {
if (nodesBuilder_ == null) {
@@ -33091,7 +32900,7 @@ public final class Messages {
}
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder setNodes(
int index, org.apache.slider.api.proto.Messages.NodeInformationProto value) {
@@ -33108,7 +32917,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder setNodes(
int index, org.apache.slider.api.proto.Messages.NodeInformationProto.Builder builderForValue) {
@@ -33122,7 +32931,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder addNodes(org.apache.slider.api.proto.Messages.NodeInformationProto value) {
if (nodesBuilder_ == null) {
@@ -33138,7 +32947,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder addNodes(
int index, org.apache.slider.api.proto.Messages.NodeInformationProto value) {
@@ -33155,7 +32964,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder addNodes(
org.apache.slider.api.proto.Messages.NodeInformationProto.Builder builderForValue) {
@@ -33169,7 +32978,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder addNodes(
int index, org.apache.slider.api.proto.Messages.NodeInformationProto.Builder builderForValue) {
@@ -33183,7 +32992,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder addAllNodes(
java.lang.Iterable<? extends org.apache.slider.api.proto.Messages.NodeInformationProto> values) {
@@ -33197,12 +33006,12 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder clearNodes() {
if (nodesBuilder_ == null) {
nodes_ = java.util.Collections.emptyList();
- bitField0_ = (bitField0_ & ~0x00000002);
+ bitField0_ = (bitField0_ & ~0x00000001);
onChanged();
} else {
nodesBuilder_.clear();
@@ -33210,7 +33019,7 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public Builder removeNodes(int index) {
if (nodesBuilder_ == null) {
@@ -33223,14 +33032,14 @@ public final class Messages {
return this;
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProto.Builder getNodesBuilder(
int index) {
return getNodesFieldBuilder().getBuilder(index);
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder getNodesOrBuilder(
int index) {
@@ -33240,7 +33049,7 @@ public final class Messages {
}
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public java.util.List<? extends org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder>
getNodesOrBuilderList() {
@@ -33251,14 +33060,14 @@ public final class Messages {
}
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProto.Builder addNodesBuilder() {
return getNodesFieldBuilder().addBuilder(
org.apache.slider.api.proto.Messages.NodeInformationProto.getDefaultInstance());
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public org.apache.slider.api.proto.Messages.NodeInformationProto.Builder addNodesBuilder(
int index) {
@@ -33266,7 +33075,7 @@ public final class Messages {
index, org.apache.slider.api.proto.Messages.NodeInformationProto.getDefaultInstance());
}
/**
- * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 2;</code>
+ * <code>repeated .org.apache.slider.api.NodeInformationProto nodes = 1;</code>
*/
public java.util.List<org.apache.slider.api.proto.Messages.NodeInformationProto.Builder>
getNodesBuilderList() {
@@ -33279,7 +33088,7 @@ public final class Messages {
nodesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
org.apache.slider.api.proto.Messages.NodeInformationProto, org.apache.slider.api.proto.Messages.NodeInformationProto.Builder, org.apache.slider.api.proto.Messages.NodeInformationProtoOrBuilder>(
nodes_,
- ((bitField0_ & 0x00000002) == 0x00000002),
+ ((bitField0_ & 0x00000001) == 0x00000001),
getParentForChildren(),
isClean());
nodes_ = null;
@@ -34166,12 +33975,12 @@ public final class Messages {
"oto\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\004type\030\004 \002(\t\"1\n Ge" +
"tCertificateStoreResponseProto\022\r\n\005store\030" +
- "\001 \002(\014\"\032\n\030GetLiveNodesRequestProto\"f\n\031Get" +
- "LiveNodesResponseProto\022\r\n\005names\030\001 \003(\t\022:\n" +
- "\005nodes\030\002 \003(\0132+.org.apache.slider.api.Nod" +
- "eInformationProto\"\'\n\027GetLiveNodeRequestP" +
- "roto\022\014\n\004name\030\001 \002(\tB-\n\033org.apache.slider." +
- "api.protoB\010Messages\210\001\001\240\001\001"
+ "\001 \002(\014\"\032\n\030GetLiveNodesRequestProto\"W\n\031Get" +
+ "LiveNodesResponseProto\022:\n\005nodes\030\001 \003(\0132+." +
+ "org.apache.slider.api.NodeInformationPro" +
+ "to\"\'\n\027GetLiveNodeRequestProto\022\014\n\004name\030\001 " +
+ "\002(\tB-\n\033org.apache.slider.api.protoB\010Mess" +
+ "ages\210\001\001\240\001\001"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -34471,7 +34280,7 @@ public final class Messages {
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[] { "Names", "Nodes", });
+ new java.lang.String[] { "Nodes", });
internal_static_org_apache_slider_api_GetLiveNodeRequestProto_descriptor =
getDescriptor().getMessageTypes().get(49);
internal_static_org_apache_slider_api_GetLiveNodeRequestProto_fieldAccessorTable = new
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index ca9bb12..0753ecc 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -106,6 +106,7 @@ import org.apache.slider.common.params.LaunchArgsAccessor;
import org.apache.slider.common.tools.ConfigHelper;
import org.apache.slider.common.tools.Duration;
import org.apache.slider.common.tools.SliderFileSystem;
+import org.apache.slider.common.tools.SliderUtils;
import org.apache.slider.common.tools.SliderVersionInfo;
import org.apache.slider.core.build.InstanceBuilder;
import org.apache.slider.core.build.InstanceIO;
@@ -4254,9 +4255,13 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
* @throws IOException IO problems
* @throws YarnException YARN problems
*/
- public NodeInformationList listInstanceNodes(ActionNodesArgs args)
+ public NodeInformationList listInstanceNodes(String instance, ActionNodesArgs args)
throws YarnException, IOException {
- return yarnClient.listNodes(args.label, args.healthy);
+ // TODO
+ log.info("listInstanceNodes {}", instance);
+ SliderClusterOperations clusterOps =
+ new SliderClusterOperations(bondToCluster(instance));
+ return clusterOps.getLiveNodes();
}
/**
@@ -4269,7 +4274,12 @@ public class SliderClient extends AbstractSliderLaunchedService implements RunSe
public int actionNodes(String instance, ActionNodesArgs args) throws YarnException, IOException {
args.instance = instance;
- NodeInformationList nodes = listYarnClusterNodes(args);
+ NodeInformationList nodes;
+ if (SliderUtils.isUnset(instance)) {
+ nodes = listYarnClusterNodes(args);
+ } else {
+ nodes = listInstanceNodes(instance, args);
+ }
log.debug("Node listing for {} has {} nodes", args, nodes.size());
JsonSerDeser<NodeInformationList> serDeser = NodeInformationList.createSerializer();
if (args.outputFile != null) {
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/client/ipc/SliderApplicationIpcClient.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/ipc/SliderApplicationIpcClient.java b/slider-core/src/main/java/org/apache/slider/client/ipc/SliderApplicationIpcClient.java
index 291583d..a007326 100644
--- a/slider-core/src/main/java/org/apache/slider/client/ipc/SliderApplicationIpcClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/ipc/SliderApplicationIpcClient.java
@@ -24,6 +24,7 @@ import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.api.types.PingInformation;
import org.apache.slider.api.SliderApplicationApi;
import org.apache.slider.core.conf.AggregateConf;
@@ -196,7 +197,7 @@ public class SliderApplicationIpcClient implements SliderApplicationApi {
}
@Override
- public Map<String, NodeInformation> getLiveNodes() throws IOException {
+ public NodeInformationList getLiveNodes() throws IOException {
try {
return operations.getLiveNodes();
} catch (IOException e) {
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/client/ipc/SliderClusterOperations.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/ipc/SliderClusterOperations.java b/slider-core/src/main/java/org/apache/slider/client/ipc/SliderClusterOperations.java
index e1ec971..392f451 100644
--- a/slider-core/src/main/java/org/apache/slider/client/ipc/SliderClusterOperations.java
+++ b/slider-core/src/main/java/org/apache/slider/client/ipc/SliderClusterOperations.java
@@ -19,6 +19,9 @@
package org.apache.slider.client.ipc;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Preconditions;
+import org.apache.hadoop.yarn.api.records.NodeReport;
+import org.apache.hadoop.yarn.api.records.NodeState;
import org.apache.hadoop.yarn.exceptions.YarnException;
import org.apache.slider.api.ClusterDescription;
import org.apache.slider.api.ClusterNode;
@@ -31,8 +34,10 @@ import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.api.types.PingInformation;
import org.apache.slider.common.tools.Duration;
+import org.apache.slider.common.tools.SliderUtils;
import org.apache.slider.core.conf.AggregateConf;
import org.apache.slider.core.conf.ConfTree;
import org.apache.slider.core.conf.ConfTreeOperations;
@@ -237,7 +242,7 @@ public class SliderClusterOperations {
/**
* Get the details on a list of uuids
- * @param uuids
+ * @param uuids instance IDs
* @return a possibly empty list of node details
* @throws IOException
* @throws YarnException
@@ -468,22 +473,16 @@ public class SliderClusterOperations {
return unmarshall(proto);
}
- public Map<String, NodeInformation> getLiveNodes() throws IOException {
+ public NodeInformationList getLiveNodes() throws IOException {
Messages.GetLiveNodesResponseProto response =
appMaster.getLiveNodes(Messages.GetLiveNodesRequestProto.newBuilder().build());
- int namesCount = response.getNamesCount();
int records = response.getNodesCount();
- if (namesCount != records) {
- throw new IOException(
- "Number of names returned (" + namesCount + ")" +
- " does not match the number of records returned: " + records);
+ NodeInformationList nil = new NodeInformationList(records);
+ for (int i = 0; i < records; i++) {
+ nil.add(unmarshall(response.getNodes(i)));
}
- Map<String, NodeInformation> map = new HashMap<>(namesCount);
- for (int i = 0; i < namesCount; i++) {
- map.put(response.getNames(i), unmarshall(response.getNodes(i)));
- }
- return map;
+ return nil;
}
public NodeInformation getLiveNode(String hostname) throws IOException {
@@ -527,5 +526,4 @@ public class SliderClusterOperations {
return unmarshall(response);
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/client/rest/SliderApplicationApiRestClient.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/client/rest/SliderApplicationApiRestClient.java b/slider-core/src/main/java/org/apache/slider/client/rest/SliderApplicationApiRestClient.java
index 54c60d1..4283ee8 100644
--- a/slider-core/src/main/java/org/apache/slider/client/rest/SliderApplicationApiRestClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/rest/SliderApplicationApiRestClient.java
@@ -21,11 +21,9 @@ package org.apache.slider.client.rest;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientHandlerException;
-import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.api.client.WebResource;
-import com.sun.jersey.api.client.filter.LoggingFilter;
import com.sun.jersey.api.representation.Form;
import org.apache.commons.lang.StringUtils;
import org.apache.slider.api.types.ApplicationLivenessInformation;
@@ -33,11 +31,11 @@ import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.SliderApplicationApi;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.core.conf.AggregateConf;
import org.apache.slider.core.conf.ConfTree;
import org.apache.slider.core.conf.ConfTreeOperations;
import org.apache.slider.core.exceptions.ExceptionConverter;
-import org.apache.slider.core.persist.ConfTreeSerDeser;
import org.apache.slider.core.restclient.HttpVerb;
import org.apache.slider.api.types.PingInformation;
import org.slf4j.Logger;
@@ -258,14 +256,13 @@ public class SliderApplicationApiRestClient extends BaseRestClient
}
@Override
- public Map<String, NodeInformation> getLiveNodes() throws IOException {
- return getApplicationResource(LIVE_NODES,
- new GenericType<Map<String, NodeInformation>>() { });
+ public NodeInformationList getLiveNodes() throws IOException {
+ return getApplicationResource(LIVE_NODES, NodeInformationList.class);
}
@Override
public NodeInformation getLiveNode(String hostname) throws IOException {
- return getApplicationResource(LIVE_COMPONENTS + "/" + hostname,
+ return getApplicationResource(LIVE_NODES + "/" + hostname,
NodeInformation.class);
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
index a983f53..fda23aa 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/rpc/SliderIPCService.java
@@ -31,6 +31,7 @@ import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.core.conf.AggregateConf;
import org.apache.slider.core.conf.ConfTree;
import org.apache.slider.core.exceptions.ServiceNotReadyException;
@@ -423,14 +424,12 @@ public class SliderIPCService extends AbstractService
@Override
public Messages.GetLiveNodesResponseProto getLiveNodes(Messages.GetLiveNodesRequestProto request)
throws IOException {
- Map<String, NodeInformation> infoMap =
- (Map<String, NodeInformation>) cache.lookupWithIOE(LIVE_NODES);
+ NodeInformationList info = (NodeInformationList) cache.lookupWithIOE(LIVE_NODES);
Messages.GetLiveNodesResponseProto.Builder builder =
Messages.GetLiveNodesResponseProto.newBuilder();
- for (Map.Entry<String, NodeInformation> entry : infoMap.entrySet()) {
- builder.addNames(entry.getKey());
- builder.addNodes(marshall(entry.getValue()));
+ for (NodeInformation nodeInformation : info) {
+ builder.addNodes(marshall(nodeInformation));
}
return builder.build();
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/ApplicationResource.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/ApplicationResource.java
index 1b54a31..52068d6 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/ApplicationResource.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/ApplicationResource.java
@@ -26,6 +26,7 @@ import org.apache.slider.api.types.ApplicationLivenessInformation;
import org.apache.slider.api.types.ComponentInformation;
import org.apache.slider.api.types.ContainerInformation;
import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.core.conf.AggregateConf;
import org.apache.slider.core.conf.ConfTree;
import org.apache.slider.core.exceptions.NoSuchNodeException;
@@ -350,31 +351,31 @@ TODO: decide what structure to return here, then implement
@GET
@Path(LIVE_NODES)
@Produces({APPLICATION_JSON})
- public Map<String, NodeInformation> getLiveNodes() {
+ public NodeInformationList getLiveNodes() {
markGet(SLIDER_SUBPATH_APPLICATION, LIVE_COMPONENTS);
try {
- return (Map<String, NodeInformation>) cache.lookup(LIVE_NODES);
+ return (NodeInformationList) cache.lookup(LIVE_NODES);
} catch (Exception e) {
throw buildException(LIVE_COMPONENTS, e);
}
}
@GET
- @Path(LIVE_NODES + "/{node}")
+ @Path(LIVE_NODES + "/{hostname}")
@Produces({APPLICATION_JSON})
- public NodeInformation getLiveNode(@PathParam("node") String node) {
+ public NodeInformation getLiveNode(@PathParam("hostname") String hostname) {
markGet(SLIDER_SUBPATH_APPLICATION, LIVE_COMPONENTS);
try {
- NodeInformation ni = state.getNodeInformation(node);
+ NodeInformation ni = state.getNodeInformation(hostname);
if (ni != null) {
return ni;
} else {
- throw new NotFoundException("Unknown node: " + node);
+ throw new NotFoundException("Unknown node: " + hostname);
}
} catch (NotFoundException e) {
throw e;
} catch (Exception e) {
- throw buildException(LIVE_CONTAINERS + "/" + node, e);
+ throw buildException(LIVE_COMPONENTS + "/" + hostname, e);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/resources/LiveNodesRefresher.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/resources/LiveNodesRefresher.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/resources/LiveNodesRefresher.java
index d4ab8fe..aeb7a11 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/resources/LiveNodesRefresher.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/web/rest/application/resources/LiveNodesRefresher.java
@@ -18,16 +18,14 @@
package org.apache.slider.server.appmaster.web.rest.application.resources;
-import org.apache.slider.api.types.NodeInformation;
+import org.apache.slider.api.types.NodeInformationList;
import org.apache.slider.server.appmaster.state.StateAccessForProviders;
-import java.util.Map;
-
/**
* Update the live nodes map
*/
public class LiveNodesRefresher
- implements ResourceRefresher<Map<String, NodeInformation>> {
+ implements ResourceRefresher<NodeInformationList> {
private final StateAccessForProviders state;
@@ -36,7 +34,8 @@ public class LiveNodesRefresher
}
@Override
- public Map<String, NodeInformation> refresh() {
- return state.getNodeInformationSnapshot();
+ public NodeInformationList refresh() {
+
+ return new NodeInformationList(state.getNodeInformationSnapshot().values());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/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 2836454..9a4265c 100644
--- a/slider-core/src/main/proto/SliderClusterMessages.proto
+++ b/slider-core/src/main/proto/SliderClusterMessages.proto
@@ -25,10 +25,7 @@ package org.apache.slider.api;
//import "Security.proto";
/*
- To debug compilation problems, bypass the maven build and invoke protoc
- from the command line
-
- protoc --java_out=target src/main/proto/SliderClusterMessages.proto
+ Look at SliderClusterProtocol.proto to see how to build this
*/
message RoleInstanceState {
@@ -390,8 +387,7 @@ message GetLiveNodesRequestProto {
}
message GetLiveNodesResponseProto {
- repeated string names = 1;
- repeated NodeInformationProto nodes = 2;
+ repeated NodeInformationProto nodes = 1;
}
message GetLiveNodeRequestProto {
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/test/groovy/org/apache/slider/agent/rest/AbstractAppApiTestDelegates.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/agent/rest/AbstractAppApiTestDelegates.groovy b/slider-core/src/test/groovy/org/apache/slider/agent/rest/AbstractAppApiTestDelegates.groovy
index 6d1bcfc..6727a29 100644
--- a/slider-core/src/test/groovy/org/apache/slider/agent/rest/AbstractAppApiTestDelegates.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/agent/rest/AbstractAppApiTestDelegates.groovy
@@ -24,10 +24,8 @@ import org.apache.slider.api.SliderApplicationApi
import org.apache.slider.api.StateValues
import org.apache.slider.api.types.ComponentInformation
import org.apache.slider.api.types.ContainerInformation
-import org.apache.slider.api.types.NodeInformation
import org.apache.slider.core.conf.ConfTreeOperations
import org.apache.slider.test.Outcome
-import org.junit.Test
import static org.apache.slider.api.ResourceKeys.*
import static org.apache.slider.api.StatusKeys.*
@@ -210,10 +208,10 @@ public abstract class AbstractAppApiTestDelegates extends AbstractRestTestDelega
describe "Node listing via $appAPI"
def liveNodes = appAPI.liveNodes
assert liveNodes.size() > 0
- def h = liveNodes.keySet()[0];
+ prettyPrintAsJson(liveNodes)
+ def h = liveNodes[0].hostname;
def localhost = appAPI.getLiveNode(h)
-
-
+ assert localhost.httpAddress == liveNodes[0].httpAddress
}
/**
@@ -239,7 +237,7 @@ public abstract class AbstractAppApiTestDelegates extends AbstractRestTestDelega
testLiveContainers();
testRESTModel()
testAppLiveness()
-// testListNodes();
+ testListNodes();
}
public void testFlexOperation() {
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/cc94e056/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
index 255dcaf..7072fc6 100644
--- a/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/providers/agent/TestAgentAAEcho.groovy
@@ -135,6 +135,7 @@ class TestAgentAAEcho extends TestAgentEcho {
//expect the role count to be the same
waitForRoleCount(sliderClient, onlyOneEcho, 1000)
+ def echoInstances = sliderClient.listNodeUUIDsByRole(roleName)
queryRestAPI(sliderClient, roles, proxyAM)
// flex size
// while running, ask for many more, expect them to still be outstanding
@@ -147,6 +148,9 @@ class TestAgentAAEcho extends TestAgentEcho {
sliderClient.flex(clustername, onlyOneEcho);
waitForRoleCount(sliderClient, onlyOneEcho, 1000)
+ def echoInstances2 = sliderClient.listNodeUUIDsByRole(roleName)
+ assertArrayEquals(echoInstances, echoInstances2)
+
}
protected void queryRestAPI(SliderClient sliderClient, Map<String, Integer> roles, String proxyAM) {