From 6f5f4007659ea9be5f8340a5fb3a9478c360c5bf Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Sun, 24 Jan 2021 19:04:57 +0100 Subject: [PATCH] Don't bail out if image doesn't exist locally The backend will figure out if we have the image or not, otherwise will atempt to pull if not there. Skip retrieve integration test with img as its not supported. --- pkg/compiler/backend/diff.go | 4 ++++ pkg/compiler/backend/simpledocker.go | 2 +- pkg/compiler/backend/simpleimg.go | 2 +- pkg/compiler/compiler.go | 3 +-- tests/integration/04_retrieve.sh | 5 +++++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/compiler/backend/diff.go b/pkg/compiler/backend/diff.go index bef1a71d..7663b348 100644 --- a/pkg/compiler/backend/diff.go +++ b/pkg/compiler/backend/diff.go @@ -21,6 +21,8 @@ import ( "path/filepath" "strings" + . "github.com/mudler/luet/pkg/logger" + "github.com/mudler/luet/pkg/compiler" "github.com/mudler/luet/pkg/config" "github.com/pkg/errors" @@ -78,6 +80,7 @@ func GenerateChanges(b compiler.CompilerBackend, fromImage, toImage compiler.Com ImageName: fromImage.ImageName, Destination: srcRootFS, } + Debug("Extracting source image", fromImage.ImageName) err = b.ExtractRootfs(srcImageExtract, false) // No need to keep permissions as we just collect file diffs if err != nil { return []compiler.ArtifactLayer{}, errors.Wrap(err, "Error met while unpacking src image "+fromImage.ImageName) @@ -87,6 +90,7 @@ func GenerateChanges(b compiler.CompilerBackend, fromImage, toImage compiler.Com ImageName: toImage.ImageName, Destination: dstRootFS, } + Debug("Extracting destination image", toImage.ImageName) err = b.ExtractRootfs(dstImageExtract, false) if err != nil { return []compiler.ArtifactLayer{}, errors.Wrap(err, "Error met while unpacking dst image "+toImage.ImageName) diff --git a/pkg/compiler/backend/simpledocker.go b/pkg/compiler/backend/simpledocker.go index 08443e26..da9c8b36 100644 --- a/pkg/compiler/backend/simpledocker.go +++ b/pkg/compiler/backend/simpledocker.go @@ -175,7 +175,7 @@ func (*SimpleDocker) ExportImage(opts compiler.CompilerBackendOptions) error { return errors.Wrap(err, "Failed exporting image: "+string(out)) } - Info(":whale: Exported image:", name) + Debug(":whale: Exported image:", name) return nil } diff --git a/pkg/compiler/backend/simpleimg.go b/pkg/compiler/backend/simpleimg.go index 34f3a566..26c9cc80 100644 --- a/pkg/compiler/backend/simpleimg.go +++ b/pkg/compiler/backend/simpleimg.go @@ -164,7 +164,7 @@ func (s *SimpleImg) ExtractRootfs(opts compiler.CompilerBackendOptions, keepPerm if err != nil { return errors.Wrap(err, "Failed extracting image: "+string(out)) } - Info(":tea: Image " + name + " extracted") + Debug(":tea: Image " + name + " extracted") return nil } diff --git a/pkg/compiler/compiler.go b/pkg/compiler/compiler.go index 0d00cf0d..615ccf84 100644 --- a/pkg/compiler/compiler.go +++ b/pkg/compiler/compiler.go @@ -288,8 +288,6 @@ func (cs *LuetCompiler) unpackDelta(concurrency int, keepPermissions bool, p Com if err != nil { return nil, errors.Wrap(err, "Could not pull image") } - } else if !cs.Backend.ImageExists(builderOpts.ImageName) { - return nil, errors.New("No image found for " + builderOpts.ImageName) } Info(pkgTag, ":hammer: Generating delta") @@ -298,6 +296,7 @@ func (cs *LuetCompiler) unpackDelta(concurrency int, keepPermissions bool, p Com return nil, errors.Wrap(err, "Could not generate changes from layers") } + Debug("Extracting image to grab files from delta") if err := cs.Backend.ExtractRootfs(CompilerBackendOptions{ ImageName: runnerOpts.ImageName, Destination: rootfs}, keepPermissions); err != nil { return nil, errors.Wrap(err, "Could not extract rootfs") diff --git a/tests/integration/04_retrieve.sh b/tests/integration/04_retrieve.sh index fa2e4ce2..09c2a4f2 100755 --- a/tests/integration/04_retrieve.sh +++ b/tests/integration/04_retrieve.sh @@ -12,6 +12,7 @@ oneTimeTearDown() { testBuild() { mkdir $tmpdir/testbuild + [ "$LUET_BACKEND" == "img" ] && startSkipping luet build --tree "$ROOT_DIR/tests/fixtures/retrieve-integration" --destination $tmpdir/testbuild --compression gzip test/b buildst=$? assertEquals 'builds successfully' "$buildst" "0" @@ -20,6 +21,7 @@ testBuild() { } testRepo() { + [ "$LUET_BACKEND" == "img" ] && startSkipping assertTrue 'no repository' "[ ! -e '$tmpdir/testbuild/repository.yaml' ]" luet create-repo --tree "$ROOT_DIR/tests/fixtures/retrieve-integration" \ --output $tmpdir/testbuild \ @@ -59,6 +61,7 @@ EOF testInstall() { + [ "$LUET_BACKEND" == "img" ] && startSkipping luet install -y --config $tmpdir/luet.yaml test/b #luet install -y --config $tmpdir/luet.yaml test/c-1.0 > /dev/null installst=$? @@ -71,6 +74,7 @@ testInstall() { testUnInstall() { + [ "$LUET_BACKEND" == "img" ] && startSkipping luet uninstall -y --full --config $tmpdir/luet.yaml test/b installst=$? assertEquals 'uninstall test successfully' "$installst" "0" @@ -80,6 +84,7 @@ testUnInstall() { testCleanup() { + [ "$LUET_BACKEND" == "img" ] && startSkipping luet cleanup --config $tmpdir/luet.yaml installst=$? assertEquals 'install test successfully' "$installst" "0"