Beispiel #1
0
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)
}
Beispiel #2
0
// 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
}