-
Notifications
You must be signed in to change notification settings - Fork 141
Expand file tree
/
Copy pathunload.go
More file actions
62 lines (58 loc) · 1.74 KB
/
Copy pathunload.go
File metadata and controls
62 lines (58 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package commands
import (
"fmt"
"github.com/docker/model-runner/cmd/cli/commands/completion"
"github.com/docker/model-runner/cmd/cli/desktop"
"github.com/spf13/cobra"
)
func newUnloadCmd() *cobra.Command {
var all bool
var backend string
const cmdArgs = "(MODEL [MODEL ...] [--backend BACKEND] | --all)"
c := &cobra.Command{
Use: "unload " + cmdArgs,
Aliases: []string{"stop"},
Short: "Unload running models",
RunE: func(cmd *cobra.Command, modelArgs []string) error {
unloadResp, err := desktopClient.Unload(desktop.UnloadRequest{All: all, Backend: backend, Models: modelArgs})
if err != nil {
return handleClientError(err, "Failed to unload models")
}
unloaded := unloadResp.UnloadedRunners
if unloaded == 0 {
if all {
cmd.Println("No models are running.")
} else {
cmd.Println("No such model(s) running.")
}
} else {
cmd.Printf("Unloaded %d model(s).\n", unloaded)
}
return nil
},
ValidArgsFunction: completion.NoComplete,
}
c.Args = func(cmd *cobra.Command, args []string) error {
if all {
if len(args) > 0 {
return fmt.Errorf(
"'docker model unload' does not take MODEL when --all is specified.\n\n" +
"Usage: docker model unload " + cmdArgs + "\n\n" +
"See 'docker model unload --help' for more information.",
)
}
return nil
}
if len(args) < 1 {
return fmt.Errorf(
"'docker model unload' requires MODEL unless --all is specified.\n\n" +
"Usage: docker model unload " + cmdArgs + "\n\n" +
"See 'docker model unload --help' for more information.",
)
}
return nil
}
c.Flags().BoolVar(&all, "all", false, "Unload all running models")
c.Flags().StringVar(&backend, "backend", "", "Optional backend to target")
return c
}