From 302be0e57640dc4cb264844beab12e86ec83c212 Mon Sep 17 00:00:00 2001 From: Qiu Jian Date: Tue, 15 Jan 2019 23:47:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0disk-save=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/climc/shell/disks.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/cmd/climc/shell/disks.go b/cmd/climc/shell/disks.go index 43c65e7dc4..3d183d9bd6 100644 --- a/cmd/climc/shell/disks.go +++ b/cmd/climc/shell/disks.go @@ -230,4 +230,41 @@ func init() { printObject(disk) return nil }) + + type DiskSaveOptions struct { + ID string `help:"ID or name of the disk" json:"-"` + NAME string `help:"Image name"` + OSTYPE string `help:"Os type" choices:"Linux|Windows|VMware" json:"-"` + Public *bool `help:"Make the image public available" json:"is_public"` + Format string `help:"image format" choices:"vmdk|qcow2"` + Notes string `help:"Notes about the image"` + } + R(&DiskSaveOptions{}, "disk-save", "Disk save image", func(s *mcclient.ClientSession, args *DiskSaveOptions) error { + params, err := options.StructToParams(args) + if err != nil { + return err + } + params.Add(jsonutils.NewString(args.OSTYPE), "properties", "os_type") + disk, err := modules.Disks.PerformAction(s, args.ID, "save", params) + if err != nil { + return err + } + printObject(disk) + return nil + }) + + type DiskUpdateStatusOptions struct { + ID string `help:"ID or name of disk"` + STATUS string `help:"Disk status" choices:"ready"` + } + R(&DiskUpdateStatusOptions{}, "disk-update-status", "Set disk status", func(s *mcclient.ClientSession, args *DiskUpdateStatusOptions) error { + params := jsonutils.NewDict() + params.Add(jsonutils.NewString(args.STATUS), "status") + disk, err := modules.Disks.PerformAction(s, args.ID, "status", params) + if err != nil { + return err + } + printObject(disk) + return nil + }) }