diff --git a/pkg/util/aliyun/instance.go b/pkg/util/aliyun/instance.go index 8f4114dc55..2d7e95e49b 100644 --- a/pkg/util/aliyun/instance.go +++ b/pkg/util/aliyun/instance.go @@ -675,6 +675,7 @@ func (self *SRegion) DetachDisk(instanceId string, diskId string) error { params := make(map[string]string) params["InstanceId"] = instanceId params["DiskId"] = diskId + log.Infof("Detach instance %s disk %s", instanceId, diskId) _, err := self.ecsRequest("DetachDisk", params) if err != nil { log.Errorf("DetachDisk %s to %s fail %s", diskId, instanceId, err) diff --git a/pkg/util/aliyun/shell/instance.go b/pkg/util/aliyun/shell/instance.go index 4a741d0b66..28b1a73d36 100644 --- a/pkg/util/aliyun/shell/instance.go +++ b/pkg/util/aliyun/shell/instance.go @@ -43,6 +43,27 @@ func init() { return nil }) + type InstanceDiskOperationOptions struct { + ID string `help:"instance ID"` + DISK string `help:"disk ID"` + } + + shellutils.R(&InstanceDiskOperationOptions{}, "instance-attach-disk", "Attach a disk to instance", func(cli *aliyun.SRegion, args *InstanceDiskOperationOptions) error { + err := cli.AttachDisk(args.ID, args.DISK) + if err != nil { + return err + } + return nil + }) + + shellutils.R(&InstanceDiskOperationOptions{}, "instance-detach-disk", "Detach a disk to instance", func(cli *aliyun.SRegion, args *InstanceDiskOperationOptions) error { + err := cli.DetachDisk(args.ID, args.DISK) + if err != nil { + return err + } + return nil + }) + type InstanceOperationOptions struct { ID string `help:"instance ID"` }