code: func (v *sioVolume) resetSioMgr() error {
  	podDir := v.plugin.host.GetPodPluginDir(v.podUID, sioPluginName)
  	configName := filepath.Join(podDir, sioConfigFileName)
  	if v.sioMgr == nil {
  		// load config data from disk
  		configData, err := loadConfig(configName)
  		if err != nil {
  			klog.Error(log("failed to load config data: %v", err))
  			return err
  		}
  		v.secretName = configData[confKey.secretName]
  		v.secretNamespace = configData[confKey.secretNamespace]
  		v.volName = configData[confKey.volumeName]
  		v.volSpecName = configData[confKey.volSpecName]
  
  		// attach secret
  		if err := attachSecret(v.plugin, v.secretNamespace, configData); err != nil {
  			klog.Error(log("failed to load secret: %v", err))
  			return err
  		}
  
  		// merge in Sdc Guid label value
  		if err := attachSdcGUID(v.plugin, configData); err != nil {
  			klog.Error(log("failed to retrieve sdc guid: %v", err))
  			return err
  		}
  
  		mgr, err := newSioMgr(configData, v.plugin.host.GetExec(v.plugin.GetPluginName()))
  
  		if err != nil {
  			klog.Error(log("failed to reset scaleio mgr: %v", err))
  			return err
  		}
  		v.sioMgr = mgr
  	}
  	return nil
  }
docs: // resetSioMgr creates scaleio manager from existing (cached) config data