Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions internal/data/cmd/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@ func NewCommand() *cobra.Command {
deprecatedList.Flags().StringP("namespace", "n", "d8-data-exporter", "data volume namespace")
deprecatedList.Flags().Bool("publish", false, "Provide access outside of cluster")
deprecatedList.Flags().String("ttl", "2m", "Time to live for auto-created DataExport")
deprecatedList.Flags().Bool("tls-skip-verify", false, "Disable TLS certificate validation for download")
deprecatedList.Flags().Bool("auto-delete", false, "Delete auto-created DataExport immediately without prompt")

// TODO remove this section later
// Backward-compat: `d8 data download` -> export download (deprecated)
Expand All @@ -128,6 +130,8 @@ func NewCommand() *cobra.Command {
deprecatedDownload.Flags().StringP("output", "o", "", "file to save data (default: same as resource)")
deprecatedDownload.Flags().Bool("publish", false, "Provide access outside of cluster")
deprecatedDownload.Flags().String("ttl", "2m", "Time to live for auto-created DataExport")
deprecatedDownload.Flags().Bool("tls-skip-verify", false, "Disable TLS certificate validation for download")
deprecatedDownload.Flags().Bool("auto-delete", false, "Delete auto-created DataExport immediately without prompt")

// TODO remove this section later
// Backward-compat: `d8 data delete` -> export delete (deprecated)
Expand Down
11 changes: 10 additions & 1 deletion internal/data/dataexport/cmd/download/download.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ func NewCommand(ctx context.Context, log *slog.Logger) *cobra.Command {
cmd.Flags().StringP("output", "o", "", "file to save data (default: same as resource)") // TODO support /dev/stdout
cmd.Flags().Bool("publish", false, "Provide access outside of cluster")
cmd.Flags().String("ttl", "2m", "Time to live for auto-created DataExport")
cmd.Flags().Bool("tls-skip-verify", false, "Disable TLS certificate validation for download")
cmd.Flags().Bool("auto-delete", false, "Delete auto-created DataExport immediately without prompt")

return cmd
}
Expand Down Expand Up @@ -226,6 +228,8 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin
dstPath, _ := cmd.Flags().GetString("output")
publish, _ := cmd.Flags().GetBool("publish")
ttl, _ := cmd.Flags().GetString("ttl")
tlsSkipVerify, _ := cmd.Flags().GetBool("tls-skip-verify")
autoDelete, _ := cmd.Flags().GetBool("auto-delete")

dataName, srcPath, err := dataio.ParseArgs(args)
if err != nil {
Expand All @@ -234,6 +238,7 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin

flags := cmd.PersistentFlags()
safeClient.SupportNoAuth = false
safeClient.Insecure = tlsSkipVerify
sClient, err := safeClient.NewSafeClient(flags)
if err != nil {
return err
Expand Down Expand Up @@ -283,7 +288,11 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin
}

if deName != dataName { // DataExport created in download process
if dataio.AskYesNoWithTimeout("DataExport will auto-delete in 30 sec [press y+Enter to delete now, n+Enter to cancel]", time.Second*30) {
shouldDelete := autoDelete || dataio.AskYesNoWithTimeout(
"DataExport will auto-delete in 30 sec [press y+Enter to delete now, n+Enter to cancel]",
time.Second*30,
)
if shouldDelete {
if err := util.DeleteDataExport(ctx, deName, namespace, rtClient); err != nil {
log.Warn("Failed to delete DataExport", slog.String("name", deName), slog.String("error", err.Error()))
}
Expand Down
11 changes: 10 additions & 1 deletion internal/data/dataexport/cmd/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ func NewCommand(ctx context.Context, log *slog.Logger) *cobra.Command {
cmd.Flags().StringP("namespace", "n", "d8-data-exporter", "data volume namespace")
cmd.Flags().Bool("publish", false, "Provide access outside of cluster")
cmd.Flags().String("ttl", "2m", "Time to live for auto-created DataExport")
cmd.Flags().Bool("tls-skip-verify", false, "Disable TLS certificate validation for download")
cmd.Flags().Bool("auto-delete", false, "Delete auto-created DataExport immediately without prompt")

return cmd
}
Expand Down Expand Up @@ -164,6 +166,8 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin
namespace, _ := cmd.Flags().GetString("namespace")
publish, _ := cmd.Flags().GetBool("publish")
ttl, _ := cmd.Flags().GetString("ttl")
tlsSkipVerify, _ := cmd.Flags().GetBool("tls-skip-verify")
autoDelete, _ := cmd.Flags().GetBool("auto-delete")

dataName, srcPath, err := parseArgs(args)
if err != nil {
Expand All @@ -172,6 +176,7 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin

flags := cmd.PersistentFlags()
safeClient.SupportNoAuth = false
safeClient.Insecure = tlsSkipVerify
sClient, err := safeClient.NewSafeClient(flags)
if err != nil {
return err
Expand Down Expand Up @@ -201,7 +206,11 @@ func Run(ctx context.Context, log *slog.Logger, cmd *cobra.Command, args []strin
}

if deName != dataName { // DataExport created in download process
if dataio.AskYesNoWithTimeout("DataExport will auto-delete in 30 sec [press y+Enter to delete now, n+Enter to cancel]", time.Second*30) {
shouldDelete := autoDelete || dataio.AskYesNoWithTimeout(
"DataExport will auto-delete in 30 sec [press y+Enter to delete now, n+Enter to cancel]",
time.Second*30,
)
if shouldDelete {
if err := util.DeleteDataExport(ctx, deName, namespace, rtClient); err != nil {
log.Warn("Failed to delete DataExport", slog.String("name", deName), slog.String("error", err.Error()))
}
Expand Down