/
storagetransfer_transferJobs_list.go
64 lines (53 loc) · 1.57 KB
/
storagetransfer_transferJobs_list.go
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
63
64
package cmd
import (
"encoding/json"
"fmt"
"log"
"os"
"github.com/spf13/cobra"
"github.com/spf13/viper"
"golang.org/x/net/context"
"golang.org/x/oauth2/google"
"google.golang.org/api/storagetransfer/v1"
)
// storagetransfertransferJobslistCmd represents the list command
var storagetransfertransferJobslistCmd = &cobra.Command{
Use: "list",
Short: "Lists transfer jobs.",
Long: `Lists transfer jobs.`,
Run: storageTransferTransferJobsList,
}
func init() {
storagetransfertransferJobsCmd.AddCommand(storagetransfertransferJobslistCmd)
storagetransfertransferJobslistCmd.Flags().StringP("filter", "f", "", "Filter")
viper.BindPFlag("filter", storagetransfertransferJobslistCmd.Flags().Lookup("filter"))
}
func storageTransferTransferJobsList(*cobra.Command, []string) {
filter := viper.GetString("filter")
if filter == "" {
fmt.Println("filter is required")
os.Exit(1)
}
ctx := context.Background()
c, err := google.DefaultClient(ctx, storagetransfer.CloudPlatformScope)
if err != nil {
log.Fatal(err)
}
storagetransferService, err := storagetransfer.New(c)
if err != nil {
log.Fatal(err)
}
req := storagetransferService.TransferJobs.List()
req.Filter(filter)
var transferJobs []*storagetransfer.TransferJob
if err := req.Pages(ctx, func(page *storagetransfer.ListTransferJobsResponse) error {
for _, transferJob := range page.TransferJobs {
transferJobs = append(transferJobs, transferJob)
}
return nil
}); err != nil {
log.Fatal(err)
}
dataRaw, _ := json.MarshalIndent(transferJobs, "", " ")
fmt.Fprintln(os.Stdout, string(dataRaw))
}