Documentation ¶
Overview ¶
Package seed implements loading and validating of seed data.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ErrNoAssertions = errors.New("no seed assertions") ErrNoMeta = errors.New("no seed metadata") )
Functions ¶
func MockTrusted ¶
func ValidateFromYaml ¶
ValidateFromYaml validates the given seed.yaml file and surrounding seed.
Types ¶
type Seed ¶
type Seed interface { // LoadAssertions loads all assertions from the seed with // cross-checks. A read-only view on an assertions database // can be passed in together with a commitTo function which // will be used to commit the assertions to the underlying // database. If db is nil an internal temporary database will // be setup instead. ErrNoAssertions will be returned if there // is no assertions directory in the seed, this is legitimate // only on classic. LoadAssertions(db asserts.RODatabase, commitTo func(*asserts.Batch) error) error // Model returns the seed provided model assertion. // It will panic if called before LoadAssertions. Model() *asserts.Model // Brand returns the brand information of the seed. // It will panic if called before LoadAssertions. Brand() (*asserts.Account, error) // LoadEssentialMeta loads the seed's snaps metadata for the // essential snaps with types in the essentialTypes set while // verifying them against assertions. It can return ErrNoMeta // if there is no metadata nor snaps in the seed, this is // legitimate only on classic. It can be called multiple times // if needed before invoking LoadMeta. // It will panic if called before LoadAssertions. LoadEssentialMeta(essentialTypes []snap.Type, tm timings.Measurer) error // LoadMeta loads the seed and seed's snaps metadata while // verifying the underlying snaps against assertions. It can // return ErrNoMeta if there is no metadata nor snaps in the // seed, this is legitimate only on classic. // It will panic if called before LoadAssertions. LoadMeta(tm timings.Measurer) error // UsesSnapdSnap returns whether the system as defined by the // seed will use the snapd snap, after LoadMeta. UsesSnapdSnap() bool // EssentialSnaps returns the essential snaps as defined by // the seed, after LoadMeta. EssentialSnaps() []*Snap // ModeSnaps returns the snaps that should be available // in the given mode as defined by the seed, after LoadMeta. ModeSnaps(mode string) ([]*Snap, error) }
Seed supports loading assertions and seed snaps' metadata.
type Snap ¶
type Snap struct { Path string SideInfo *snap.SideInfo // EssentialType is the type of the snap as specified by the model. // Provided only for essential snaps (Essential = true). EssentialType snap.Type Essential bool Required bool // options Channel string DevMode bool Classic bool }
Snap holds the details of a snap in a seed.
func ReadSystemEssential ¶
func ReadSystemEssential(seedDir, label string, essentialTypes []snap.Type, tm timings.Measurer) (*asserts.Model, []*Snap, error)
ReadSystemEssential retrieves in one go information about the model and essential snaps of the given types for the Core 20 recovery system seed specified by seedDir and label (which cannot be empty).
func ReadSystemEssentialAndBetterEarliestTime ¶
func ReadSystemEssentialAndBetterEarliestTime(seedDir, label string, essentialTypes []snap.Type, earliestTime time.Time, tm timings.Measurer) (*asserts.Model, []*Snap, time.Time, error)
ReadSystemEssentialAndBetterEarliestTime retrieves in one go information about the model and essential snaps of the given types for the Core 20 recovery system seed specified by seedDir and label (which cannot be empty). It can operate even if current system time is unreliable by taking a earliestTime lower bound for current time. It returns as well an improved lower bound by considering appropriate assertions in the seed.
type ValidationError ¶
type ValidationError struct { // SystemErrors maps system labels ("" for UC16/18) to their validation errors. SystemErrors map[string][]error }
func (*ValidationError) Error ¶
func (e *ValidationError) Error() string
Directories ¶
Path | Synopsis |
---|---|
Package internal (of seed) provides types and helpers used internally by both seed and seed/seedwriter.
|
Package internal (of seed) provides types and helpers used internally by both seed and seed/seedwriter. |
Package seedwrite implements writing image seeds.
|
Package seedwrite implements writing image seeds. |