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
}