func()

in ecs-init/volumes/ecs_volume_plugin.go [82:115]


func (a *AmazonECSVolumePlugin) LoadState() error {
	a.lock.Lock()
	defer a.lock.Unlock()
	seelog.Info("Loading plugin state information")
	oldState := &VolumeState{}
	if !fileExists(PluginStateFileAbsPath) {
		return nil
	}
	if err := a.state.load(oldState); err != nil {
		seelog.Errorf("Could not load state: %v", err)
		return fmt.Errorf("could not load plugin state: %v", err)
	}
	// empty state file
	if oldState.Volumes == nil {
		return nil
	}
	for volName, vol := range oldState.Volumes {
		voldriver, err := a.getVolumeDriver(vol.Type)
		if err != nil {
			seelog.Errorf("Could not load state: %v", err)
			return fmt.Errorf("could not load plugin state: %v", err)
		}
		volume := &Volume{
			Type:      vol.Type,
			Path:      vol.Path,
			Options:   vol.Options,
			CreatedAt: vol.CreatedAt,
		}
		a.volumes[volName] = volume
		voldriver.Setup(volName, volume)
	}
	a.state.VolState = oldState
	return nil
}