github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testsuites/update.go (about)

     1  package testsuites
     2  
     3  import (
     4  	"github.com/spf13/cobra"
     5  
     6  	"github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common"
     7  	"github.com/kubeshop/testkube/pkg/ui"
     8  )
     9  
    10  func UpdateTestSuitesCmd() *cobra.Command {
    11  
    12  	var (
    13  		file                     string
    14  		name                     string
    15  		labels                   map[string]string
    16  		schedule                 string
    17  		executionName            string
    18  		variables                []string
    19  		secretVariables          []string
    20  		httpProxy, httpsProxy    string
    21  		secretVariableReferences map[string]string
    22  		timeout                  int32
    23  		jobTemplate              string
    24  		cronJobTemplate          string
    25  		scraperTemplate          string
    26  		pvcTemplate              string
    27  		jobTemplateReference     string
    28  		cronJobTemplateReference string
    29  		scraperTemplateReference string
    30  		pvcTemplateReference     string
    31  	)
    32  
    33  	cmd := &cobra.Command{
    34  		Use:   "testsuite",
    35  		Short: "Update Test Suite",
    36  		Long:  `Update Test Custom Resource Definitions, `,
    37  		Run: func(cmd *cobra.Command, args []string) {
    38  			options, err := NewTestSuiteUpdateOptionsFromFlags(cmd)
    39  			ui.ExitOnError("getting test suite options", err)
    40  
    41  			testSuiteName := ""
    42  			if options.Name != nil {
    43  				testSuiteName = *options.Name
    44  			}
    45  
    46  			if testSuiteName == "" {
    47  				ui.Failf("pass valid test suite name (in '--name' flag)")
    48  			}
    49  
    50  			client, namespace, err := common.GetClient(cmd)
    51  			ui.ExitOnError("getting client", err)
    52  
    53  			testSuite, _ := client.GetTestSuite(testSuiteName)
    54  			if testSuiteName != testSuite.Name {
    55  				ui.Failf("TestSuite with name '%s' not exists in namespace %s", testSuiteName, namespace)
    56  			}
    57  
    58  			testSuite, err = client.UpdateTestSuite(options)
    59  			ui.ExitOnError("updating TestSuite "+testSuiteName+" in namespace "+namespace, err)
    60  			ui.Success("TestSuite updated", testSuiteName)
    61  		},
    62  	}
    63  
    64  	cmd.Flags().StringVarP(&file, "file", "f", "", "JSON test file - will be read from stdin if not specified, look at testkube.TestUpsertRequest")
    65  	cmd.Flags().StringVar(&name, "name", "", "Set/Override test suite name")
    66  	cmd.Flags().StringToStringVarP(&labels, "label", "l", nil, "label key value pair: --label key1=value1")
    67  	cmd.Flags().StringArrayVarP(&variables, "variable", "v", nil, "param key value pair: --variable key1=value1")
    68  	cmd.Flags().StringArrayVarP(&secretVariables, "secret-variable", "s", nil, "secret variable key value pair: --secret-variable key1=value1")
    69  	cmd.Flags().StringVarP(&schedule, "schedule", "", "", "test suite schedule in a cron job form: * * * * *")
    70  	cmd.Flags().StringVarP(&executionName, "execution-name", "", "", "execution name, if empty will be autogenerated")
    71  	cmd.Flags().StringVar(&httpProxy, "http-proxy", "", "http proxy for executor containers")
    72  	cmd.Flags().StringVar(&httpsProxy, "https-proxy", "", "https proxy for executor containers")
    73  	cmd.Flags().StringToStringVarP(&secretVariableReferences, "secret-variable-reference", "", nil, "secret variable references in a form name1=secret_name1=secret_key1")
    74  	cmd.Flags().Int32Var(&timeout, "timeout", 0, "duration in seconds for test suite to timeout. 0 disables timeout.")
    75  	cmd.Flags().StringVar(&jobTemplate, "job-template", "", "job template file path for extensions to job template")
    76  	cmd.Flags().StringVar(&cronJobTemplate, "cronjob-template", "", "cron job template file path for extensions to cron job template")
    77  	cmd.Flags().StringVar(&scraperTemplate, "scraper-template", "", "scraper template file path for extensions to scraper template")
    78  	cmd.Flags().StringVar(&pvcTemplate, "pvc-template", "", "pvc template file path for extensions to pvc template")
    79  	cmd.Flags().StringVar(&jobTemplateReference, "job-template-reference", "", "reference to job template to use for the test")
    80  	cmd.Flags().StringVar(&cronJobTemplateReference, "cronjob-template-reference", "", "reference to cron job template to use for the test")
    81  	cmd.Flags().StringVar(&scraperTemplateReference, "scraper-template-reference", "", "reference to scraper template to use for the test")
    82  	cmd.Flags().StringVar(&pvcTemplateReference, "pvc-template-reference", "", "reference to pvc template to use for the test")
    83  
    84  	return cmd
    85  }