@@ -72,9 +72,14 @@ public boolean execute() throws Exception {
72
72
clusterInfo .clusterName = _clusterName ;
73
73
74
74
ZKHelixAdmin zkHelixAdmin = new ZKHelixAdmin (_zkAddress );
75
- List <String > instancesInCluster = zkHelixAdmin .getInstancesInCluster (_clusterName );
75
+ if (!zkHelixAdmin .getClusters ().contains (_clusterName )) {
76
+ LOGGER .error ("Cluster {} not found in {}." , _clusterName , _zkAddress );
77
+ return false ;
78
+ }
76
79
80
+ List <String > instancesInCluster = zkHelixAdmin .getInstancesInCluster (_clusterName );
77
81
List <String > tables = zkHelixAdmin .getResourcesInCluster (_clusterName );
82
+
78
83
ZkClient zkClient = new ZkClient (_zkAddress );
79
84
zkClient .setZkSerializer (new ZNRecordStreamingSerializer ());
80
85
LOGGER .info ("Connecting to Zookeeper at: {}" , _zkAddress );
@@ -133,7 +138,16 @@ public boolean execute() throws Exception {
133
138
SegmentInfo segmentInfo = new SegmentInfo ();
134
139
segmentInfo .name = segment ;
135
140
Map <String , String > serverStateMapFromIS = idealState .getInstanceStateMap (segment );
141
+ if (serverStateMapFromIS == null ) {
142
+ LOGGER .info ("Unassigned segment {} in ideal state" , segment );
143
+ serverStateMapFromIS = Collections .emptyMap ();
144
+ }
136
145
Map <String , String > serverStateMapFromEV = externalView .getStateMap (segment );
146
+ if (serverStateMapFromEV == null ) {
147
+ LOGGER .info ("Unassigned segment {} in external view" , segment );
148
+ serverStateMapFromEV = Collections .emptyMap ();
149
+ }
150
+
137
151
for (String serverName : serverStateMapFromIS .keySet ()) {
138
152
segmentInfo .segmentStateMap .put (serverName , serverStateMapFromEV .get (serverName ));
139
153
}
@@ -145,7 +159,7 @@ public boolean execute() throws Exception {
145
159
StringWriter sw = new StringWriter ();
146
160
yaml .dump (clusterInfo , sw );
147
161
LOGGER .info (sw .toString ());
148
- return false ;
162
+ return true ;
149
163
}
150
164
151
165
private String stripTypeFromName (String tableName ) {
0 commit comments