Skip to content

Commit

Permalink
Merge remote-tracking branch 'kubevirt/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
huangzynn committed Feb 21, 2023
2 parents 81400d9 + f37088f commit 16c16ad
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 45 deletions.
30 changes: 6 additions & 24 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -692,37 +692,25 @@ rpm(
rpm(
name = "device-mapper-9__1.02.183-4.el9.aarch64",
sha256 = "b080a59493ad1fa71bdffdd1ade971feca815d0ba7fd3da627c5f710f91c1470",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/Packages/device-mapper-1.02.183-4.el9.aarch64.rpm",
"https://storage.googleapis.com/builddeps/b080a59493ad1fa71bdffdd1ade971feca815d0ba7fd3da627c5f710f91c1470",
],
urls = ["https://storage.googleapis.com/builddeps/b080a59493ad1fa71bdffdd1ade971feca815d0ba7fd3da627c5f710f91c1470"],
)

rpm(
name = "device-mapper-9__1.02.183-4.el9.x86_64",
sha256 = "eb8323d62250dfabb5d3b1f832e785acbb30bbb82bb5e3f28e74ce7b0bef63ae",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/device-mapper-1.02.183-4.el9.x86_64.rpm",
"https://storage.googleapis.com/builddeps/eb8323d62250dfabb5d3b1f832e785acbb30bbb82bb5e3f28e74ce7b0bef63ae",
],
urls = ["https://storage.googleapis.com/builddeps/eb8323d62250dfabb5d3b1f832e785acbb30bbb82bb5e3f28e74ce7b0bef63ae"],
)

rpm(
name = "device-mapper-libs-9__1.02.183-4.el9.aarch64",
sha256 = "04954340e373279c3451b2854f13644a49c1242704dd85b7b6866cae90bdca51",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/Packages/device-mapper-libs-1.02.183-4.el9.aarch64.rpm",
"https://storage.googleapis.com/builddeps/04954340e373279c3451b2854f13644a49c1242704dd85b7b6866cae90bdca51",
],
urls = ["https://storage.googleapis.com/builddeps/04954340e373279c3451b2854f13644a49c1242704dd85b7b6866cae90bdca51"],
)

rpm(
name = "device-mapper-libs-9__1.02.183-4.el9.x86_64",
sha256 = "c0e3b8af40f1b996ab06e0bc7ae77c7007b993415540c0f927e3c4957d73c698",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/device-mapper-libs-1.02.183-4.el9.x86_64.rpm",
"https://storage.googleapis.com/builddeps/c0e3b8af40f1b996ab06e0bc7ae77c7007b993415540c0f927e3c4957d73c698",
],
urls = ["https://storage.googleapis.com/builddeps/c0e3b8af40f1b996ab06e0bc7ae77c7007b993415540c0f927e3c4957d73c698"],
)

rpm(
Expand Down Expand Up @@ -2465,17 +2453,11 @@ rpm(
rpm(
name = "zlib-0__1.2.11-32.el9.aarch64",
sha256 = "1b99ee6c18e92f2a727c39668941273c67f25eef18f7e9fe4febd484e9a80dbd",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/aarch64/os/Packages/zlib-1.2.11-32.el9.aarch64.rpm",
"https://storage.googleapis.com/builddeps/1b99ee6c18e92f2a727c39668941273c67f25eef18f7e9fe4febd484e9a80dbd",
],
urls = ["https://storage.googleapis.com/builddeps/1b99ee6c18e92f2a727c39668941273c67f25eef18f7e9fe4febd484e9a80dbd"],
)

rpm(
name = "zlib-0__1.2.11-32.el9.x86_64",
sha256 = "59b0101c691ea180b992d338b372852c1d1607931c472c6ee22056e2fb099505",
urls = [
"http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/zlib-1.2.11-32.el9.x86_64.rpm",
"https://storage.googleapis.com/builddeps/59b0101c691ea180b992d338b372852c1d1607931c472c6ee22056e2fb099505",
],
urls = ["https://storage.googleapis.com/builddeps/59b0101c691ea180b992d338b372852c1d1607931c472c6ee22056e2fb099505"],
)
17 changes: 8 additions & 9 deletions pkg/image/nbdkit.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ const (
defaultUserAgent = "cdi-nbdkit-importer"
)

type nbdkitOperations struct {
nbdkit *Nbdkit
}

// NbdkitPlugin represents a plugin for nbdkit
type NbdkitPlugin string

Expand Down Expand Up @@ -104,18 +100,22 @@ func NewNbdkitCurl(nbdkitPidFile, user, password, certDir, socket string, extraH
for _, header := range extraHeaders {
pluginArgs = append(pluginArgs, fmt.Sprintf("header=%s", header))
}
// Don't do exponential retry, the container restart will be exponential
pluginArgs = append(pluginArgs, "retry-exponential=no")
for _, header := range secretExtraHeaders {
redactArgs = append(redactArgs, fmt.Sprintf("header=%s", header))
}

return &Nbdkit{
n := &Nbdkit{
NbdPidFile: nbdkitPidFile,
plugin: NbdkitCurlPlugin,
nbdkitArgs: args,
pluginArgs: pluginArgs,
redactArgs: redactArgs,
Socket: socket,
}
// Should be last filter
n.AddFilter(NbdkitRetryFilter)
return n
}

// NewNbdkitVddk creates a new Nbdkit instance with the vddk plugin
Expand Down Expand Up @@ -211,9 +211,8 @@ func (n *Nbdkit) StartNbdkit(source string) error {
argsNbdkit = append(argsNbdkit, fmt.Sprintf("--filter=%s", f))
}
// set additional arguments
for _, a := range n.nbdkitArgs {
argsNbdkit = append(argsNbdkit, a)
}
argsNbdkit = append(argsNbdkit, n.nbdkitArgs...)

// append nbdkit plugin arguments
argsNbdkit = append(argsNbdkit, string(n.plugin))
argsNbdkit = append(argsNbdkit, n.pluginArgs...)
Expand Down
1 change: 1 addition & 0 deletions pkg/image/qemu.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ func (o *qemuOperations) CreateBlankImage(dest string, size resource.Quantity, p
err = os.Chmod(dest, 0660)
if err != nil {
err = errors.Wrap(err, "Unable to change permissions of target file")
return err
}

return nil
Expand Down
39 changes: 27 additions & 12 deletions pkg/image/qemu_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
Expand Down Expand Up @@ -295,22 +295,37 @@ var _ = Describe("quantity to qemu", func() {
})

var _ = Describe("Create blank image", func() {
var tmpDir, destPath string

BeforeEach(func() {
tmpDir, err := os.MkdirTemp(os.TempDir(), "qemutestdest")
Expect(err).NotTo(HaveOccurred())
By("tmpDir: " + tmpDir)
destPath = filepath.Join(tmpDir, "dest")
_, err = os.Create(destPath)
Expect(err).NotTo(HaveOccurred())
})

AfterEach(func() {
os.RemoveAll(tmpDir)
})

It("Should complete successfully if qemu-img resize succeeds", func() {
quantity, err := resource.ParseQuantity("10Gi")
Expect(err).NotTo(HaveOccurred())
size := convertQuantityToQemuSize(quantity)
replaceExecFunction(mockExecFunction("", "", nil, "create", "-f", "raw", "image", size), func() {
err = CreateBlankImage("image", quantity, false)
Expect(err).NotTo(HaveOccurred())
replaceExecFunction(mockExecFunction("", "", nil, "create", "-f", "raw", destPath, size), func() {
err = CreateBlankImage(destPath, quantity, false)
Expect(err).ToNot(HaveOccurred())
})
})

It("Should fail if qemu-img resize fails", func() {
quantity, err := resource.ParseQuantity("10Gi")
Expect(err).NotTo(HaveOccurred())
size := convertQuantityToQemuSize(quantity)
replaceExecFunction(mockExecFunction("", "exit 1", nil, "create", "-f", "raw", "image", size), func() {
err = CreateBlankImage("image", quantity, false)
replaceExecFunction(mockExecFunction("", "exit 1", nil, "create", "-f", "raw", destPath, size), func() {
err = CreateBlankImage(destPath, quantity, false)
Expect(err).To(HaveOccurred())
Expect(strings.Contains(err.Error(), "could not create raw image with size ")).To(BeTrue())
})
Expand All @@ -320,19 +335,19 @@ var _ = Describe("Create blank image", func() {
quantity, err := resource.ParseQuantity("10Gi")
Expect(err).NotTo(HaveOccurred())
size := convertQuantityToQemuSize(quantity)
replaceExecFunction(mockExecFunctionStrict("", "", nil, "create", "-f", "raw", "image", size, "-o", "preallocation=falloc"), func() {
err = CreateBlankImage("image", quantity, true)
Expect(err).NotTo(HaveOccurred())
replaceExecFunction(mockExecFunctionStrict("", "", nil, "create", "-f", "raw", destPath, size, "-o", "preallocation=falloc"), func() {
err = CreateBlankImage(destPath, quantity, true)
Expect(err).ToNot(HaveOccurred())
})
})

It("should not add preallocation if not requested", func() {
quantity, err := resource.ParseQuantity("10Gi")
Expect(err).NotTo(HaveOccurred())
size := convertQuantityToQemuSize(quantity)
replaceExecFunction(mockExecFunctionStrict("", "", nil, "create", "-f", "raw", "image", size), func() {
err = CreateBlankImage("image", quantity, false)
Expect(err).NotTo(HaveOccurred())
replaceExecFunction(mockExecFunctionStrict("", "", nil, "create", "-f", "raw", destPath, size), func() {
err = CreateBlankImage(destPath, quantity, false)
Expect(err).ToNot(HaveOccurred())
})
})
})
Expand Down

0 comments on commit 16c16ad

Please sign in to comment.