Github user tillrohrmann commented on a diff in the pull request:
https://github.com/apache/flink/pull/2389#discussion_r75671552
--- Diff:
flink-runtime/src/main/java/org/apache/flink/runtime/rpc/resourcemanager/SlotRequest.java
---
@@ -18,8 +18,78 @@
package org.apache.flink.runtime.rpc.resourcemanager;
+import static org.apache.flink.util.Preconditions.checkNotNull;
+
+import org.apache.flink.api.common.JobID;
+import org.apache.flink.runtime.clusterframework.types.AllocationID;
+import org.apache.flink.runtime.clusterframework.types.ResourceProfile;
+
import java.io.Serializable;
-public class SlotRequest implements Serializable{
+/**
+ * Slot allocation request from jobManager to resourceManager
+ */
+public class SlotRequest implements Serializable {
private static final long serialVersionUID = -6586877187990445986L;
+
+ /** jobId to identify which job send the request */
+ private final JobID jobID;
+
+ /** allocationId to identify slot allocation, created by JobManager
when requesting a sot */
+ private final AllocationID allocationID;
+
+ /** the resource profile of the desired slot */
+ private final ResourceProfile profile;
+
+ public SlotRequest(JobID jobID, AllocationID allocationID) {
+ this(jobID, allocationID, null);
+ }
+
+ public SlotRequest(JobID jobID, AllocationID allocationID,
ResourceProfile profile) {
+ this.jobID = checkNotNull(jobID, "jobID cannot be null");
+ this.allocationID = checkNotNull(allocationID, "allocationID
cannot be null");
+ this.profile = checkNotNull(profile, "profile cannot be null");
+ }
+
+ public ResourceProfile getProfile() {
+ return profile;
+ }
+
+ public AllocationID getAllocationID() {
+ return allocationID;
+ }
+
+ public JobID getJobID() {
+ return jobID;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+
+ SlotRequest that = (SlotRequest) o;
+
+ if (!jobID.equals(that.jobID)) {
+ return false;
+ }
+ if (!allocationID.equals(that.allocationID)) {
+ return false;
+ }
+ return profile.equals(that.profile);
+
+ }
+
+ @Override
+ public int hashCode() {
+ int result = jobID.hashCode();
+ result = 31 * result + allocationID.hashCode();
+ result = 31 * result + profile.hashCode();
+ return result;
--- End diff --
Can be simplified by `return Objects.hash(jobID, allocationID, profile);`.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---