Add sync option on lease removal

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
This commit is contained in:
Derek McGowan
2018-07-19 11:27:48 -07:00
parent 29b72d4ff0
commit 94e132fd07
9 changed files with 167 additions and 43 deletions

View File

@@ -163,6 +163,12 @@ var deleteCommand = cli.Command{
Usage: "delete a lease",
ArgsUsage: "[flags] <lease id> ...",
Description: "delete a lease",
Flags: []cli.Flag{
cli.BoolFlag{
Name: "sync",
Usage: "Synchronously remove leases and all unreferenced resources",
},
},
Action: func(context *cli.Context) error {
var lids = context.Args()
if len(lids) == 0 {
@@ -175,11 +181,17 @@ var deleteCommand = cli.Command{
defer cancel()
ls := client.LeasesService()
for _, lid := range lids {
sync := context.Bool("sync")
for i, lid := range lids {
var opts []leases.DeleteOpt
if sync && i == len(lids)-1 {
opts = append(opts, leases.SynchronousDelete)
}
lease := leases.Lease{
ID: lid,
}
if err := ls.Delete(ctx, lease); err != nil {
if err := ls.Delete(ctx, lease, opts...); err != nil {
return err
}
fmt.Println(lid)