func()

in pkg/cni/conf/confmanager.go [121:155]


func (mgr *Manager) insertCNIPluginConf() error {
	file, err := findMasterPlugin(mgr.cniConfDir, mgr.cniConfFile)
	if err != nil {
		return err
	}

	ext := filepath.Ext(file)
	var rawList map[string]interface{}
	if ext == ".conflist" {
		rawList, err = mgr.managePluginFromConfList(file)
		if err != nil {
			return err
		}
	} else {
		rawList, err = mgr.managePluginFromConf(file)
		if err != nil {
			return err
		}
	}

	newBytes, err := json.MarshalIndent(rawList, "", "  ")
	if err != nil {
		return fmt.Errorf("failed to marshal bytes into json: %w, bytes: %s", err, string(newBytes))
	}
	tmpFile := filepath.Join(mgr.cniConfDir, mgr.cniConfFileTemp)
	err = os.WriteFile(tmpFile, newBytes, 0644)
	if err != nil {
		return fmt.Errorf("failed to write to tmp file: %w", err)
	}
	err = os.Rename(tmpFile, filepath.Join(mgr.cniConfDir, mgr.cniConfFile))
	if err != nil {
		return fmt.Errorf("failed to rename file: %w", err)
	}
	return nil
}