You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by pt...@apache.org on 2015/03/20 22:01:50 UTC

[45/50] [abbrv] storm git commit: Merge remote-tracking branch 'upstream/master' into STORM-166

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/src/jvm/backtype/storm/generated/TopologySummary.java
----------------------------------------------------------------------
diff --cc storm-core/src/jvm/backtype/storm/generated/TopologySummary.java
index bc09e68,bd8f90e..24d96fa
--- a/storm-core/src/jvm/backtype/storm/generated/TopologySummary.java
+++ b/storm-core/src/jvm/backtype/storm/generated/TopologySummary.java
@@@ -38,7 -50,9 +50,9 @@@ import javax.annotation.Generated
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
- public class TopologySummary implements org.apache.thrift.TBase<TopologySummary, TopologySummary._Fields>, java.io.Serializable, Cloneable {
+ @SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
 -@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-2-6")
++@Generated(value = "Autogenerated by Thrift Compiler (0.9.2)", date = "2015-3-2")
+ public class TopologySummary implements org.apache.thrift.TBase<TopologySummary, TopologySummary._Fields>, java.io.Serializable, Cloneable, Comparable<TopologySummary> {
    private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("TopologySummary");
  
    private static final org.apache.thrift.protocol.TField ID_FIELD_DESC = new org.apache.thrift.protocol.TField("id", org.apache.thrift.protocol.TType.STRING, (short)1);
@@@ -50,8 -64,13 +64,14 @@@
    private static final org.apache.thrift.protocol.TField STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("status", org.apache.thrift.protocol.TType.STRING, (short)7);
    private static final org.apache.thrift.protocol.TField SCHED_STATUS_FIELD_DESC = new org.apache.thrift.protocol.TField("sched_status", org.apache.thrift.protocol.TType.STRING, (short)513);
    private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("owner", org.apache.thrift.protocol.TType.STRING, (short)514);
 +  private static final org.apache.thrift.protocol.TField REPLICATION_COUNT_FIELD_DESC = new org.apache.thrift.protocol.TField("replication_count", org.apache.thrift.protocol.TType.I32, (short)515);
  
+   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+   static {
+     schemes.put(StandardScheme.class, new TopologySummaryStandardSchemeFactory());
+     schemes.put(TupleScheme.class, new TopologySummaryTupleSchemeFactory());
+   }
+ 
    private String id; // required
    private String name; // required
    private int num_tasks; // required
@@@ -59,9 -78,8 +79,9 @@@
    private int num_workers; // required
    private int uptime_secs; // required
    private String status; // required
-   private String sched_status; // required
-   private String owner; // required
-   private int replication_count; // required
+   private String sched_status; // optional
+   private String owner; // optional
++  private int replication_count; // optional
  
    /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
    public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@@ -153,9 -168,8 +173,9 @@@
    private static final int __NUM_EXECUTORS_ISSET_ID = 1;
    private static final int __NUM_WORKERS_ISSET_ID = 2;
    private static final int __UPTIME_SECS_ISSET_ID = 3;
 +  private static final int __REPLICATION_COUNT_ISSET_ID = 4;
-   private BitSet __isset_bit_vector = new BitSet(5);
- 
+   private byte __isset_bitfield = 0;
 -  private static final _Fields optionals[] = {_Fields.SCHED_STATUS,_Fields.OWNER};
++  private static final _Fields optionals[] = {_Fields.SCHED_STATUS,_Fields.OWNER,_Fields.REPLICATION_COUNT};
    public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
    static {
      Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@@ -463,28 -471,6 +482,28 @@@
      }
    }
  
 +  public int get_replication_count() {
 +    return this.replication_count;
 +  }
 +
 +  public void set_replication_count(int replication_count) {
 +    this.replication_count = replication_count;
 +    set_replication_count_isSet(true);
 +  }
 +
 +  public void unset_replication_count() {
-     __isset_bit_vector.clear(__REPLICATION_COUNT_ISSET_ID);
++    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __REPLICATION_COUNT_ISSET_ID);
 +  }
 +
 +  /** Returns true if field replication_count is set (has been assigned a value) and false otherwise */
 +  public boolean is_set_replication_count() {
-     return __isset_bit_vector.get(__REPLICATION_COUNT_ISSET_ID);
++    return EncodingUtils.testBit(__isset_bitfield, __REPLICATION_COUNT_ISSET_ID);
 +  }
 +
 +  public void set_replication_count_isSet(boolean value) {
-     __isset_bit_vector.set(__REPLICATION_COUNT_ISSET_ID, value);
++    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __REPLICATION_COUNT_ISSET_ID, value);
 +  }
 +
    public void setFieldValue(_Fields field, Object value) {
      switch (field) {
      case ID:
@@@ -745,61 -709,57 +764,62 @@@
  
    @Override
    public int hashCode() {
-     HashCodeBuilder builder = new HashCodeBuilder();
+     List<Object> list = new ArrayList<Object>();
  
      boolean present_id = true && (is_set_id());
-     builder.append(present_id);
+     list.add(present_id);
      if (present_id)
-       builder.append(id);
+       list.add(id);
  
      boolean present_name = true && (is_set_name());
-     builder.append(present_name);
+     list.add(present_name);
      if (present_name)
-       builder.append(name);
+       list.add(name);
  
      boolean present_num_tasks = true;
-     builder.append(present_num_tasks);
+     list.add(present_num_tasks);
      if (present_num_tasks)
-       builder.append(num_tasks);
+       list.add(num_tasks);
  
      boolean present_num_executors = true;
-     builder.append(present_num_executors);
+     list.add(present_num_executors);
      if (present_num_executors)
-       builder.append(num_executors);
+       list.add(num_executors);
  
      boolean present_num_workers = true;
-     builder.append(present_num_workers);
+     list.add(present_num_workers);
      if (present_num_workers)
-       builder.append(num_workers);
+       list.add(num_workers);
  
      boolean present_uptime_secs = true;
-     builder.append(present_uptime_secs);
+     list.add(present_uptime_secs);
      if (present_uptime_secs)
-       builder.append(uptime_secs);
+       list.add(uptime_secs);
  
      boolean present_status = true && (is_set_status());
-     builder.append(present_status);
+     list.add(present_status);
      if (present_status)
-       builder.append(status);
+       list.add(status);
  
      boolean present_sched_status = true && (is_set_sched_status());
-     builder.append(present_sched_status);
+     list.add(present_sched_status);
      if (present_sched_status)
-       builder.append(sched_status);
+       list.add(sched_status);
  
      boolean present_owner = true && (is_set_owner());
-     builder.append(present_owner);
+     list.add(present_owner);
      if (present_owner)
-       builder.append(owner);
+       list.add(owner);
  
 +    boolean present_replication_count = true && (is_set_replication_count());
-     builder.append(present_replication_count);
++    list.add(present_replication_count);
 +    if (present_replication_count)
-       builder.append(replication_count);
++      list.add(replication_count);
 +
-     return builder.toHashCode();
+     return list.hashCode();
    }
  
+   @Override
    public int compareTo(TopologySummary other) {
      if (!getClass().equals(other.getClass())) {
        return getClass().getName().compareTo(other.getClass().getName());
@@@ -898,16 -857,6 +917,16 @@@
          return lastComparison;
        }
      }
-     lastComparison = Boolean.valueOf(is_set_replication_count()).compareTo(typedOther.is_set_replication_count());
++    lastComparison = Boolean.valueOf(is_set_replication_count()).compareTo(other.is_set_replication_count());
 +    if (lastComparison != 0) {
 +      return lastComparison;
 +    }
 +    if (is_set_replication_count()) {
-       lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replication_count, typedOther.replication_count);
++      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.replication_count, other.replication_count);
 +      if (lastComparison != 0) {
 +        return lastComparison;
 +      }
 +    }
      return 0;
    }
  
@@@ -1187,5 -991,218 +1067,241 @@@
      }
    }
  
+   private static class TopologySummaryStandardSchemeFactory implements SchemeFactory {
+     public TopologySummaryStandardScheme getScheme() {
+       return new TopologySummaryStandardScheme();
+     }
+   }
+ 
+   private static class TopologySummaryStandardScheme extends StandardScheme<TopologySummary> {
+ 
+     public void read(org.apache.thrift.protocol.TProtocol iprot, TopologySummary struct) throws org.apache.thrift.TException {
+       org.apache.thrift.protocol.TField schemeField;
+       iprot.readStructBegin();
+       while (true)
+       {
+         schemeField = iprot.readFieldBegin();
+         if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+           break;
+         }
+         switch (schemeField.id) {
+           case 1: // ID
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.id = iprot.readString();
+               struct.set_id_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 2: // NAME
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.name = iprot.readString();
+               struct.set_name_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 3: // NUM_TASKS
+             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+               struct.num_tasks = iprot.readI32();
+               struct.set_num_tasks_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 4: // NUM_EXECUTORS
+             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+               struct.num_executors = iprot.readI32();
+               struct.set_num_executors_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 5: // NUM_WORKERS
+             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+               struct.num_workers = iprot.readI32();
+               struct.set_num_workers_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 6: // UPTIME_SECS
+             if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+               struct.uptime_secs = iprot.readI32();
+               struct.set_uptime_secs_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 7: // STATUS
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.status = iprot.readString();
+               struct.set_status_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 513: // SCHED_STATUS
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.sched_status = iprot.readString();
+               struct.set_sched_status_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
+           case 514: // OWNER
+             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+               struct.owner = iprot.readString();
+               struct.set_owner_isSet(true);
+             } else { 
+               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+             }
+             break;
++          case 515: // REPLICATION_COUNT
++            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
++              struct.replication_count = iprot.readI32();
++              struct.set_replication_count_isSet(true);
++            } else { 
++              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
++            }
++            break;
+           default:
+             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+         }
+         iprot.readFieldEnd();
+       }
+       iprot.readStructEnd();
+       struct.validate();
+     }
+ 
+     public void write(org.apache.thrift.protocol.TProtocol oprot, TopologySummary struct) throws org.apache.thrift.TException {
+       struct.validate();
+ 
+       oprot.writeStructBegin(STRUCT_DESC);
+       if (struct.id != null) {
+         oprot.writeFieldBegin(ID_FIELD_DESC);
+         oprot.writeString(struct.id);
+         oprot.writeFieldEnd();
+       }
+       if (struct.name != null) {
+         oprot.writeFieldBegin(NAME_FIELD_DESC);
+         oprot.writeString(struct.name);
+         oprot.writeFieldEnd();
+       }
+       oprot.writeFieldBegin(NUM_TASKS_FIELD_DESC);
+       oprot.writeI32(struct.num_tasks);
+       oprot.writeFieldEnd();
+       oprot.writeFieldBegin(NUM_EXECUTORS_FIELD_DESC);
+       oprot.writeI32(struct.num_executors);
+       oprot.writeFieldEnd();
+       oprot.writeFieldBegin(NUM_WORKERS_FIELD_DESC);
+       oprot.writeI32(struct.num_workers);
+       oprot.writeFieldEnd();
+       oprot.writeFieldBegin(UPTIME_SECS_FIELD_DESC);
+       oprot.writeI32(struct.uptime_secs);
+       oprot.writeFieldEnd();
+       if (struct.status != null) {
+         oprot.writeFieldBegin(STATUS_FIELD_DESC);
+         oprot.writeString(struct.status);
+         oprot.writeFieldEnd();
+       }
+       if (struct.sched_status != null) {
+         if (struct.is_set_sched_status()) {
+           oprot.writeFieldBegin(SCHED_STATUS_FIELD_DESC);
+           oprot.writeString(struct.sched_status);
+           oprot.writeFieldEnd();
+         }
+       }
+       if (struct.owner != null) {
+         if (struct.is_set_owner()) {
+           oprot.writeFieldBegin(OWNER_FIELD_DESC);
+           oprot.writeString(struct.owner);
+           oprot.writeFieldEnd();
+         }
+       }
++      if (struct.is_set_replication_count()) {
++        oprot.writeFieldBegin(REPLICATION_COUNT_FIELD_DESC);
++        oprot.writeI32(struct.replication_count);
++        oprot.writeFieldEnd();
++      }
+       oprot.writeFieldStop();
+       oprot.writeStructEnd();
+     }
+ 
+   }
+ 
+   private static class TopologySummaryTupleSchemeFactory implements SchemeFactory {
+     public TopologySummaryTupleScheme getScheme() {
+       return new TopologySummaryTupleScheme();
+     }
+   }
+ 
+   private static class TopologySummaryTupleScheme extends TupleScheme<TopologySummary> {
+ 
+     @Override
+     public void write(org.apache.thrift.protocol.TProtocol prot, TopologySummary struct) throws org.apache.thrift.TException {
+       TTupleProtocol oprot = (TTupleProtocol) prot;
+       oprot.writeString(struct.id);
+       oprot.writeString(struct.name);
+       oprot.writeI32(struct.num_tasks);
+       oprot.writeI32(struct.num_executors);
+       oprot.writeI32(struct.num_workers);
+       oprot.writeI32(struct.uptime_secs);
+       oprot.writeString(struct.status);
+       BitSet optionals = new BitSet();
+       if (struct.is_set_sched_status()) {
+         optionals.set(0);
+       }
+       if (struct.is_set_owner()) {
+         optionals.set(1);
+       }
 -      oprot.writeBitSet(optionals, 2);
++      if (struct.is_set_replication_count()) {
++        optionals.set(2);
++      }
++      oprot.writeBitSet(optionals, 3);
+       if (struct.is_set_sched_status()) {
+         oprot.writeString(struct.sched_status);
+       }
+       if (struct.is_set_owner()) {
+         oprot.writeString(struct.owner);
+       }
++      if (struct.is_set_replication_count()) {
++        oprot.writeI32(struct.replication_count);
++      }
+     }
+ 
+     @Override
+     public void read(org.apache.thrift.protocol.TProtocol prot, TopologySummary struct) throws org.apache.thrift.TException {
+       TTupleProtocol iprot = (TTupleProtocol) prot;
+       struct.id = iprot.readString();
+       struct.set_id_isSet(true);
+       struct.name = iprot.readString();
+       struct.set_name_isSet(true);
+       struct.num_tasks = iprot.readI32();
+       struct.set_num_tasks_isSet(true);
+       struct.num_executors = iprot.readI32();
+       struct.set_num_executors_isSet(true);
+       struct.num_workers = iprot.readI32();
+       struct.set_num_workers_isSet(true);
+       struct.uptime_secs = iprot.readI32();
+       struct.set_uptime_secs_isSet(true);
+       struct.status = iprot.readString();
+       struct.set_status_isSet(true);
 -      BitSet incoming = iprot.readBitSet(2);
++      BitSet incoming = iprot.readBitSet(3);
+       if (incoming.get(0)) {
+         struct.sched_status = iprot.readString();
+         struct.set_sched_status_isSet(true);
+       }
+       if (incoming.get(1)) {
+         struct.owner = iprot.readString();
+         struct.set_owner_isSet(true);
+       }
++      if (incoming.get(2)) {
++        struct.replication_count = iprot.readI32();
++        struct.set_replication_count_isSet(true);
++      }
+     }
+   }
+ 
  }
  

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/src/py/storm/ttypes.py
----------------------------------------------------------------------
diff --cc storm-core/src/py/storm/ttypes.py
index d351652,8c3f5e6..4fc20ce
--- a/storm-core/src/py/storm/ttypes.py
+++ b/storm-core/src/py/storm/ttypes.py
@@@ -2091,13 -2167,9 +2168,10 @@@ class TopologySummary
      None, # 512
      (513, TType.STRING, 'sched_status', None, None, ), # 513
      (514, TType.STRING, 'owner', None, None, ), # 514
 +    (515, TType.I32, 'replication_count', None, None, ), # 515
    )
  
-   def __hash__(self):
-     return 0 + hash(self.id) + hash(self.name) + hash(self.num_tasks) + hash(self.num_executors) + hash(self.num_workers) + hash(self.uptime_secs) + hash(self.status) + hash(self.sched_status) + hash(self.owner) + hash(self.replication_count)
- 
 -  def __init__(self, id=None, name=None, num_tasks=None, num_executors=None, num_workers=None, uptime_secs=None, status=None, sched_status=None, owner=None,):
 +  def __init__(self, id=None, name=None, num_tasks=None, num_executors=None, num_workers=None, uptime_secs=None, status=None, sched_status=None, owner=None, replication_count=None,):
      self.id = id
      self.name = name
      self.num_tasks = num_tasks
@@@ -2239,6 -2301,19 +2313,20 @@@
      return
  
  
+   def __hash__(self):
+     value = 17
+     value = (value * 31) ^ hash(self.id)
+     value = (value * 31) ^ hash(self.name)
+     value = (value * 31) ^ hash(self.num_tasks)
+     value = (value * 31) ^ hash(self.num_executors)
+     value = (value * 31) ^ hash(self.num_workers)
+     value = (value * 31) ^ hash(self.uptime_secs)
+     value = (value * 31) ^ hash(self.status)
+     value = (value * 31) ^ hash(self.sched_status)
+     value = (value * 31) ^ hash(self.owner)
++    value = (value * 31) ^ hash(self.replication_count)
+     return value
+ 
    def __repr__(self):
      L = ['%s=%r' % (key, value)
        for key, value in self.__dict__.iteritems()]
@@@ -2371,127 -2452,6 +2465,133 @@@ class SupervisorSummary
    def __ne__(self, other):
      return not (self == other)
  
 +class NimbusSummary:
 +  """
 +  Attributes:
 +   - host
 +   - port
-    - uptimeSecs
++   - uptime_secs
 +   - isLeader
 +   - version
 +  """
 +
 +  thrift_spec = (
 +    None, # 0
 +    (1, TType.STRING, 'host', None, None, ), # 1
 +    (2, TType.I32, 'port', None, None, ), # 2
-     (3, TType.I32, 'uptimeSecs', None, None, ), # 3
++    (3, TType.I32, 'uptime_secs', None, None, ), # 3
 +    (4, TType.BOOL, 'isLeader', None, None, ), # 4
 +    (5, TType.STRING, 'version', None, None, ), # 5
 +  )
 +
-   def __hash__(self):
-     return 0 + hash(self.host) + hash(self.port) + hash(self.uptimeSecs) + hash(self.isLeader) + hash(self.version)
- 
-   def __init__(self, host=None, port=None, uptimeSecs=None, isLeader=None, version=None,):
++  def __init__(self, host=None, port=None, uptime_secs=None, isLeader=None, version=None,):
 +    self.host = host
 +    self.port = port
-     self.uptimeSecs = uptimeSecs
++    self.uptime_secs = uptime_secs
 +    self.isLeader = isLeader
 +    self.version = version
 +
 +  def read(self, iprot):
 +    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
 +      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
 +      return
 +    iprot.readStructBegin()
 +    while True:
 +      (fname, ftype, fid) = iprot.readFieldBegin()
 +      if ftype == TType.STOP:
 +        break
 +      if fid == 1:
 +        if ftype == TType.STRING:
 +          self.host = iprot.readString().decode('utf-8')
 +        else:
 +          iprot.skip(ftype)
 +      elif fid == 2:
 +        if ftype == TType.I32:
 +          self.port = iprot.readI32();
 +        else:
 +          iprot.skip(ftype)
 +      elif fid == 3:
 +        if ftype == TType.I32:
-           self.uptimeSecs = iprot.readI32();
++          self.uptime_secs = iprot.readI32();
 +        else:
 +          iprot.skip(ftype)
 +      elif fid == 4:
 +        if ftype == TType.BOOL:
 +          self.isLeader = iprot.readBool();
 +        else:
 +          iprot.skip(ftype)
 +      elif fid == 5:
 +        if ftype == TType.STRING:
 +          self.version = iprot.readString().decode('utf-8')
 +        else:
 +          iprot.skip(ftype)
 +      else:
 +        iprot.skip(ftype)
 +      iprot.readFieldEnd()
 +    iprot.readStructEnd()
 +
 +  def write(self, oprot):
 +    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
 +      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
 +      return
 +    oprot.writeStructBegin('NimbusSummary')
 +    if self.host is not None:
 +      oprot.writeFieldBegin('host', TType.STRING, 1)
 +      oprot.writeString(self.host.encode('utf-8'))
 +      oprot.writeFieldEnd()
 +    if self.port is not None:
 +      oprot.writeFieldBegin('port', TType.I32, 2)
 +      oprot.writeI32(self.port)
 +      oprot.writeFieldEnd()
-     if self.uptimeSecs is not None:
-       oprot.writeFieldBegin('uptimeSecs', TType.I32, 3)
-       oprot.writeI32(self.uptimeSecs)
++    if self.uptime_secs is not None:
++      oprot.writeFieldBegin('uptime_secs', TType.I32, 3)
++      oprot.writeI32(self.uptime_secs)
 +      oprot.writeFieldEnd()
 +    if self.isLeader is not None:
 +      oprot.writeFieldBegin('isLeader', TType.BOOL, 4)
 +      oprot.writeBool(self.isLeader)
 +      oprot.writeFieldEnd()
 +    if self.version is not None:
 +      oprot.writeFieldBegin('version', TType.STRING, 5)
 +      oprot.writeString(self.version.encode('utf-8'))
 +      oprot.writeFieldEnd()
 +    oprot.writeFieldStop()
 +    oprot.writeStructEnd()
 +
 +  def validate(self):
 +    if self.host is None:
 +      raise TProtocol.TProtocolException(message='Required field host is unset!')
 +    if self.port is None:
 +      raise TProtocol.TProtocolException(message='Required field port is unset!')
-     if self.uptimeSecs is None:
-       raise TProtocol.TProtocolException(message='Required field uptimeSecs is unset!')
++    if self.uptime_secs is None:
++      raise TProtocol.TProtocolException(message='Required field uptime_secs is unset!')
 +    if self.isLeader is None:
 +      raise TProtocol.TProtocolException(message='Required field isLeader is unset!')
 +    if self.version is None:
 +      raise TProtocol.TProtocolException(message='Required field version is unset!')
 +    return
 +
 +
++  def __hash__(self):
++    value = 17
++    value = (value * 31) ^ hash(self.host)
++    value = (value * 31) ^ hash(self.port)
++    value = (value * 31) ^ hash(self.uptime_secs)
++    value = (value * 31) ^ hash(self.isLeader)
++    value = (value * 31) ^ hash(self.version)
++    return value
++
 +  def __repr__(self):
 +    L = ['%s=%r' % (key, value)
 +      for key, value in self.__dict__.iteritems()]
 +    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
 +
 +  def __eq__(self, other):
 +    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
 +
 +  def __ne__(self, other):
 +    return not (self == other)
 +
  class ClusterSummary:
    """
    Attributes:
@@@ -2503,18 -2463,14 +2603,15 @@@
    thrift_spec = (
      None, # 0
      (1, TType.LIST, 'supervisors', (TType.STRUCT,(SupervisorSummary, SupervisorSummary.thrift_spec)), None, ), # 1
 -    (2, TType.I32, 'nimbus_uptime_secs', None, None, ), # 2
 +    None, # 2
      (3, TType.LIST, 'topologies', (TType.STRUCT,(TopologySummary, TopologySummary.thrift_spec)), None, ), # 3
 +    (4, TType.LIST, 'nimbuses', (TType.STRUCT,(NimbusSummary, NimbusSummary.thrift_spec)), None, ), # 4
    )
  
-   def __hash__(self):
-     return 0 + hash(self.supervisors) + hash(self.topologies) + hash(self.nimbuses)
- 
 -  def __init__(self, supervisors=None, nimbus_uptime_secs=None, topologies=None,):
 +  def __init__(self, supervisors=None, topologies=None, nimbuses=None,):
      self.supervisors = supervisors
 -    self.nimbus_uptime_secs = nimbus_uptime_secs
      self.topologies = topologies
 +    self.nimbuses = nimbuses
  
    def read(self, iprot):
      if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
@@@ -2602,6 -2549,13 +2699,13 @@@
      return
  
  
+   def __hash__(self):
+     value = 17
+     value = (value * 31) ^ hash(self.supervisors)
 -    value = (value * 31) ^ hash(self.nimbus_uptime_secs)
+     value = (value * 31) ^ hash(self.topologies)
++    value = (value * 31) ^ hash(self.nimbuses)
+     return value
+ 
    def __repr__(self):
      L = ['%s=%r' % (key, value)
        for key, value in self.__dict__.iteritems()]
@@@ -2757,90 -2713,90 +2863,90 @@@ class BoltStats
        if fid == 1:
          if ftype == TType.MAP:
            self.acked = {}
-           (_ktype88, _vtype89, _size87 ) = iprot.readMapBegin() 
 -          (_ktype81, _vtype82, _size80 ) = iprot.readMapBegin()
 -          for _i84 in xrange(_size80):
 -            _key85 = iprot.readString().decode('utf-8')
 -            _val86 = {}
 -            (_ktype88, _vtype89, _size87 ) = iprot.readMapBegin()
 -            for _i91 in xrange(_size87):
 -              _key92 = GlobalStreamId()
 -              _key92.read(iprot)
 -              _val93 = iprot.readI64();
 -              _val86[_key92] = _val93
++          (_ktype88, _vtype89, _size87 ) = iprot.readMapBegin()
 +          for _i91 in xrange(_size87):
 +            _key92 = iprot.readString().decode('utf-8')
 +            _val93 = {}
-             (_ktype95, _vtype96, _size94 ) = iprot.readMapBegin() 
++            (_ktype95, _vtype96, _size94 ) = iprot.readMapBegin()
 +            for _i98 in xrange(_size94):
 +              _key99 = GlobalStreamId()
 +              _key99.read(iprot)
 +              _val100 = iprot.readI64();
 +              _val93[_key99] = _val100
              iprot.readMapEnd()
 -            self.acked[_key85] = _val86
 +            self.acked[_key92] = _val93
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 2:
          if ftype == TType.MAP:
            self.failed = {}
-           (_ktype102, _vtype103, _size101 ) = iprot.readMapBegin() 
 -          (_ktype95, _vtype96, _size94 ) = iprot.readMapBegin()
 -          for _i98 in xrange(_size94):
 -            _key99 = iprot.readString().decode('utf-8')
 -            _val100 = {}
 -            (_ktype102, _vtype103, _size101 ) = iprot.readMapBegin()
 -            for _i105 in xrange(_size101):
 -              _key106 = GlobalStreamId()
 -              _key106.read(iprot)
 -              _val107 = iprot.readI64();
 -              _val100[_key106] = _val107
++          (_ktype102, _vtype103, _size101 ) = iprot.readMapBegin()
 +          for _i105 in xrange(_size101):
 +            _key106 = iprot.readString().decode('utf-8')
 +            _val107 = {}
-             (_ktype109, _vtype110, _size108 ) = iprot.readMapBegin() 
++            (_ktype109, _vtype110, _size108 ) = iprot.readMapBegin()
 +            for _i112 in xrange(_size108):
 +              _key113 = GlobalStreamId()
 +              _key113.read(iprot)
 +              _val114 = iprot.readI64();
 +              _val107[_key113] = _val114
              iprot.readMapEnd()
 -            self.failed[_key99] = _val100
 +            self.failed[_key106] = _val107
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 3:
          if ftype == TType.MAP:
            self.process_ms_avg = {}
-           (_ktype116, _vtype117, _size115 ) = iprot.readMapBegin() 
 -          (_ktype109, _vtype110, _size108 ) = iprot.readMapBegin()
 -          for _i112 in xrange(_size108):
 -            _key113 = iprot.readString().decode('utf-8')
 -            _val114 = {}
 -            (_ktype116, _vtype117, _size115 ) = iprot.readMapBegin()
 -            for _i119 in xrange(_size115):
 -              _key120 = GlobalStreamId()
 -              _key120.read(iprot)
 -              _val121 = iprot.readDouble();
 -              _val114[_key120] = _val121
++          (_ktype116, _vtype117, _size115 ) = iprot.readMapBegin()
 +          for _i119 in xrange(_size115):
 +            _key120 = iprot.readString().decode('utf-8')
 +            _val121 = {}
-             (_ktype123, _vtype124, _size122 ) = iprot.readMapBegin() 
++            (_ktype123, _vtype124, _size122 ) = iprot.readMapBegin()
 +            for _i126 in xrange(_size122):
 +              _key127 = GlobalStreamId()
 +              _key127.read(iprot)
 +              _val128 = iprot.readDouble();
 +              _val121[_key127] = _val128
              iprot.readMapEnd()
 -            self.process_ms_avg[_key113] = _val114
 +            self.process_ms_avg[_key120] = _val121
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 4:
          if ftype == TType.MAP:
            self.executed = {}
-           (_ktype130, _vtype131, _size129 ) = iprot.readMapBegin() 
 -          (_ktype123, _vtype124, _size122 ) = iprot.readMapBegin()
 -          for _i126 in xrange(_size122):
 -            _key127 = iprot.readString().decode('utf-8')
 -            _val128 = {}
 -            (_ktype130, _vtype131, _size129 ) = iprot.readMapBegin()
 -            for _i133 in xrange(_size129):
 -              _key134 = GlobalStreamId()
 -              _key134.read(iprot)
 -              _val135 = iprot.readI64();
 -              _val128[_key134] = _val135
++          (_ktype130, _vtype131, _size129 ) = iprot.readMapBegin()
 +          for _i133 in xrange(_size129):
 +            _key134 = iprot.readString().decode('utf-8')
 +            _val135 = {}
-             (_ktype137, _vtype138, _size136 ) = iprot.readMapBegin() 
++            (_ktype137, _vtype138, _size136 ) = iprot.readMapBegin()
 +            for _i140 in xrange(_size136):
 +              _key141 = GlobalStreamId()
 +              _key141.read(iprot)
 +              _val142 = iprot.readI64();
 +              _val135[_key141] = _val142
              iprot.readMapEnd()
 -            self.executed[_key127] = _val128
 +            self.executed[_key134] = _val135
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 5:
          if ftype == TType.MAP:
            self.execute_ms_avg = {}
-           (_ktype144, _vtype145, _size143 ) = iprot.readMapBegin() 
 -          (_ktype137, _vtype138, _size136 ) = iprot.readMapBegin()
 -          for _i140 in xrange(_size136):
 -            _key141 = iprot.readString().decode('utf-8')
 -            _val142 = {}
 -            (_ktype144, _vtype145, _size143 ) = iprot.readMapBegin()
 -            for _i147 in xrange(_size143):
 -              _key148 = GlobalStreamId()
 -              _key148.read(iprot)
 -              _val149 = iprot.readDouble();
 -              _val142[_key148] = _val149
++          (_ktype144, _vtype145, _size143 ) = iprot.readMapBegin()
 +          for _i147 in xrange(_size143):
 +            _key148 = iprot.readString().decode('utf-8')
 +            _val149 = {}
-             (_ktype151, _vtype152, _size150 ) = iprot.readMapBegin() 
++            (_ktype151, _vtype152, _size150 ) = iprot.readMapBegin()
 +            for _i154 in xrange(_size150):
 +              _key155 = GlobalStreamId()
 +              _key155.read(iprot)
 +              _val156 = iprot.readDouble();
 +              _val149[_key155] = _val156
              iprot.readMapEnd()
 -            self.execute_ms_avg[_key141] = _val142
 +            self.execute_ms_avg[_key148] = _val149
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@@ -2977,51 -2939,51 +3089,51 @@@ class SpoutStats
        if fid == 1:
          if ftype == TType.MAP:
            self.acked = {}
-           (_ktype178, _vtype179, _size177 ) = iprot.readMapBegin() 
 -          (_ktype171, _vtype172, _size170 ) = iprot.readMapBegin()
 -          for _i174 in xrange(_size170):
 -            _key175 = iprot.readString().decode('utf-8')
 -            _val176 = {}
 -            (_ktype178, _vtype179, _size177 ) = iprot.readMapBegin()
 -            for _i181 in xrange(_size177):
 -              _key182 = iprot.readString().decode('utf-8')
 -              _val183 = iprot.readI64();
 -              _val176[_key182] = _val183
++          (_ktype178, _vtype179, _size177 ) = iprot.readMapBegin()
 +          for _i181 in xrange(_size177):
 +            _key182 = iprot.readString().decode('utf-8')
 +            _val183 = {}
-             (_ktype185, _vtype186, _size184 ) = iprot.readMapBegin() 
++            (_ktype185, _vtype186, _size184 ) = iprot.readMapBegin()
 +            for _i188 in xrange(_size184):
 +              _key189 = iprot.readString().decode('utf-8')
 +              _val190 = iprot.readI64();
 +              _val183[_key189] = _val190
              iprot.readMapEnd()
 -            self.acked[_key175] = _val176
 +            self.acked[_key182] = _val183
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 2:
          if ftype == TType.MAP:
            self.failed = {}
-           (_ktype192, _vtype193, _size191 ) = iprot.readMapBegin() 
 -          (_ktype185, _vtype186, _size184 ) = iprot.readMapBegin()
 -          for _i188 in xrange(_size184):
 -            _key189 = iprot.readString().decode('utf-8')
 -            _val190 = {}
 -            (_ktype192, _vtype193, _size191 ) = iprot.readMapBegin()
 -            for _i195 in xrange(_size191):
 -              _key196 = iprot.readString().decode('utf-8')
 -              _val197 = iprot.readI64();
 -              _val190[_key196] = _val197
++          (_ktype192, _vtype193, _size191 ) = iprot.readMapBegin()
 +          for _i195 in xrange(_size191):
 +            _key196 = iprot.readString().decode('utf-8')
 +            _val197 = {}
-             (_ktype199, _vtype200, _size198 ) = iprot.readMapBegin() 
++            (_ktype199, _vtype200, _size198 ) = iprot.readMapBegin()
 +            for _i202 in xrange(_size198):
 +              _key203 = iprot.readString().decode('utf-8')
 +              _val204 = iprot.readI64();
 +              _val197[_key203] = _val204
              iprot.readMapEnd()
 -            self.failed[_key189] = _val190
 +            self.failed[_key196] = _val197
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 3:
          if ftype == TType.MAP:
            self.complete_ms_avg = {}
-           (_ktype206, _vtype207, _size205 ) = iprot.readMapBegin() 
 -          (_ktype199, _vtype200, _size198 ) = iprot.readMapBegin()
 -          for _i202 in xrange(_size198):
 -            _key203 = iprot.readString().decode('utf-8')
 -            _val204 = {}
 -            (_ktype206, _vtype207, _size205 ) = iprot.readMapBegin()
 -            for _i209 in xrange(_size205):
 -              _key210 = iprot.readString().decode('utf-8')
 -              _val211 = iprot.readDouble();
 -              _val204[_key210] = _val211
++          (_ktype206, _vtype207, _size205 ) = iprot.readMapBegin()
 +          for _i209 in xrange(_size205):
 +            _key210 = iprot.readString().decode('utf-8')
 +            _val211 = {}
-             (_ktype213, _vtype214, _size212 ) = iprot.readMapBegin() 
++            (_ktype213, _vtype214, _size212 ) = iprot.readMapBegin()
 +            for _i216 in xrange(_size212):
 +              _key217 = iprot.readString().decode('utf-8')
 +              _val218 = iprot.readDouble();
 +              _val211[_key217] = _val218
              iprot.readMapEnd()
 -            self.complete_ms_avg[_key203] = _val204
 +            self.complete_ms_avg[_key210] = _val211
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@@ -3207,34 -3176,34 +3326,34 @@@ class ExecutorStats
        if fid == 1:
          if ftype == TType.MAP:
            self.emitted = {}
-           (_ktype232, _vtype233, _size231 ) = iprot.readMapBegin() 
 -          (_ktype225, _vtype226, _size224 ) = iprot.readMapBegin()
 -          for _i228 in xrange(_size224):
 -            _key229 = iprot.readString().decode('utf-8')
 -            _val230 = {}
 -            (_ktype232, _vtype233, _size231 ) = iprot.readMapBegin()
 -            for _i235 in xrange(_size231):
 -              _key236 = iprot.readString().decode('utf-8')
 -              _val237 = iprot.readI64();
 -              _val230[_key236] = _val237
++          (_ktype232, _vtype233, _size231 ) = iprot.readMapBegin()
 +          for _i235 in xrange(_size231):
 +            _key236 = iprot.readString().decode('utf-8')
 +            _val237 = {}
-             (_ktype239, _vtype240, _size238 ) = iprot.readMapBegin() 
++            (_ktype239, _vtype240, _size238 ) = iprot.readMapBegin()
 +            for _i242 in xrange(_size238):
 +              _key243 = iprot.readString().decode('utf-8')
 +              _val244 = iprot.readI64();
 +              _val237[_key243] = _val244
              iprot.readMapEnd()
 -            self.emitted[_key229] = _val230
 +            self.emitted[_key236] = _val237
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
        elif fid == 2:
          if ftype == TType.MAP:
            self.transferred = {}
-           (_ktype246, _vtype247, _size245 ) = iprot.readMapBegin() 
 -          (_ktype239, _vtype240, _size238 ) = iprot.readMapBegin()
 -          for _i242 in xrange(_size238):
 -            _key243 = iprot.readString().decode('utf-8')
 -            _val244 = {}
 -            (_ktype246, _vtype247, _size245 ) = iprot.readMapBegin()
 -            for _i249 in xrange(_size245):
 -              _key250 = iprot.readString().decode('utf-8')
 -              _val251 = iprot.readI64();
 -              _val244[_key250] = _val251
++          (_ktype246, _vtype247, _size245 ) = iprot.readMapBegin()
 +          for _i249 in xrange(_size245):
 +            _key250 = iprot.readString().decode('utf-8')
 +            _val251 = {}
-             (_ktype253, _vtype254, _size252 ) = iprot.readMapBegin() 
++            (_ktype253, _vtype254, _size252 ) = iprot.readMapBegin()
 +            for _i256 in xrange(_size252):
 +              _key257 = iprot.readString().decode('utf-8')
 +              _val258 = iprot.readI64();
 +              _val251[_key257] = _val258
              iprot.readMapEnd()
 -            self.transferred[_key243] = _val244
 +            self.transferred[_key250] = _val251
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@@ -4051,13 -4036,9 +4187,10 @@@ class TopologyInfo
      None, # 512
      (513, TType.STRING, 'sched_status', None, None, ), # 513
      (514, TType.STRING, 'owner', None, None, ), # 514
 +    (515, TType.I32, 'replication_count', None, None, ), # 515
    )
  
-   def __hash__(self):
-     return 0 + hash(self.id) + hash(self.name) + hash(self.uptime_secs) + hash(self.executors) + hash(self.status) + hash(self.errors) + hash(self.sched_status) + hash(self.owner) + hash(self.replication_count)
- 
 -  def __init__(self, id=None, name=None, uptime_secs=None, executors=None, status=None, errors=None, sched_status=None, owner=None,):
 +  def __init__(self, id=None, name=None, uptime_secs=None, executors=None, status=None, errors=None, sched_status=None, owner=None, replication_count=None,):
      self.id = id
      self.name = name
      self.uptime_secs = uptime_secs
@@@ -4111,17 -4091,17 +4244,17 @@@
        elif fid == 6:
          if ftype == TType.MAP:
            self.errors = {}
-           (_ktype274, _vtype275, _size273 ) = iprot.readMapBegin() 
 -          (_ktype267, _vtype268, _size266 ) = iprot.readMapBegin()
 -          for _i270 in xrange(_size266):
 -            _key271 = iprot.readString().decode('utf-8')
 -            _val272 = []
 -            (_etype276, _size273) = iprot.readListBegin()
 -            for _i277 in xrange(_size273):
 -              _elem278 = ErrorInfo()
 -              _elem278.read(iprot)
 -              _val272.append(_elem278)
++          (_ktype274, _vtype275, _size273 ) = iprot.readMapBegin()
 +          for _i277 in xrange(_size273):
 +            _key278 = iprot.readString().decode('utf-8')
 +            _val279 = []
 +            (_etype283, _size280) = iprot.readListBegin()
 +            for _i284 in xrange(_size280):
 +              _elem285 = ErrorInfo()
 +              _elem285.read(iprot)
 +              _val279.append(_elem285)
              iprot.readListEnd()
 -            self.errors[_key271] = _val272
 +            self.errors[_key278] = _val279
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@@ -4215,6 -4186,18 +4348,19 @@@
      return
  
  
+   def __hash__(self):
+     value = 17
+     value = (value * 31) ^ hash(self.id)
+     value = (value * 31) ^ hash(self.name)
+     value = (value * 31) ^ hash(self.uptime_secs)
+     value = (value * 31) ^ hash(self.executors)
+     value = (value * 31) ^ hash(self.status)
+     value = (value * 31) ^ hash(self.errors)
+     value = (value * 31) ^ hash(self.sched_status)
+     value = (value * 31) ^ hash(self.owner)
++    value = (value * 31) ^ hash(self.replication_count)
+     return value
+ 
    def __repr__(self):
      L = ['%s=%r' % (key, value)
        for key, value in self.__dict__.iteritems()]
@@@ -4334,11 -4316,11 +4479,11 @@@ class RebalanceOptions
        elif fid == 3:
          if ftype == TType.MAP:
            self.num_executors = {}
-           (_ktype291, _vtype292, _size290 ) = iprot.readMapBegin() 
 -          (_ktype284, _vtype285, _size283 ) = iprot.readMapBegin()
 -          for _i287 in xrange(_size283):
 -            _key288 = iprot.readString().decode('utf-8')
 -            _val289 = iprot.readI32();
 -            self.num_executors[_key288] = _val289
++          (_ktype291, _vtype292, _size290 ) = iprot.readMapBegin()
 +          for _i294 in xrange(_size290):
 +            _key295 = iprot.readString().decode('utf-8')
 +            _val296 = iprot.readI32();
 +            self.num_executors[_key295] = _val296
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)
@@@ -4415,11 -4401,11 +4564,11 @@@ class Credentials
        if fid == 1:
          if ftype == TType.MAP:
            self.creds = {}
-           (_ktype300, _vtype301, _size299 ) = iprot.readMapBegin() 
 -          (_ktype293, _vtype294, _size292 ) = iprot.readMapBegin()
 -          for _i296 in xrange(_size292):
 -            _key297 = iprot.readString().decode('utf-8')
 -            _val298 = iprot.readString().decode('utf-8')
 -            self.creds[_key297] = _val298
++          (_ktype300, _vtype301, _size299 ) = iprot.readMapBegin()
 +          for _i303 in xrange(_size299):
 +            _key304 = iprot.readString().decode('utf-8')
 +            _val305 = iprot.readString().decode('utf-8')
 +            self.creds[_key304] = _val305
            iprot.readMapEnd()
          else:
            iprot.skip(ftype)

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/src/ui/public/index.html
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/test/clj/backtype/storm/nimbus_test.clj
----------------------------------------------------------------------
diff --cc storm-core/test/clj/backtype/storm/nimbus_test.clj
index c937aaa,99d1e32..48037c9
--- a/storm-core/test/clj/backtype/storm/nimbus_test.clj
+++ b/storm-core/test/clj/backtype/storm/nimbus_test.clj
@@@ -17,18 -17,23 +17,24 @@@
    (:use [clojure test])
    (:require [backtype.storm [util :as util]])
    (:require [backtype.storm.daemon [nimbus :as nimbus]])
-   (:import [backtype.storm.testing TestWordCounter TestWordSpout TestGlobalCount TestAggregatesCounter])
+   (:import [backtype.storm.testing TestWordCounter TestWordSpout TestGlobalCount
+             TestAggregatesCounter TestPlannerSpout TestPlannerBolt])
    (:import [backtype.storm.scheduler INimbus])
-   (:use [backtype.storm bootstrap testing zookeeper])
 +  (:import [backtype.storm.nimbus ILeaderElector NimbusInfo])
+   (:import [backtype.storm.generated Credentials NotAliveException SubmitOptions
+             TopologyInitialStatus AlreadyAliveException KillOptions RebalanceOptions
+             InvalidTopologyException AuthorizationException])
+   (:import [java.util HashMap])
+   (:import [java.io File])
+   (:import [backtype.storm.utils Time])
+   (:import [org.apache.commons.io FileUtils])
 -  (:use [backtype.storm testing MockAutoCred util config log timer])
++  (:use [backtype.storm testing MockAutoCred util config log timer zookeeper])
    (:use [backtype.storm.daemon common])
-   (:import [backtype.storm.generated Credentials])
-   (:use [backtype.storm bootstrap testing MockAutoCred])
    (:require [conjure.core])
-   (:use [conjure core])
-   )
- 
- (bootstrap)
+   (:require [backtype.storm
+              [thrift :as thrift]
+              [cluster :as cluster]])
+   (:use [conjure core]))
  
  (defn storm-component->task-info [cluster storm-name]
    (let [storm-id (get-storm-id (:storm-cluster-state cluster) storm-name)

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/test/clj/backtype/storm/security/auth/auth_test.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/test/clj/backtype/storm/security/auth/nimbus_auth_test.clj
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/storm/blob/85e4d5ef/storm-core/test/clj/backtype/storm/supervisor_test.clj
----------------------------------------------------------------------