aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/awsnodes/VespaFlavor.java
blob: 5810e189699b091c42a31fdd84bc09eb8765b03e (plain) (blame)
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
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.autoscale.awsnodes;

import com.yahoo.config.provision.NodeResources;

/**
 * Holds the advertised and real resources of a host type.
 *
 * @author bratseth
 */
public class VespaFlavor {

    private final String name;
    private final NodeResources realResources, advertisedResources;

    public VespaFlavor(String name,
                       double advertisedVcpu,
                       double realVcpu,
                       double advertisedMemoryGb,
                       double realMemoryGb,
                       double diskGb,
                       double bandwidthGbps,
                       NodeResources.DiskSpeed diskSpeed,
                       NodeResources.StorageType storageType,
                       NodeResources.Architecture architecture) {
        this(name, advertisedVcpu, realVcpu, advertisedMemoryGb, realMemoryGb, diskGb, bandwidthGbps, diskSpeed, storageType, architecture, NodeResources.GpuResources.zero());
    }

    public VespaFlavor(String name,
                       double advertisedVcpu,
                       double realVcpu,
                       double advertisedMemoryGb,
                       double realMemoryGb,
                       double diskGb,
                       double bandwidthGbps,
                       NodeResources.DiskSpeed diskSpeed,
                       NodeResources.StorageType storageType,
                       NodeResources.Architecture architecture,
                       NodeResources.GpuResources gpuResources) {
        this.name = name;
        this.realResources = new NodeResources(realVcpu, realMemoryGb, diskGb, bandwidthGbps, diskSpeed, storageType, architecture, gpuResources);
        this.advertisedResources = new NodeResources(advertisedVcpu, advertisedMemoryGb, diskGb, bandwidthGbps, diskSpeed, storageType, architecture, gpuResources);
    }

    public String name() { return name; }

    public NodeResources realResources() { return realResources; }

    public NodeResources advertisedResources() { return advertisedResources; }

    @Override
    public String toString() { return "flavor " + name; }

}