tag v0.165.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.165.0 ---------------- * distro: move rhel9 into a generic distro (osbuild/images#1645) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * Revert "distro: drop `ImageType.BasePartitionTable()`" (osbuild/images#1691) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * Update dependencies 2025-07-20 (osbuild/images#1675) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger * defs: add missing `bootstrap_containers` (osbuild/images#1679) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * disk: handle adding `PReP` partition on PPC64/s390x (HMS-8884) (osbuild/images#1681) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro: bring per-distro checkOptions back (osbuild/images#1678) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * distro: cleanups in the pkg/distro/generic area (osbuild/images#1686) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro: move rhel8 into a generic distro (osbuild/images#1643) * Author: Michael Vogt, Reviewers: Nobody * distro: small followups for PR#1682 (osbuild/images#1689) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger, Tomáš Hozza * distro: unify transform/match into a single concept (osbuild/images#1682) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Tomáš Hozza * distros: de-duplicate runner build packages for centos10 (osbuild/images#1680) * Author: Michael Vogt, Reviewers: Simon de Vlieger, Tomáš Hozza * github: disable Go dep updates through dependabot (osbuild/images#1683) * Author: Achilleas Koutsou, Reviewers: Simon de Vlieger, Tomáš Hozza * repos: include almalinux 9.6 (osbuild/images#1677) * Author: Simon de Vlieger, Reviewers: Lukáš Zapletal, Tomáš Hozza * rhel9: wsl distribution config (osbuild/images#1694) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Sanne Raymaekers * test/manifests/all-customizations: don't embed local file via URI (osbuild/images#1684) * Author: Tomáš Hozza, Reviewers: Achilleas Koutsou, Brian C. Lane — Somewhere on the Internet, 2025-07-28 --- tag v0.166.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.166.0 ---------------- * customizations/subscription: conditionally enable semanage call (HMS-8866) (osbuild/images#1673) * Author: Sanne Raymaekers, Reviewers: Achilleas Koutsou, Michael Vogt * distro/rhel-10: versionlock shim-x64 in the azure-cvm image (osbuild/images#1697) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Simon de Vlieger * manifestmock: move container/pkg/commit mocks into helper (osbuild/images#1700) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * rhel9: `vagrant-libvirt`, `vagrant-virtualbox` (osbuild/images#1693) * Author: Simon de Vlieger, Reviewers: Michael Vogt, Sanne Raymaekers * rhel{9,10}: centos WSL refinement (HMS-8922) (osbuild/images#1690) * Author: Simon de Vlieger, Reviewers: Ondřej Budai, Sanne Raymaekers, Tomáš Hozza — Somewhere on the Internet, 2025-07-29 --- tag v0.167.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.167.0 ---------------- * RHEL/Azure: drop obsolete WAAgentConfig keys [RHEL-93894] and remove loglevel kernel option [RHEL-102372] (osbuild/images#1611) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Ondřej Budai, Sanne Raymaekers * Update dependencies 2025-07-27 (osbuild/images#1699) * Author: SchutzBot, Reviewers: Achilleas Koutsou, Simon de Vlieger * distro/rhel9: set default_kernel to kernel-uki-virt (osbuild/images#1704) * Author: Achilleas Koutsou, Reviewers: Ondřej Budai, Simon de Vlieger * distro: drop legacy loaders and update tests (osbuild/images#1687) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Tomáš Hozza * distro: fix issues with yaml distro definitions and enable yaml checks (osbuild/images#1702) * Author: Achilleas Koutsou, Reviewers: Michael Vogt, Ondřej Budai, Simon de Vlieger — Somewhere on the Internet, 2025-07-30 --- tag v0.168.0 Tagger: imagebuilder-bot <imagebuilder-bots+imagebuilder-bot@redhat.com> Changes with 0.168.0 ---------------- * distro: fix bug in variable substitution for static distros (osbuild/images#1710) * Author: Michael Vogt, Reviewers: Achilleas Koutsou, Simon de Vlieger * rhel{9,10}: azure for non-RHEL (HMS-8949) (osbuild/images#1707) * Author: Simon de Vlieger, Reviewers: Achilleas Koutsou, Michael Vogt — Somewhere on the Internet, 2025-07-30 ---
98 lines
2.9 KiB
Go
98 lines
2.9 KiB
Go
package log
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type entryContextKeyType int
|
|
|
|
const _entryContextKey entryContextKeyType = iota
|
|
|
|
var (
|
|
// L is the default, blank logging entry. WithField and co. all return a copy
|
|
// of the original entry, so this will not leak fields between calls.
|
|
//
|
|
// Do NOT modify fields directly, as that will corrupt state for all users and
|
|
// is not thread safe.
|
|
// Instead, use `L.With*` or `L.Dup()`. Or `G(context.Background())`.
|
|
L = logrus.NewEntry(logrus.StandardLogger())
|
|
|
|
// G is an alias for GetEntry.
|
|
G = GetEntry
|
|
|
|
// S is an alias for SetEntry.
|
|
S = SetEntry
|
|
|
|
// U is an alias for UpdateContext.
|
|
U = UpdateContext
|
|
)
|
|
|
|
// GetEntry returns a `logrus.Entry` stored in the context, if one exists.
|
|
// Otherwise, it returns a default entry that points to the current context.
|
|
//
|
|
// Note: if the a new entry is returned, it will reference the passed in context.
|
|
// However, existing contexts may be stored in parent contexts and additionally reference
|
|
// earlier contexts.
|
|
// Use `UpdateContext` to update the entry and context.
|
|
func GetEntry(ctx context.Context) *logrus.Entry {
|
|
entry := fromContext(ctx)
|
|
|
|
if entry == nil {
|
|
entry = L.WithContext(ctx)
|
|
}
|
|
|
|
return entry
|
|
}
|
|
|
|
// SetEntry updates the log entry in the context with the provided fields, and
|
|
// returns both. It is equivalent to:
|
|
//
|
|
// entry := GetEntry(ctx).WithFields(fields)
|
|
// ctx = WithContext(ctx, entry)
|
|
//
|
|
// See WithContext for more information.
|
|
func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logrus.Entry) {
|
|
e := GetEntry(ctx)
|
|
if len(fields) > 0 {
|
|
e = e.WithFields(fields)
|
|
}
|
|
return WithContext(ctx, e)
|
|
}
|
|
|
|
// UpdateContext extracts the log entry from the context, and, if the entry's
|
|
// context points to a parent's of the current context, ands the entry
|
|
// to the most recent context. It is equivalent to:
|
|
//
|
|
// entry := GetEntry(ctx)
|
|
// ctx = WithContext(ctx, entry)
|
|
//
|
|
// This allows the entry to reference the most recent context and any new
|
|
// values (such as span contexts) added to it.
|
|
//
|
|
// See WithContext for more information.
|
|
func UpdateContext(ctx context.Context) context.Context {
|
|
// there is no way to check its ctx (and not one of its parents) that contains `e`
|
|
// so, at a slight cost, force add `e` to the context
|
|
ctx, _ = WithContext(ctx, GetEntry(ctx))
|
|
return ctx
|
|
}
|
|
|
|
// WithContext returns a context that contains the provided log entry.
|
|
// The entry can be extracted with `GetEntry` (`G`)
|
|
//
|
|
// The entry in the context is a copy of `entry` (generated by `entry.WithContext`).
|
|
func WithContext(ctx context.Context, entry *logrus.Entry) (context.Context, *logrus.Entry) {
|
|
// regardless of the order, entry.Context != GetEntry(ctx)
|
|
// here, the returned entry will reference the supplied context
|
|
entry = entry.WithContext(ctx)
|
|
ctx = context.WithValue(ctx, _entryContextKey, entry)
|
|
|
|
return ctx, entry
|
|
}
|
|
|
|
func fromContext(ctx context.Context) *logrus.Entry {
|
|
e, _ := ctx.Value(_entryContextKey).(*logrus.Entry)
|
|
return e
|
|
}
|