mirror of
https://github.com/containers/podman.git
synced 2025-08-06 03:19:52 +08:00
System tests: add podman system check
tests
Testing `podman system check` requires that we have a way to intentionally introduce storage corruptions. Add a hidden `podman testing` command that provides the necessary internal logic in subcommands. Stub out the tunnel implementation for now. Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
This commit is contained in:
127
cmd/podman-testing/create.go
Normal file
127
cmd/podman-testing/create.go
Normal file
@ -0,0 +1,127 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/containers/common/pkg/completion"
|
||||
"github.com/containers/podman/v5/cmd/podman/validate"
|
||||
"github.com/containers/podman/v5/internal/domain/entities"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var (
|
||||
createStorageLayerDescription = `Create an unmanaged layer in local storage.`
|
||||
createStorageLayerCmd = &cobra.Command{
|
||||
Use: "create-storage-layer [options]",
|
||||
Args: validate.NoArgs,
|
||||
Short: "Create an unmanaged layer",
|
||||
Long: createStorageLayerDescription,
|
||||
RunE: createStorageLayer,
|
||||
ValidArgsFunction: completion.AutocompleteNone,
|
||||
Example: `podman testing create-storage-layer`,
|
||||
}
|
||||
|
||||
createStorageLayerOpts entities.CreateStorageLayerOptions
|
||||
|
||||
createLayerDescription = `Create an unused layer in local storage.`
|
||||
createLayerCmd = &cobra.Command{
|
||||
Use: "create-layer [options]",
|
||||
Args: validate.NoArgs,
|
||||
Short: "Create an unused layer",
|
||||
Long: createLayerDescription,
|
||||
RunE: createLayer,
|
||||
ValidArgsFunction: completion.AutocompleteNone,
|
||||
Example: `podman testing create-layer`,
|
||||
}
|
||||
|
||||
createLayerOpts entities.CreateLayerOptions
|
||||
|
||||
createImageDescription = `Create an image in local storage.`
|
||||
createImageCmd = &cobra.Command{
|
||||
Use: "create-image [options]",
|
||||
Args: validate.NoArgs,
|
||||
Short: "Create an image",
|
||||
Long: createImageDescription,
|
||||
RunE: createImage,
|
||||
ValidArgsFunction: completion.AutocompleteNone,
|
||||
Example: `podman testing create-image`,
|
||||
}
|
||||
|
||||
createImageOpts entities.CreateImageOptions
|
||||
|
||||
createContainerDescription = `Create a container in local storage.`
|
||||
createContainerCmd = &cobra.Command{
|
||||
Use: "create-container [options]",
|
||||
Args: validate.NoArgs,
|
||||
Short: "Create a container",
|
||||
Long: createContainerDescription,
|
||||
RunE: createContainer,
|
||||
ValidArgsFunction: completion.AutocompleteNone,
|
||||
Example: `podman testing create-container`,
|
||||
}
|
||||
|
||||
createContainerOpts entities.CreateContainerOptions
|
||||
)
|
||||
|
||||
func init() {
|
||||
mainCmd.AddCommand(createStorageLayerCmd)
|
||||
flags := createStorageLayerCmd.Flags()
|
||||
flags.StringVarP(&createStorageLayerOpts.ID, "id", "i", "", "ID to assign the new layer (default random)")
|
||||
flags.StringVarP(&createStorageLayerOpts.Parent, "parent", "p", "", "ID of parent of new layer (default none)")
|
||||
|
||||
mainCmd.AddCommand(createLayerCmd)
|
||||
flags = createLayerCmd.Flags()
|
||||
flags.StringVarP(&createLayerOpts.ID, "id", "i", "", "ID to assign the new layer (default random)")
|
||||
flags.StringVarP(&createLayerOpts.Parent, "parent", "p", "", "ID of parent of new layer (default none)")
|
||||
|
||||
mainCmd.AddCommand(createImageCmd)
|
||||
flags = createImageCmd.Flags()
|
||||
flags.StringVarP(&createImageOpts.ID, "id", "i", "", "ID to assign the new image (default random)")
|
||||
flags.StringVarP(&createImageOpts.Layer, "layer", "l", "", "ID of image's main layer (default none)")
|
||||
|
||||
mainCmd.AddCommand(createContainerCmd)
|
||||
flags = createContainerCmd.Flags()
|
||||
flags.StringVarP(&createContainerOpts.ID, "id", "i", "", "ID to assign the new container (default random)")
|
||||
flags.StringVarP(&createContainerOpts.Image, "image", "b", "", "ID of containers's base image (default none)")
|
||||
flags.StringVarP(&createContainerOpts.Layer, "layer", "l", "", "ID of containers's read-write layer (default none)")
|
||||
}
|
||||
|
||||
func createStorageLayer(cmd *cobra.Command, args []string) error {
|
||||
results, err := testingEngine.CreateStorageLayer(mainContext, createStorageLayerOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println(results.ID)
|
||||
return nil
|
||||
}
|
||||
|
||||
func createLayer(cmd *cobra.Command, args []string) error {
|
||||
results, err := testingEngine.CreateLayer(mainContext, createLayerOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println(results.ID)
|
||||
return nil
|
||||
}
|
||||
|
||||
func createImage(cmd *cobra.Command, args []string) error {
|
||||
results, err := testingEngine.CreateImage(mainContext, createImageOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println(results.ID)
|
||||
return nil
|
||||
}
|
||||
|
||||
func createContainer(cmd *cobra.Command, args []string) error {
|
||||
results, err := testingEngine.CreateContainer(mainContext, createContainerOpts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Println(results.ID)
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user