(containerManager manager.Manager)
| 266 | } |
| 267 | |
| 268 | func validateIoScheduler(containerManager manager.Manager) (string, string) { |
| 269 | var desc string |
| 270 | mi, err := containerManager.GetMachineInfo() |
| 271 | if err != nil { |
| 272 | return Unknown, "Machine info not available\n\t" |
| 273 | } |
| 274 | cfq := false |
| 275 | for _, disk := range mi.DiskMap { |
| 276 | desc += fmt.Sprintf("\t Disk %q Scheduler type %q.\n", disk.Name, disk.Scheduler) |
| 277 | if disk.Scheduler == "cfq" { |
| 278 | cfq = true |
| 279 | } |
| 280 | } |
| 281 | // Since we get lot of random block devices, report recommended if |
| 282 | // at least one of them is on cfq. Report Supported otherwise. |
| 283 | if cfq { |
| 284 | desc = "At least one device supports 'cfq' I/O scheduler. Some disk stats can be reported.\n" + desc |
| 285 | return Recommended, desc |
| 286 | } |
| 287 | desc = "None of the devices support 'cfq' I/O scheduler. No disk stats can be reported.\n" + desc |
| 288 | return Supported, desc |
| 289 | } |
| 290 | |
| 291 | func HandleRequest(w http.ResponseWriter, containerManager manager.Manager) error { |
| 292 | // Get cAdvisor version Info. |
no test coverage detected
searching dependent graphs…