mirror of
https://github.com/containers/podman.git
synced 2025-06-20 17:13:43 +08:00
Merge pull request #6501 from rhatdan/iops
Fix handling of ThrottleWriteIOPSDevice
This commit is contained in:
@ -1,93 +0,0 @@
|
|||||||
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
|
|
||||||
//}
|
|
@ -194,7 +194,7 @@ func finishThrottleDevices(s *specgen.SpecGenerator) error {
|
|||||||
s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice = append(s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice, v)
|
s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice = append(s.ResourceLimits.BlockIO.ThrottleReadIOPSDevice, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if iops := s.ThrottleWriteBpsDevice; len(iops) > 0 {
|
if iops := s.ThrottleWriteIOPSDevice; len(iops) > 0 {
|
||||||
for k, v := range iops {
|
for k, v := range iops {
|
||||||
statT := unix.Stat_t{}
|
statT := unix.Stat_t{}
|
||||||
if err := unix.Stat(k, &statT); err != nil {
|
if err := unix.Stat(k, &statT); err != nil {
|
||||||
|
Reference in New Issue
Block a user