func populateStateFromInstalled() error { all, err := (&snappy.Overlord{}).Installed() if err != nil { return err } if osutil.FileExists(dirs.SnapStateFile) { return fmt.Errorf("cannot create state: state %q already exists", dirs.SnapStateFile) } st := state.New(&overlordStateBackend{ path: dirs.SnapStateFile, }) st.Lock() defer st.Unlock() for _, sn := range all { // no need to do a snapstate.Get() because this is firstboot info := sn.Info() var snapst snapstate.SnapState snapst.Sequence = append(snapst.Sequence, &info.SideInfo) snapst.Channel = info.Channel snapst.Active = sn.IsActive() snapstate.Set(st, sn.Name(), &snapst) } return nil }