@@ -15,6 +15,7 @@ func VDiffCmd(ch *cmdutil.Helper) *cobra.Command {
1515 Short : "Manage VDiff operations" ,
1616 }
1717
18+ cmd .AddCommand (VDiffListCmd (ch ))
1819 cmd .AddCommand (VDiffCreateCmd (ch ))
1920 cmd .AddCommand (VDiffShowCmd (ch ))
2021 cmd .AddCommand (VDiffStopCmd (ch ))
@@ -24,6 +25,54 @@ func VDiffCmd(ch *cmdutil.Helper) *cobra.Command {
2425 return cmd
2526}
2627
28+ func VDiffListCmd (ch * cmdutil.Helper ) * cobra.Command {
29+ var flags struct {
30+ workflow string
31+ targetKeyspace string
32+ }
33+
34+ cmd := & cobra.Command {
35+ Use : "list <database> <branch>" ,
36+ Short : "List VDiffs" ,
37+ Args : cmdutil .RequiredArgs ("database" , "branch" ),
38+ RunE : func (cmd * cobra.Command , args []string ) error {
39+ ctx := cmd .Context ()
40+ database , branch := args [0 ], args [1 ]
41+
42+ client , err := ch .Client ()
43+ if err != nil {
44+ return err
45+ }
46+
47+ end := ch .Printer .PrintProgress (
48+ fmt .Sprintf ("Fetching VDiffs for workflow %s on %s/%s\u2026 " ,
49+ printer .BoldBlue (flags .workflow ), printer .BoldBlue (database ), printer .BoldBlue (branch )))
50+ defer end ()
51+
52+ data , err := client .VDiff .List (ctx , & ps.VDiffListRequest {
53+ Organization : ch .Config .Organization ,
54+ Database : database ,
55+ Branch : branch ,
56+ Workflow : flags .workflow ,
57+ TargetKeyspace : flags .targetKeyspace ,
58+ })
59+ if err != nil {
60+ return cmdutil .HandleError (err )
61+ }
62+
63+ end ()
64+ return ch .Printer .PrettyPrintJSON (data )
65+ },
66+ }
67+
68+ cmd .Flags ().StringVar (& flags .workflow , "workflow" , "" , "Name of the workflow" )
69+ cmd .Flags ().StringVar (& flags .targetKeyspace , "target-keyspace" , "" , "Target keyspace" )
70+ cmd .MarkFlagRequired ("workflow" ) // nolint:errcheck
71+ cmd .MarkFlagRequired ("target-keyspace" ) // nolint:errcheck
72+
73+ return cmd
74+ }
75+
2776func VDiffCreateCmd (ch * cmdutil.Helper ) * cobra.Command {
2877 var flags struct {
2978 workflow string
0 commit comments