@Override public int compareTo(SubmitOptions other) { if (!getClass().equals(other.getClass())) { return getClass().getName().compareTo(other.getClass().getName()); } int lastComparison = 0; lastComparison = Boolean.valueOf(is_set_initial_status()).compareTo(other.is_set_initial_status()); if (lastComparison != 0) { return lastComparison; } if (is_set_initial_status()) { lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.initial_status, other.initial_status); if (lastComparison != 0) { return lastComparison; } } lastComparison = Boolean.valueOf(is_set_creds()).compareTo(other.is_set_creds()); if (lastComparison != 0) { return lastComparison; } if (is_set_creds()) { lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.creds, other.creds); if (lastComparison != 0) { return lastComparison; } } return 0; }
/** Performs a deep copy on <i>other</i>. */ public SubmitOptions(SubmitOptions other) { if (other.is_set_initial_status()) { this.initial_status = other.initial_status; } if (other.is_set_creds()) { this.creds = new Credentials(other.creds); } }
@Override public void read(org.apache.thrift.protocol.TProtocol prot, SubmitOptions struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; struct.initial_status = backtype.storm.generated.TopologyInitialStatus.findByValue(iprot.readI32()); struct.set_initial_status_isSet(true); BitSet incoming = iprot.readBitSet(1); if (incoming.get(0)) { struct.creds = new Credentials(); struct.creds.read(iprot); struct.set_creds_isSet(true); } }
@Override public void write(org.apache.thrift.protocol.TProtocol prot, SubmitOptions struct) throws org.apache.thrift.TException { TTupleProtocol oprot = (TTupleProtocol) prot; oprot.writeI32(struct.initial_status.getValue()); BitSet optionals = new BitSet(); if (struct.is_set_creds()) { optionals.set(0); } oprot.writeBitSet(optionals, 1); if (struct.is_set_creds()) { struct.creds.write(oprot); } }
public boolean equals(SubmitOptions that) { if (that == null) return false; boolean this_present_initial_status = true && this.is_set_initial_status(); boolean that_present_initial_status = true && that.is_set_initial_status(); if (this_present_initial_status || that_present_initial_status) { if (!(this_present_initial_status && that_present_initial_status)) return false; if (!this.initial_status.equals(that.initial_status)) return false; } boolean this_present_creds = true && this.is_set_creds(); boolean that_present_creds = true && that.is_set_creds(); if (this_present_creds || that_present_creds) { if (!(this_present_creds && that_present_creds)) return false; if (!this.creds.equals(that.creds)) return false; } return true; }
public void write(org.apache.thrift.protocol.TProtocol oprot, SubmitOptions struct) throws org.apache.thrift.TException { struct.validate(); oprot.writeStructBegin(STRUCT_DESC); if (struct.initial_status != null) { oprot.writeFieldBegin(INITIAL_STATUS_FIELD_DESC); oprot.writeI32(struct.initial_status.getValue()); oprot.writeFieldEnd(); } if (struct.creds != null) { if (struct.is_set_creds()) { oprot.writeFieldBegin(CREDS_FIELD_DESC); struct.creds.write(oprot); oprot.writeFieldEnd(); } } oprot.writeFieldStop(); oprot.writeStructEnd(); }
public void read(org.apache.thrift.protocol.TProtocol iprot, SubmitOptions 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: // INITIAL_STATUS if (schemeField.type == org.apache.thrift.protocol.TType.I32) { struct.initial_status = backtype.storm.generated.TopologyInitialStatus.findByValue(iprot.readI32()); struct.set_initial_status_isSet(true); } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; case 2: // CREDS if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { struct.creds = new Credentials(); struct.creds.read(iprot); struct.set_creds_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(); }
/** * Submit one Topology * * @param topologyname String: topology name * @param uploadedJarLocation String: already uploaded jar path * @param jsonConf String: jsonConf serialize all toplogy configuration to Json * @param topology StormTopology: topology Object */ @SuppressWarnings("unchecked") @Override public void submitTopologyWithOpts( String topologyname, String uploadedJarLocation, String jsonConf, StormTopology topology, SubmitOptions options) throws AlreadyAliveException, InvalidTopologyException, TopologyAssignException, TException { LOG.info("Receive " + topologyname + ", uploadedJarLocation:" + uploadedJarLocation); // @@@ Move validate topologyname in client code try { checkTopologyActive(data, topologyname, false); } catch (AlreadyAliveException e) { LOG.info(topologyname + " is already exist "); throw e; } catch (Exception e) { LOG.info("Failed to check whether topology is alive or not", e); throw new TException(e); } int counter = data.getSubmittedCount().incrementAndGet(); String topologyId = topologyname + "-" + counter + "-" + TimeUtils.current_time_secs(); Map<Object, Object> serializedConf = (Map<Object, Object>) JStormUtils.from_json(jsonConf); if (serializedConf == null) { LOG.warn("Failed to serialized Configuration"); throw new InvalidTopologyException("Failed to serilaze topology configuration"); } serializedConf.put(Config.TOPOLOGY_ID, topologyId); serializedConf.put(Config.TOPOLOGY_NAME, topologyname); try { Map<Object, Object> stormConf; stormConf = NimbusUtils.normalizeConf(conf, serializedConf, topology); Map<Object, Object> totalStormConf = new HashMap<Object, Object>(conf); totalStormConf.putAll(stormConf); StormTopology normalizedTopology = NimbusUtils.normalizeTopology(stormConf, topology); // this validates the structure of the topology Common.validate_basic(normalizedTopology, totalStormConf, topologyId); // don't need generate real topology, so skip Common.system_topology // Common.system_topology(totalStormConf, topology); StormClusterState stormClusterState = data.getStormClusterState(); // create /local-dir/nimbus/topologyId/xxxx files setupStormCode(conf, topologyId, uploadedJarLocation, stormConf, normalizedTopology); // generate TaskInfo for every bolt or spout in ZK // /ZK/tasks/topoologyId/xxx setupZkTaskInfo(conf, topologyId, stormClusterState); // make assignments for a topology TopologyAssignEvent assignEvent = new TopologyAssignEvent(); assignEvent.setTopologyId(topologyId); assignEvent.setScratch(false); assignEvent.setTopologyName(topologyname); assignEvent.setOldStatus( Thrift.topologyInitialStatusToStormStatus(options.get_initial_status())); TopologyAssign.push(assignEvent); LOG.info("Submit for " + topologyname + " with conf " + serializedConf); boolean isSuccess = assignEvent.waitFinish(); if (isSuccess == true) { LOG.info("Finish submit for " + topologyname); } else { throw new FailedAssignTopologyException(assignEvent.getErrorMsg()); } } catch (FailedAssignTopologyException e) { StringBuilder sb = new StringBuilder(); sb.append("Fail to sumbit topology, Root cause:"); if (e.getMessage() == null) { sb.append("submit timeout"); } else { sb.append(e.getMessage()); } sb.append("\n\n"); sb.append("topologyId:" + topologyId); sb.append(", uploadedJarLocation:" + uploadedJarLocation + "\n"); LOG.error(sb.toString(), e); throw new TopologyAssignException(sb.toString()); } catch (InvalidParameterException e) { StringBuilder sb = new StringBuilder(); sb.append("Fail to sumbit topology "); sb.append(e.getMessage()); sb.append(", cause:" + e.getCause()); sb.append("\n\n"); sb.append("topologyId:" + topologyId); sb.append(", uploadedJarLocation:" + uploadedJarLocation + "\n"); LOG.error(sb.toString(), e); throw new InvalidParameterException(sb.toString()); } catch (Throwable e) { StringBuilder sb = new StringBuilder(); sb.append("Fail to sumbit topology "); sb.append(e.getMessage()); sb.append(", cause:" + e.getCause()); sb.append("\n\n"); sb.append("topologyId:" + topologyId); sb.append(", uploadedJarLocation:" + uploadedJarLocation + "\n"); LOG.error(sb.toString(), e); throw new TopologyAssignException(sb.toString()); } }