diff --git a/cmd/buildah/addcopy.go b/cmd/buildah/addcopy.go index 0e3819312..dd8f99713 100644 --- a/cmd/buildah/addcopy.go +++ b/cmd/buildah/addcopy.go @@ -8,15 +8,6 @@ import ( var ( addFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of working container, Default: EnvVar(BUILDAHROOT)", - EnvVar: "BUILDAHROOT", - }, cli.StringFlag{ Name: "dest", Usage: "destination `directory` (if absolute) or subdirectory of the working directory (if relative) in the working container's filesystem", @@ -29,29 +20,23 @@ var ( func addAndCopyCmd(c *cli.Context, extractLocalArchives bool) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") + name := args[0] + args = args.Tail() + dest := "" if c.IsSet("dest") { dest = c.String("dest") } - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() - } store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/cmd/buildah/commit.go b/cmd/buildah/commit.go index 32167347f..9fdba0788 100644 --- a/cmd/buildah/commit.go +++ b/cmd/buildah/commit.go @@ -11,23 +11,10 @@ import ( var ( commitFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, cli.BoolFlag{ Name: "disable-compression", Usage: "don't compress layers", }, - cli.StringFlag{ - Name: "output", - Usage: "`name` of output image to write", - }, cli.StringFlag{ Name: "signature-policy", Usage: "`pathname` of signature policy file (not usually used)", @@ -38,16 +25,19 @@ var ( func commitCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") + name := args[0] + args = args.Tail() + if len(args) == 0 { + return fmt.Errorf("an image name must be specified") + } + if len(args) > 1 { + return fmt.Errorf("too many arguments specified") + } + image := args[0] - output := "" - if c.IsSet("output") { - output = c.String("output") - } signaturePolicy := "" if c.IsSet("signature-policy") { signaturePolicy = c.String("signature-policy") @@ -56,34 +46,19 @@ func commitCmd(c *cli.Context) error { if !c.IsSet("disable-compression") || !c.Bool("disable-compression") { compress = archive.Gzip } - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() - } - if output == "" { - if len(args) == 0 { - return fmt.Errorf("an image name or the --output flag must be specified") - } - output = args[0] - args = args.Tail() - } - store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } - dest, err := alltransports.ParseImageName(output) + dest, err := alltransports.ParseImageName(image) if err != nil { - return fmt.Errorf("error parsing target image name %q: %v", output, err) + return fmt.Errorf("error parsing target image name %q: %v", image, err) } options := buildah.CommitOptions{ @@ -92,7 +67,7 @@ func commitCmd(c *cli.Context) error { } err = builder.Commit(dest, options) if err != nil { - return fmt.Errorf("error committing container %q to %q: %v", builder.Container, output, err) + return fmt.Errorf("error committing container %q to %q: %v", builder.Container, image, err) } return nil diff --git a/cmd/buildah/common.go b/cmd/buildah/common.go index fe51fc05d..bf1b75d49 100644 --- a/cmd/buildah/common.go +++ b/cmd/buildah/common.go @@ -32,7 +32,7 @@ func getStore(c *cli.Context) (storage.Store, error) { return store, err } -func openBuilder(store storage.Store, name, root string) (builder *buildah.Builder, err error) { +func openBuilder(store storage.Store, name string) (builder *buildah.Builder, err error) { if name != "" { builder, err = buildah.OpenBuilder(store, name) if os.IsNotExist(err) { @@ -42,9 +42,6 @@ func openBuilder(store storage.Store, name, root string) (builder *buildah.Build builder, err = buildah.ImportBuilder(store, options) } } - if root != "" { - builder, err = buildah.OpenBuilderByPath(store, root) - } if err != nil { return nil, fmt.Errorf("error reading build container: %v", err) } diff --git a/cmd/buildah/config.go b/cmd/buildah/config.go index f1405cf10..c66a62452 100644 --- a/cmd/buildah/config.go +++ b/cmd/buildah/config.go @@ -18,15 +18,6 @@ const ( var ( configFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, cli.StringFlag{ Name: "author", Usage: "image author contact `information`", @@ -167,25 +158,20 @@ func updateConfig(builder *buildah.Builder, c *cli.Context) { func configCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() + if len(args) > 1 { + return fmt.Errorf("too many arguments specified") } + name := args[0] store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/cmd/buildah/delete.go b/cmd/buildah/delete.go index 199498011..14c723b64 100644 --- a/cmd/buildah/delete.go +++ b/cmd/buildah/delete.go @@ -7,41 +7,25 @@ import ( ) var ( - deleteFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, - } deleteDescription = "Deletes a working container, unmounting it if necessary" ) func deleteCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() + if len(args) > 1 { + return fmt.Errorf("too many arguments specified") } + name := args[0] store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/cmd/buildah/main.go b/cmd/buildah/main.go index f8f158cd4..0ff7d7150 100644 --- a/cmd/buildah/main.go +++ b/cmd/buildah/main.go @@ -87,7 +87,6 @@ func main() { Name: "mount", Usage: "Mount a working container's filesystem root", Description: mountDescription, - Flags: mountFlags, Action: mountCmd, ArgsUsage: "CONTAINER-NAME-OR-ID", }, @@ -96,7 +95,6 @@ func main() { Aliases: []string{"unmount"}, Usage: "Unmount a working container's filesystem root", Description: umountDescription, - Flags: umountFlags, Action: umountCmd, ArgsUsage: "CONTAINER-NAME-OR-ID", }, @@ -144,7 +142,6 @@ func main() { Name: "delete", Usage: "Delete a working container", Description: deleteDescription, - Flags: deleteFlags, Action: deleteCmd, ArgsUsage: "CONTAINER-NAME-OR-ID", }, diff --git a/cmd/buildah/mount.go b/cmd/buildah/mount.go index d17e42cfd..e7adff932 100644 --- a/cmd/buildah/mount.go +++ b/cmd/buildah/mount.go @@ -7,41 +7,25 @@ import ( ) var ( - mountFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, - } mountDescription = "Mounts a working container's root filesystem for manipulation" ) func mountCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() + if len(args) > 1 { + return fmt.Errorf("too many arguments specified") } + name := args[0] store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/cmd/buildah/run.go b/cmd/buildah/run.go index 2d86a9829..6ed5592e8 100644 --- a/cmd/buildah/run.go +++ b/cmd/buildah/run.go @@ -13,15 +13,6 @@ import ( var ( runFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, cli.StringFlag{ Name: "runtime", Usage: "`path` to an alternate runtime", @@ -37,12 +28,12 @@ var ( func runCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } + name := args[0] + args = args.Tail() - root := c.String("root") runtime := "" if c.IsSet("runtime") { runtime = c.String("runtime") @@ -54,20 +45,13 @@ func runCmd(c *cli.Context) error { if c.IsSet("runtime") { runtime = c.String("runtime") } - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() - } store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/cmd/buildah/umount.go b/cmd/buildah/umount.go index b42a91062..6ce883c2c 100644 --- a/cmd/buildah/umount.go +++ b/cmd/buildah/umount.go @@ -7,41 +7,25 @@ import ( ) var ( - umountFlags = []cli.Flag{ - cli.StringFlag{ - Name: "name", - Usage: "`name or ID` of the working container", - }, - cli.StringFlag{ - Name: "root", - Usage: "root `directory` of the working container", - EnvVar: "BUILDAHROOT", - }, - } umountDescription = "Unmounts a working container's root filesystem" ) func umountCmd(c *cli.Context) error { args := c.Args() - name := "" - if c.IsSet("name") { - name = c.String("name") + if len(args) == 0 { + return fmt.Errorf("container ID must be specified") } - root := c.String("root") - if name == "" && root == "" { - if len(args) == 0 { - return fmt.Errorf("either a container name or --root, or some combination, must be specified") - } - name = args[0] - args = args.Tail() + if len(args) > 1 { + return fmt.Errorf("too many arguments specified") } + name := args[0] store, err := getStore(c) if err != nil { return err } - builder, err := openBuilder(store, name, root) + builder, err := openBuilder(store, name) if err != nil { return fmt.Errorf("error reading build container %q: %v", name, err) } diff --git a/examples/all-the-things.sh b/examples/all-the-things.sh index 74e33eefb..c6baa1714 100755 --- a/examples/all-the-things.sh +++ b/examples/all-the-things.sh @@ -14,8 +14,8 @@ container1=`buildah from --image ${1:-ubuntu}` read : " Mount that working container, and capture the mountpoint " read -echo '[mountpoint1=`buildah mount --name $container1`]' -mountpoint1=`buildah mount --name $container1` +echo '[mountpoint1=`buildah mount $container1`]' +mountpoint1=`buildah mount $container1` read : " Add a file to the container " read @@ -24,7 +24,7 @@ echo yay > $mountpoint1/file-in-root read : " Produce an image from the container " read -buildah commit --name "$container1" --output containers-storage:${2:-first-new-image} +buildah commit "$container1" --output containers-storage:${2:-first-new-image} read : " Verify that our new image is there " read @@ -32,8 +32,8 @@ ocic image list read : " Unmount our working container and delete it " read -buildah umount --name "$container1" -buildah delete --name "$container1" +buildah umount "$container1" +buildah delete "$container1" read : " Now try it with ocid not running! " read @@ -46,8 +46,8 @@ container2=`buildah from --image=${2:-first-new-image}` read : " Mount that new working container, and capture the mountpoint " read -echo '[mountpoint2=`buildah mount --name $container2`]' -mountpoint2=`buildah mount --name $container2` +echo '[mountpoint2=`buildah mount $container2`]' +mountpoint2=`buildah mount $container2` read : " That file we added to the image is there, right? " read @@ -60,12 +60,12 @@ echo yay > $mountpoint2/another-file-in-root read : " Produce an image from the new container" read -buildah commit --name "$container2" --output containers-storage:${3:-second-new-image} +buildah commit "$container2" --output containers-storage:${3:-second-new-image} read : " Unmount our new working container and delete it " read -buildah umount --name "$container2" -buildah delete --name "$container2" +buildah umount "$container2" +buildah delete "$container2" read : " Verify that our new new image is there" read diff --git a/examples/copy.sh b/examples/copy.sh index b01045eaa..699e60d81 100755 --- a/examples/copy.sh +++ b/examples/copy.sh @@ -18,8 +18,8 @@ container1=`buildah from --pull --image ${1:-alpine}` read : " Mount that working container, and capture the mountpoint " read -echo '[mountpoint1=`buildah mount --name $container1`]' -mountpoint1=`buildah mount --name $container1` +echo '[mountpoint1=`buildah mount $container1`]' +mountpoint1=`buildah mount $container1` read : " List random files in the container " read @@ -28,38 +28,38 @@ find $mountpoint1 -name "random*" read : " Ensure the default destination for copying files is / " read -echo '[buildah config --name $container1 --workingdir /]' -buildah config --name $container1 --workingdir / +echo '[buildah config $container1 --workingdir /]' +buildah config $container1 --workingdir / read : " Add a file to the container " read echo '[dd if=/dev/urandom of=random1 bs=512 count=1]' -echo '[buildah copy --name $container1 random1]' +echo '[buildah copy $container1 random1]' dd if=/dev/urandom of=random1 bs=512 count=1 -buildah copy --name $container1 random1 +buildah copy $container1 random1 read : " Change the default destination for copying files " read -echo '[buildah config --name $container1 --workingdir /tmp]' -buildah config --name $container1 --workingdir /tmp +echo '[buildah config $container1 --workingdir /tmp]' +buildah config $container1 --workingdir /tmp read : " Add another new file to the container " read echo '[dd if=/dev/urandom of=random2 bs=512 count=1]' -echo '[buildah copy --name $container1 random2]' +echo '[buildah copy $container1 random2]' dd if=/dev/urandom of=random2 bs=512 count=1 -buildah copy --name $container1 random2 +buildah copy $container1 random2 read : " Copy a subdirectory with some files in it " read echo '[mkdir -p randomsubdir]' echo '[dd if=/dev/urandom of=randomsubdir/random3 bs=512 count=1]' echo '[dd if=/dev/urandom of=randomsubdir/random4 bs=512 count=1]' -echo '[buildah copy --name $container1 randomsubdir]' +echo '[buildah copy $container1 randomsubdir]' mkdir -p randomsubdir dd if=/dev/urandom of=randomsubdir/random3 bs=512 count=1 dd if=/dev/urandom of=randomsubdir/random4 bs=512 count=1 -buildah copy --name $container1 randomsubdir +buildah copy $container1 randomsubdir read : " List some of the container's contents " read @@ -74,14 +74,14 @@ read : " Copy that tarball to the container " read echo '[mkdir -p $mountpoint1/tmpwatch]' -echo '[buildah copy --name $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2]' +echo '[buildah copy $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2]' mkdir -p $mountpoint1/tmpwatch -buildah copy --name $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2 +buildah copy $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2 read : " Download another tarball to the container " read -echo '[buildah copy --name $container1 --dest /tmpwatch https://releases.pagure.org/newt/newt-0.52.19.tar.gz]' -buildah copy --name $container1 --dest /tmpwatch https://releases.pagure.org/newt/newt-0.52.19.tar.gz +echo '[buildah copy $container1 --dest /tmpwatch https://releases.pagure.org/newt/newt-0.52.19.tar.gz]' +buildah copy $container1 --dest /tmpwatch https://releases.pagure.org/newt/newt-0.52.19.tar.gz read : " List the contents of the target directory " read @@ -90,8 +90,8 @@ find $mountpoint1/tmpwatch read : " Now 'add' the downloaded tarball to the container " read -echo '[buildah add --name $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2]' -buildah add --name $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2 +echo '[buildah add $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2]' +buildah add $container1 --dest /tmpwatch tmpwatch-2.9.17.tar.bz2 read : " List the contents of the target directory again " read @@ -100,5 +100,5 @@ find $mountpoint1/tmpwatch read : " Clean up, because I ran this like fifty times while testing " read -echo '[buildah delete --name $container1]' -buildah delete --name $container1 +echo '[buildah delete $container1]' +buildah delete $container1 diff --git a/tests/add.bats b/tests/add.bats index 3df1094a8..465449ac6 100644 --- a/tests/add.bats +++ b/tests/add.bats @@ -3,95 +3,95 @@ load helpers @test "add-local-plain" { - createrandom ${TESTDIR}/randomfile - createrandom ${TESTDIR}/other-randomfile + createrandom ${TESTDIR}/randomfile + createrandom ${TESTDIR}/other-randomfile - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - mkdir $root/subdir $root/other-subdir - # Copy a file to the working directory - buildah config --workingdir=/ --name=$cid - buildah add --name=$cid ${TESTDIR}/randomfile - # Copy a file to a specific subdirectory - buildah add --name=$cid --dest=/subdir ${TESTDIR}/randomfile - # Copy a file two files to a specific subdirectory - buildah add --name=$cid --dest=/other-subdir ${TESTDIR}/randomfile ${TESTDIR}/other-randomfile - # Copy a file two files to a specific location, which fails because it's not a directory. - run buildah add --name=$cid --dest=/notthereyet-subdir ${TESTDIR}/randomfile ${TESTDIR}/other-randomfile - [ $status -ne 0 ] - run buildah add --name=$cid --dest=/randomfile ${TESTDIR}/randomfile ${TESTDIR}/other-randomfile - [ $status -ne 0 ] - # Copy a file to a different working directory - buildah config --workingdir=/cwd --name=$cid - buildah add --name=$cid ${TESTDIR}/randomfile - buildah unmount --name=$cid - buildah commit --signature-policy ${TESTSDIR}/policy.json --name=$cid --output=containers-storage:new-image - buildah delete --name=$cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + mkdir $root/subdir $root/other-subdir + # Copy a file to the working directory + buildah config --workingdir=/ $cid + buildah add $cid ${TESTDIR}/randomfile + # Copy a file to a specific subdirectory + buildah add --dest=/subdir $cid ${TESTDIR}/randomfile + # Copy a file two files to a specific subdirectory + buildah add --dest=/other-subdir $cid ${TESTDIR}/randomfile ${TESTDIR}/other-randomfile + # Copy a file two files to a specific location, which fails because it's not a directory. + run buildah add --dest=/notthereyet-subdir ${TESTDIR}/randomfile ${TESTDIR}/other-randomfile $cid + [ $status -ne 0 ] + run buildah add --dest=/randomfile ${TESTDIR}/randomfile $cid ${TESTDIR}/other-randomfile + [ $status -ne 0 ] + # Copy a file to a different working directory + buildah config --workingdir=/cwd $cid + buildah add $cid ${TESTDIR}/randomfile + buildah unmount $cid + buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image + buildah delete $cid - newcid=$(buildah from --image new-image) - newroot=$(buildah mount --name=$newcid) - test -s $newroot/randomfile - cmp ${TESTDIR}/randomfile $newroot/randomfile - test -s $newroot/subdir/randomfile - cmp ${TESTDIR}/randomfile $newroot/subdir/randomfile - test -s $newroot/other-subdir/randomfile - cmp ${TESTDIR}/randomfile $newroot/other-subdir/randomfile - test -s $newroot/other-subdir/other-randomfile - cmp ${TESTDIR}/other-randomfile $newroot/other-subdir/other-randomfile - test -d $newroot/cwd - test -s $newroot/cwd/randomfile - cmp ${TESTDIR}/randomfile $newroot/cwd/randomfile - buildah delete --name=$newcid + newcid=$(buildah from --image new-image) + newroot=$(buildah mount $newcid) + test -s $newroot/randomfile + cmp ${TESTDIR}/randomfile $newroot/randomfile + test -s $newroot/subdir/randomfile + cmp ${TESTDIR}/randomfile $newroot/subdir/randomfile + test -s $newroot/other-subdir/randomfile + cmp ${TESTDIR}/randomfile $newroot/other-subdir/randomfile + test -s $newroot/other-subdir/other-randomfile + cmp ${TESTDIR}/other-randomfile $newroot/other-subdir/other-randomfile + test -d $newroot/cwd + test -s $newroot/cwd/randomfile + cmp ${TESTDIR}/randomfile $newroot/cwd/randomfile + buildah delete $newcid } @test "add-local-archive" { - createrandom ${TESTDIR}/randomfile - createrandom ${TESTDIR}/other-randomfile + createrandom ${TESTDIR}/randomfile + createrandom ${TESTDIR}/other-randomfile - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random1 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random2 - tar -c -C ${TESTDIR} -f ${TESTDIR}/tarball1.tar random1 random2 - mkdir ${TESTDIR}/tarball2 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball2/tarball2.random1 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball2/tarball2.random2 - tar -c -C ${TESTDIR} -z -f ${TESTDIR}/tarball2.tar.gz tarball2 - mkdir ${TESTDIR}/tarball3 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball3/tarball3.random1 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball3/tarball3.random2 - tar -c -C ${TESTDIR} -j -f ${TESTDIR}/tarball3.tar.bz2 tarball3 - mkdir ${TESTDIR}/tarball4 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball4/tarball4.random1 - dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball4/tarball4.random2 - tar -c -C ${TESTDIR} -j -f ${TESTDIR}/tarball4.tar.bz2 tarball4 - # Add the files to the working directory, which should extract them all. - buildah config --workingdir=/ --name=$cid - buildah add --name=$cid ${TESTDIR}/tarball1.tar - buildah add --name=$cid ${TESTDIR}/tarball2.tar.gz - buildah add --name=$cid ${TESTDIR}/tarball3.tar.bz2 - buildah add $cid ${TESTDIR}/tarball4.tar.bz2 - buildah unmount --name=$cid - buildah commit --signature-policy ${TESTSDIR}/policy.json --name=$cid --output=containers-storage:new-image - buildah delete --name=$cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random1 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/random2 + tar -c -C ${TESTDIR} -f ${TESTDIR}/tarball1.tar random1 random2 + mkdir ${TESTDIR}/tarball2 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball2/tarball2.random1 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball2/tarball2.random2 + tar -c -C ${TESTDIR} -z -f ${TESTDIR}/tarball2.tar.gz tarball2 + mkdir ${TESTDIR}/tarball3 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball3/tarball3.random1 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball3/tarball3.random2 + tar -c -C ${TESTDIR} -j -f ${TESTDIR}/tarball3.tar.bz2 tarball3 + mkdir ${TESTDIR}/tarball4 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball4/tarball4.random1 + dd if=/dev/urandom bs=1024 count=4 of=${TESTDIR}/tarball4/tarball4.random2 + tar -c -C ${TESTDIR} -j -f ${TESTDIR}/tarball4.tar.bz2 tarball4 + # Add the files to the working directory, which should extract them all. + buildah config --workingdir=/ $cid + buildah add $cid ${TESTDIR}/tarball1.tar + buildah add $cid ${TESTDIR}/tarball2.tar.gz + buildah add $cid ${TESTDIR}/tarball3.tar.bz2 + buildah add $cid ${TESTDIR}/tarball4.tar.bz2 + buildah unmount $cid + buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image + buildah delete $cid - newcid=$(buildah from --image new-image) - newroot=$(buildah mount --name=$newcid) - test -s $newroot/random1 - cmp ${TESTDIR}/random1 $newroot/random1 - test -s $newroot/random2 - cmp ${TESTDIR}/random2 $newroot/random2 - test -s $newroot/tarball2/tarball2.random1 - cmp ${TESTDIR}/tarball2/tarball2.random1 $newroot/tarball2/tarball2.random1 - test -s $newroot/tarball2/tarball2.random2 - cmp ${TESTDIR}/tarball2/tarball2.random2 $newroot/tarball2/tarball2.random2 - test -s $newroot/tarball3/tarball3.random1 - cmp ${TESTDIR}/tarball3/tarball3.random1 $newroot/tarball3/tarball3.random1 - test -s $newroot/tarball3/tarball3.random2 - cmp ${TESTDIR}/tarball3/tarball3.random2 $newroot/tarball3/tarball3.random2 - test -s $newroot/tarball4/tarball4.random1 - cmp ${TESTDIR}/tarball4/tarball4.random1 $newroot/tarball4/tarball4.random1 - test -s $newroot/tarball4/tarball4.random2 - cmp ${TESTDIR}/tarball4/tarball4.random2 $newroot/tarball4/tarball4.random2 - buildah delete --name=$newcid + newcid=$(buildah from --image new-image) + newroot=$(buildah mount $newcid) + test -s $newroot/random1 + cmp ${TESTDIR}/random1 $newroot/random1 + test -s $newroot/random2 + cmp ${TESTDIR}/random2 $newroot/random2 + test -s $newroot/tarball2/tarball2.random1 + cmp ${TESTDIR}/tarball2/tarball2.random1 $newroot/tarball2/tarball2.random1 + test -s $newroot/tarball2/tarball2.random2 + cmp ${TESTDIR}/tarball2/tarball2.random2 $newroot/tarball2/tarball2.random2 + test -s $newroot/tarball3/tarball3.random1 + cmp ${TESTDIR}/tarball3/tarball3.random1 $newroot/tarball3/tarball3.random1 + test -s $newroot/tarball3/tarball3.random2 + cmp ${TESTDIR}/tarball3/tarball3.random2 $newroot/tarball3/tarball3.random2 + test -s $newroot/tarball4/tarball4.random1 + cmp ${TESTDIR}/tarball4/tarball4.random1 $newroot/tarball4/tarball4.random1 + test -s $newroot/tarball4/tarball4.random2 + cmp ${TESTDIR}/tarball4/tarball4.random2 $newroot/tarball4/tarball4.random2 + buildah delete $newcid } diff --git a/tests/basic.bats b/tests/basic.bats index 646c0f02c..69e4e3898 100644 --- a/tests/basic.bats +++ b/tests/basic.bats @@ -3,93 +3,93 @@ load helpers @test "from" { - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - buildah delete --name=$cid - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json alpine) - buildah delete --name=$cid - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json alpine i-love-naming-things) - buildah delete --name=i-love-naming-things + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + buildah delete $cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json alpine) + buildah delete $cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json alpine i-love-naming-things) + buildah delete i-love-naming-things } @test "from-defaultpull" { - cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json --image alpine) - buildah delete $cid + cid=$(buildah from --signature-policy ${TESTSDIR}/policy.json --image alpine) + buildah delete $cid } @test "from-nopull" { - run buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json --image alpine - [ "$status" -eq 1 ] + run buildah from --pull=false --signature-policy ${TESTSDIR}/policy.json --image alpine + [ "$status" -eq 1 ] } @test "mount" { - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - buildah unmount --name=$cid - root=$(buildah mount $cid) - buildah unmount $cid - buildah delete --name=$cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + buildah unmount $cid + root=$(buildah mount $cid) + buildah unmount $cid + buildah delete $cid } @test "by-name" { - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine --name=alpine-working-image-for-test) - root=$(buildah mount --name=alpine-working-image-for-test) - buildah unmount --name=alpine-working-image-for-test - buildah delete --name=alpine-working-image-for-test + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine alpine-working-image-for-test) + root=$(buildah mount alpine-working-image-for-test) + buildah unmount alpine-working-image-for-test + buildah delete alpine-working-image-for-test } @test "by-root" { - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - buildah unmount --root=$root - buildah delete --root=$root + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + buildah unmount $cid + buildah delete $cid } @test "commit" { - createrandom ${TESTDIR}/randomfile - createrandom ${TESTDIR}/other-randomfile + createrandom ${TESTDIR}/randomfile + createrandom ${TESTDIR}/other-randomfile - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - cp ${TESTDIR}/randomfile $root/randomfile - buildah unmount --name=$cid - buildah commit --signature-policy ${TESTSDIR}/policy.json --name=$cid --output=containers-storage:new-image - buildah delete --name=$cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + cp ${TESTDIR}/randomfile $root/randomfile + buildah unmount $cid + buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image + buildah delete $cid - newcid=$(buildah from --image new-image) - newroot=$(buildah mount --name=$newcid) - test -s $newroot/randomfile - cmp ${TESTDIR}/randomfile $newroot/randomfile - cp ${TESTDIR}/other-randomfile $newroot/other-randomfile - buildah commit --signature-policy ${TESTSDIR}/policy.json --name=$newcid --output=containers-storage:other-new-image - # Not an allowed ordering of arguments and flags. Check that it's rejected. - run buildah commit --signature-policy ${TESTSDIR}/policy.json $newcid --output=containers-storage:rejected-new-image - [ "$status" -eq 1 ] - buildah commit --signature-policy ${TESTSDIR}/policy.json --output=containers-storage:another-new-image $newcid - buildah commit --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:yet-another-new-image - buildah unmount --name=$newcid - buildah delete --name=$newcid + newcid=$(buildah from --image new-image) + newroot=$(buildah mount $newcid) + test -s $newroot/randomfile + cmp ${TESTDIR}/randomfile $newroot/randomfile + cp ${TESTDIR}/other-randomfile $newroot/other-randomfile + buildah commit --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:other-new-image + # Not an allowed ordering of arguments and flags. Check that it's rejected. + run buildah commit $newcid --signature-policy ${TESTSDIR}/policy.json containers-storage:rejected-new-image + [ "$status" -eq 1 ] + buildah commit --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:another-new-image + buildah commit --signature-policy ${TESTSDIR}/policy.json $newcid containers-storage:yet-another-new-image + buildah unmount $newcid + buildah delete $newcid - othernewcid=$(buildah from --image other-new-image) - othernewroot=$(buildah mount --name=$othernewcid) - test -s $othernewroot/randomfile - cmp ${TESTDIR}/randomfile $othernewroot/randomfile - test -s $othernewroot/other-randomfile - cmp ${TESTDIR}/other-randomfile $othernewroot/other-randomfile - buildah delete --name=$othernewcid + othernewcid=$(buildah from --image other-new-image) + othernewroot=$(buildah mount $othernewcid) + test -s $othernewroot/randomfile + cmp ${TESTDIR}/randomfile $othernewroot/randomfile + test -s $othernewroot/other-randomfile + cmp ${TESTDIR}/other-randomfile $othernewroot/other-randomfile + buildah delete $othernewcid - anothernewcid=$(buildah from --image another-new-image) - anothernewroot=$(buildah mount --name=$anothernewcid) - test -s $anothernewroot/randomfile - cmp ${TESTDIR}/randomfile $anothernewroot/randomfile - test -s $anothernewroot/other-randomfile - cmp ${TESTDIR}/other-randomfile $anothernewroot/other-randomfile - buildah delete --name=$anothernewcid + anothernewcid=$(buildah from --image another-new-image) + anothernewroot=$(buildah mount $anothernewcid) + test -s $anothernewroot/randomfile + cmp ${TESTDIR}/randomfile $anothernewroot/randomfile + test -s $anothernewroot/other-randomfile + cmp ${TESTDIR}/other-randomfile $anothernewroot/other-randomfile + buildah delete $anothernewcid - yetanothernewcid=$(buildah from --image yet-another-new-image) - yetanothernewroot=$(buildah mount --name=$yetanothernewcid) - test -s $yetanothernewroot/randomfile - cmp ${TESTDIR}/randomfile $yetanothernewroot/randomfile - test -s $yetanothernewroot/other-randomfile - cmp ${TESTDIR}/other-randomfile $yetanothernewroot/other-randomfile - buildah delete --name=$yetanothernewcid + yetanothernewcid=$(buildah from --image yet-another-new-image) + yetanothernewroot=$(buildah mount $yetanothernewcid) + test -s $yetanothernewroot/randomfile + cmp ${TESTDIR}/randomfile $yetanothernewroot/randomfile + test -s $yetanothernewroot/other-randomfile + cmp ${TESTDIR}/other-randomfile $yetanothernewroot/other-randomfile + buildah delete $yetanothernewcid } diff --git a/tests/copy.bats b/tests/copy.bats index a7280192a..bc284e98e 100644 --- a/tests/copy.bats +++ b/tests/copy.bats @@ -3,23 +3,23 @@ load helpers @test "copy-local-plain" { - createrandom ${TESTDIR}/randomfile - createrandom ${TESTDIR}/other-randomfile + createrandom ${TESTDIR}/randomfile + createrandom ${TESTDIR}/other-randomfile - cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - buildah config --name=$cid --workingdir / - buildah copy --name=$cid ${TESTDIR}/randomfile - buildah copy $cid ${TESTDIR}/other-randomfile - buildah unmount --name=$cid - buildah commit --signature-policy ${TESTSDIR}/policy.json --name=$cid --output=containers-storage:new-image - buildah delete --name=$cid + cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) + root=$(buildah mount $cid) + buildah config --workingdir / $cid + buildah copy $cid ${TESTDIR}/randomfile + buildah copy $cid ${TESTDIR}/other-randomfile + buildah unmount $cid + buildah commit --signature-policy ${TESTSDIR}/policy.json $cid containers-storage:new-image + buildah delete $cid - newcid=$(buildah from --image new-image) - newroot=$(buildah mount --name=$newcid) - test -s $newroot/randomfile - cmp ${TESTDIR}/randomfile $newroot/randomfile - test -s $newroot/other-randomfile - cmp ${TESTDIR}/other-randomfile $newroot/other-randomfile - buildah delete --name=$newcid + newcid=$(buildah from --image new-image) + newroot=$(buildah mount $newcid) + test -s $newroot/randomfile + cmp ${TESTDIR}/randomfile $newroot/randomfile + test -s $newroot/other-randomfile + cmp ${TESTDIR}/other-randomfile $newroot/other-randomfile + buildah delete $newcid } diff --git a/tests/run.bats b/tests/run.bats index 5c6e65114..a0e15a1a4 100644 --- a/tests/run.bats +++ b/tests/run.bats @@ -8,12 +8,12 @@ load helpers fi createrandom ${TESTDIR}/randomfile cid=$(buildah from --pull --signature-policy ${TESTSDIR}/policy.json --image alpine) - root=$(buildah mount --name=$cid) - buildah config --name=$cid --workingdir /tmp - run buildah --debug=false run --name=$cid pwd + root=$(buildah mount $cid) + buildah config $cid --workingdir /tmp + run buildah --debug=false run $cid pwd output=$(echo "$output" | tr -d '\r') [ "$output" = /tmp ] - buildah config --name=$cid --workingdir /root + buildah config $cid --workingdir /root run buildah --debug=false run $cid pwd output=$(echo "$output" | tr -d '\r') [ "$output" = /root ] @@ -21,6 +21,6 @@ load helpers buildah run $cid cp /tmp/randomfile /tmp/other-randomfile test -s $root/tmp/other-randomfile cmp ${TESTDIR}/randomfile $root/tmp/other-randomfile - buildah unmount --name=$cid - buildah delete --name=$cid + buildah unmount $cid + buildah delete $cid }