1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.configserver.noderepository;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.host.FlavorOverrides;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
/**
* @author freva
*/
public class AddNode {
public final String hostname;
public final String id;
public final Optional<String> parentHostname;
public final Optional<String> nodeFlavor;
public final Optional<FlavorOverrides> flavorOverrides;
public final Optional<NodeResources> nodeResources;
public final NodeType nodeType;
public final Set<String> ipAddresses;
public final Set<String> additionalIpAddresses;
public static AddNode forHost(String hostname, String id, String nodeFlavor, Optional<FlavorOverrides> flavorOverrides, NodeType nodeType, Set<String> ipAddresses, Set<String> additionalIpAddresses) {
return new AddNode(hostname, id, Optional.empty(), Optional.of(nodeFlavor), flavorOverrides, Optional.empty(), nodeType, ipAddresses, additionalIpAddresses);
}
public static AddNode forNode(String hostname, String id, String parentHostname, NodeResources nodeResources, NodeType nodeType, Set<String> ipAddresses) {
return new AddNode(hostname, id, Optional.of(parentHostname), Optional.empty(), Optional.empty(), Optional.of(nodeResources), nodeType, ipAddresses, Set.of());
}
private AddNode(String hostname, String id, Optional<String> parentHostname,
Optional<String> nodeFlavor, Optional<FlavorOverrides> flavorOverrides,
Optional<NodeResources> nodeResources,
NodeType nodeType, Set<String> ipAddresses, Set<String> additionalIpAddresses) {
this.hostname = hostname;
this.id = id;
this.parentHostname = parentHostname;
this.nodeFlavor = nodeFlavor;
this.flavorOverrides = flavorOverrides;
this.nodeResources = nodeResources;
this.nodeType = nodeType;
this.ipAddresses = ipAddresses;
this.additionalIpAddresses = additionalIpAddresses;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AddNode addNode = (AddNode) o;
return Objects.equals(hostname, addNode.hostname) &&
Objects.equals(id, addNode.id) &&
Objects.equals(parentHostname, addNode.parentHostname) &&
Objects.equals(nodeFlavor, addNode.nodeFlavor) &&
Objects.equals(flavorOverrides, addNode.flavorOverrides) &&
Objects.equals(nodeResources, addNode.nodeResources) &&
nodeType == addNode.nodeType &&
Objects.equals(ipAddresses, addNode.ipAddresses) &&
Objects.equals(additionalIpAddresses, addNode.additionalIpAddresses);
}
@Override
public int hashCode() {
return Objects.hash(hostname, id, parentHostname, nodeFlavor, flavorOverrides, nodeResources, nodeType, ipAddresses, additionalIpAddresses);
}
@Override
public String toString() {
return "AddNode{" +
"hostname='" + hostname + '\'' +
", id=" + id +
", parentHostname=" + parentHostname +
", nodeFlavor='" + nodeFlavor + '\'' +
", flavorOverrides='" + flavorOverrides + '\'' +
", nodeResources='" + nodeResources + '\'' +
", nodeType=" + nodeType +
", ipAddresses=" + ipAddresses +
", additionalIpAddresses=" + additionalIpAddresses +
'}';
}
}
|