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
87
88
89
90
91
92
93
|
package specgen
//func createBlockIO() (*spec.LinuxBlockIO, error) {
// var ret *spec.LinuxBlockIO
// bio := &spec.LinuxBlockIO{}
// if c.Resources.BlkioWeight > 0 {
// ret = bio
// bio.Weight = &c.Resources.BlkioWeight
// }
// if len(c.Resources.BlkioWeightDevice) > 0 {
// var lwds []spec.LinuxWeightDevice
// ret = bio
// for _, i := range c.Resources.BlkioWeightDevice {
// wd, err := ValidateweightDevice(i)
// if err != nil {
// return ret, errors.Wrapf(err, "invalid values for blkio-weight-device")
// }
// wdStat, err := GetStatFromPath(wd.Path)
// if err != nil {
// return ret, errors.Wrapf(err, "error getting stat from path %q", wd.Path)
// }
// lwd := spec.LinuxWeightDevice{
// Weight: &wd.Weight,
// }
// lwd.Major = int64(unix.Major(wdStat.Rdev))
// lwd.Minor = int64(unix.Minor(wdStat.Rdev))
// lwds = append(lwds, lwd)
// }
// bio.WeightDevice = lwds
// }
// if len(c.Resources.DeviceReadBps) > 0 {
// ret = bio
// readBps, err := makeThrottleArray(c.Resources.DeviceReadBps, bps)
// if err != nil {
// return ret, err
// }
// bio.ThrottleReadBpsDevice = readBps
// }
// if len(c.Resources.DeviceWriteBps) > 0 {
// ret = bio
// writeBpds, err := makeThrottleArray(c.Resources.DeviceWriteBps, bps)
// if err != nil {
// return ret, err
// }
// bio.ThrottleWriteBpsDevice = writeBpds
// }
// if len(c.Resources.DeviceReadIOps) > 0 {
// ret = bio
// readIOps, err := makeThrottleArray(c.Resources.DeviceReadIOps, iops)
// if err != nil {
// return ret, err
// }
// bio.ThrottleReadIOPSDevice = readIOps
// }
// if len(c.Resources.DeviceWriteIOps) > 0 {
// ret = bio
// writeIOps, err := makeThrottleArray(c.Resources.DeviceWriteIOps, iops)
// if err != nil {
// return ret, err
// }
// bio.ThrottleWriteIOPSDevice = writeIOps
// }
// return ret, nil
//}
//func makeThrottleArray(throttleInput []string, rateType int) ([]spec.LinuxThrottleDevice, error) {
// var (
// ltds []spec.LinuxThrottleDevice
// t *throttleDevice
// err error
// )
// for _, i := range throttleInput {
// if rateType == bps {
// t, err = validateBpsDevice(i)
// } else {
// t, err = validateIOpsDevice(i)
// }
// if err != nil {
// return []spec.LinuxThrottleDevice{}, err
// }
// ltdStat, err := GetStatFromPath(t.path)
// if err != nil {
// return ltds, errors.Wrapf(err, "error getting stat from path %q", t.path)
// }
// ltd := spec.LinuxThrottleDevice{
// Rate: t.rate,
// }
// ltd.Major = int64(unix.Major(ltdStat.Rdev))
// ltd.Minor = int64(unix.Minor(ltdStat.Rdev))
// ltds = append(ltds, ltd)
// }
// return ltds, nil
//}
|