Initial commit
This commit is contained in:
commit
3326d796f0
87 changed files with 15792 additions and 0 deletions
85
bib/internal/debian-patch/images_wrapper.go
Normal file
85
bib/internal/debian-patch/images_wrapper.go
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
package debianpatch
|
||||
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// BootcImageInfo contains the validation logic for bootc images
|
||||
type BootcImageInfo struct {
|
||||
Labels map[string]string `json:"Labels"`
|
||||
}
|
||||
|
||||
// ContainerImage represents a container image with labels
|
||||
type ContainerImage struct {
|
||||
Labels map[string]string
|
||||
Ref string
|
||||
}
|
||||
|
||||
// ValidateImage checks if an image is a valid bootc image using our Debian-aware validation
|
||||
func ValidateImage(imageRef string) error {
|
||||
// This function will be called before the upstream images library validation
|
||||
// In practice, you'd need to:
|
||||
// 1. Inspect the container image to get labels
|
||||
// 2. Call ValidateBootcImage(labels, imageRef)
|
||||
|
||||
// For now, this is a placeholder that demonstrates the integration point
|
||||
// The actual implementation would need to integrate with the container inspection logic
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// PreValidateImage performs validation before the upstream images library processes the image
|
||||
func PreValidateImage(imageRef string) error {
|
||||
// This is called before the upstream validation
|
||||
// We can add Debian-specific pre-validation here
|
||||
|
||||
// Check if the image reference looks like a Debian image
|
||||
if strings.Contains(imageRef, "debian") || strings.Contains(imageRef, "particle-os") {
|
||||
// This is a hint that we might be dealing with a Debian image
|
||||
// We could add additional validation here
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// PostValidateImage performs validation after the upstream images library processes the image
|
||||
func PostValidateImage(imageRef string, labels map[string]string) error {
|
||||
// This is called after the upstream validation
|
||||
// We can add Debian-specific post-validation here
|
||||
|
||||
// Check if this is a Debian bootc image
|
||||
if GetBootcType(labels) == "debian" {
|
||||
// Perform Debian-specific validations
|
||||
return ValidateDebianBootcImage(labels, imageRef)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetImageLabels extracts labels from a container image
|
||||
// This is a placeholder - in practice, you'd integrate with the actual container inspection
|
||||
func GetImageLabels(imageRef string) (map[string]string, error) {
|
||||
// This would integrate with the actual container inspection logic
|
||||
// For now, return an empty map as a placeholder
|
||||
return make(map[string]string), nil
|
||||
}
|
||||
|
||||
// IsDebianImage checks if an image is specifically a Debian image
|
||||
func IsDebianImage(labels map[string]string) bool {
|
||||
return GetBootcType(labels) == "debian"
|
||||
}
|
||||
|
||||
// GetDebianVersion extracts Debian version information from labels
|
||||
func GetDebianVersion(labels map[string]string) string {
|
||||
// Check for Debian-specific version labels
|
||||
if version, exists := labels["org.debian.version"]; exists {
|
||||
return version
|
||||
}
|
||||
|
||||
// Check for general version labels
|
||||
if version, exists := labels["version"]; exists {
|
||||
return version
|
||||
}
|
||||
|
||||
return "unknown"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue