func (d *NetworkDiagnostic) CollectNetworkInfo(diagsFailed bool) error { if diagsFailed { // Collect useful info from master l := util.LogInterface{ Result: d.res, Logdir: filepath.Join(d.LogDir, util.NetworkDiagMasterLogDirPrefix), } l.LogMaster() } podList, err := d.getPodList(d.nsName1, util.NetworkDiagPodNamePrefix) if err != nil { return err } errList := []error{} for _, pod := range podList.Items { if pod.Status.Phase != kapi.PodRunning { continue } if diagsFailed { if err := d.copyNetworkPodInfo(&pod); err != nil { errList = append(errList, err) } } if err := d.deleteRemoteNodeInfo(&pod); err != nil { errList = append(errList, err) } } return kerrs.NewAggregate(errList) }
// Check is part of the Diagnostic interface; it runs the actual diagnostic logic func (d CollectNetworkInfo) Check() types.DiagnosticResult { r := types.NewDiagnosticResult(CollectNetworkInfoName) nodeName, _, err := util.GetLocalNode(d.KubeClient) if err != nil { r.Error("DColNet1001", err, fmt.Sprintf("Fetching local node info failed: %s", err)) return r } l := util.LogInterface{ Result: r, Logdir: filepath.Join(util.NetworkDiagDefaultLogDir, util.NetworkDiagNodeLogDirPrefix, nodeName), } l.LogNode(d.KubeClient) return r }