diff --git a/cmd/climc/shell/zones.go b/cmd/climc/shell/zones.go index 7430f05eab..000bc97a02 100644 --- a/cmd/climc/shell/zones.go +++ b/cmd/climc/shell/zones.go @@ -126,4 +126,21 @@ func init() { return nil }) + type ZoneStatusOptions struct { + ID string `help:"ID or name of zone"` + STATUS string `help:"zone status" choices:"enable|disable|soldout"` + REASON string `help:"why update status"` + } + R(&ZoneStatusOptions{}, "zone-update-status", "Update zone status", func(s *mcclient.ClientSession, args *ZoneStatusOptions) error { + params := jsonutils.NewDict() + params.Set("status", jsonutils.NewString(args.STATUS)) + params.Set("reason", jsonutils.NewString(args.REASON)) + result, err := modules.Zones.PerformAction(s, args.ID, "status", params) + if err != nil { + return err + } + printObject(result) + return nil + }) + }