func NewCmdSmLogs()

in smlogs-kubectl-plugin/pkg/cmd/smlogs.go [124:218]


func NewCmdSmLogs(streams genericclioptions.IOStreams) *cobra.Command {

	oTraining := NewSmLogsOptions(streams)

	subcmdTraining := &cobra.Command{
		Use:          "TrainingJob RESOURCE_NAME",
		Aliases:      []string{"Trainingjob", "trainingjob", "trainingjobs", "TrainingJobs"},
		Short:        "View TrainingJob logs via Kubernetes",
		Example:      fmt.Sprintf(smlogsTrainingExample, "kubectl"),
		SilenceUsage: true,
		RunE: func(c *cobra.Command, args []string) error {

			if err := oTraining.CompleteTraining(c, args); err != nil {
				return err
			}

			if err := oTraining.ValidateTraining(c, args); err != nil {
				return err
			}

			if err := oTraining.RunTraining(c, args); err != nil {
				return err
			}

			return nil

		},
	}

	flagsTraining := subcmdTraining.Flags()
	flagsTraining.BoolVar(&oTraining.hideLogStreamName, "hide-log-stream-name", false, "Whether or not to show the log stream name with each log line.")
	flagsTraining.BoolVarP(&oTraining.tail, "follow", "f", false, "Whether or not to tail AWS CloudWatchLogs")
	flagsTraining.StringVarP(&oTraining.logSearchPrefix, "logSearchPrefix", "p", "", "Filters the results to include only events from instances that have names starting with this logSearchPrefix e.g. `-p algo-4` will only return logs from SageMaker instances whose name matches the log search prefix.")
	oTraining.configFlags.AddFlags(flagsTraining)

	subcmdHPO := &cobra.Command{
		Use:          "HyperParameterTuningJob RESOURCE_NAME",
		Aliases:      []string{"hyperparametertuningjob", "HyperparametertuningJob", "HyperParameterTuningJobs", "hyperparameterTuningjobs", "HyperparametertuningJobs"},
		Short:        "View HyperParameterTuningJob logs via Kubernetes",
		Hidden:       true,
		SilenceUsage: true,
		RunE: func(c *cobra.Command, args []string) error {
			return fmt.Errorf(
				"For HPO logs, Refer to the the Spawned Training Jobs. Use `kubectl get %s` to list resource names.",
				reflect.TypeOf(trainingjobv1.TrainingJob{}).Name())
		},
	}

	oTransform := NewSmLogsOptions(streams)
	oTransform.logGroupName = sagemakerTransformJobsLogGroupName

	subcmdTransform := &cobra.Command{
		Use:          "BatchTransformJob RESOURCE_NAME",
		Aliases:      []string{"batchtransformjob", "BatchtransformJob", "batchtransformjobs", "BatchTransformJobs", "BatchtransformJobs"},
		Short:        "View BatchTransformJob logs via Kubernetes",
		Example:      fmt.Sprintf(smlogsTransformExample, "kubectl"),
		SilenceUsage: true,
		RunE: func(c *cobra.Command, args []string) error {

			if err := oTransform.CompleteTransform(c, args); err != nil {
				return err
			}

			if err := oTransform.ValidateTransform(c, args); err != nil {
				return err
			}

			if err := oTransform.RunTransform(c, args); err != nil {
				return err
			}

			return nil

		},
	}

	flagsTransform := subcmdTransform.Flags()
	flagsTransform.BoolVar(&oTransform.hideLogStreamName, "hide-log-stream-name", false, "Whether or not to show the log stream name with each log line.")
	flagsTransform.BoolVarP(&oTransform.tail, "follow", "f", false, "Whether or not to tail AWS CloudWatchLogs")
	flagsTransform.StringVarP(&oTransform.logSearchPrefix, "logSearchPrefix", "p", "", "Filters the results to include only events from instances that have names starting with this logSearchPrefix e.g. `-p algo-4` will only return logs from SageMaker instances whose name matches the log search prefix.")
	oTransform.configFlags.AddFlags(flagsTransform)

	cmd := &cobra.Command{
		Use:          "smlogs [subcommand] RESOURCE_NAME",
		Aliases:      []string{"SMLogs", "Smlogs"},
		Short:        "View Amazon SageMaker logs via Kubernetes",
		SilenceUsage: true,
	}

	cmd.AddCommand(subcmdTraining)
	cmd.AddCommand(subcmdHPO)
	cmd.AddCommand(subcmdTransform)

	return cmd
}