diff --git a/pkg/util/aws/instance.go b/pkg/util/aws/instance.go index 310443d6cb..c2ae141911 100644 --- a/pkg/util/aws/instance.go +++ b/pkg/util/aws/instance.go @@ -667,20 +667,20 @@ func (self *SRegion) ChangeVMConfig(zoneId string, instanceId string, ncpu int, return nil } -func (self *SRegion) DetachDisk(instanceId string, diskId string, deviceName string) error { +func (self *SRegion) DetachDisk(instanceId string, diskId string) error { params := &ec2.DetachVolumeInput{} params.SetInstanceId(instanceId) params.SetVolumeId(diskId) - params.SetDevice(deviceName) _, err := self.ec2Client.DetachVolume(params) return err } -func (self *SRegion) AttachDisk(instanceId string, diskId string) error { +func (self *SRegion) AttachDisk(instanceId string, diskId string, deviceName string) error { params := &ec2.AttachVolumeInput{} params.SetInstanceId(instanceId) params.SetVolumeId(diskId) + params.SetDevice(deviceName) _, err := self.ec2Client.AttachVolume(params) return err diff --git a/pkg/util/aws/shell/instance.go b/pkg/util/aws/shell/instance.go index d342daa17c..12942fe16e 100644 --- a/pkg/util/aws/shell/instance.go +++ b/pkg/util/aws/shell/instance.go @@ -52,8 +52,14 @@ func init() { DISK string `help:"disk ID"` } - shellutils.R(&InstanceDiskOperationOptions{}, "instance-attach-disk", "Attach a disk to instance", func(cli *aws.SRegion, args *InstanceDiskOperationOptions) error { - err := cli.AttachDisk(args.ID, args.DISK) + type InstanceDiskAttachOptions struct { + ID string `help:"instance ID"` + DISK string `help:"disk ID"` + DEVICE string `help:"disk device name. eg. /dev/sdb"` + } + + shellutils.R(&InstanceDiskAttachOptions{}, "instance-attach-disk", "Attach a disk to instance", func(cli *aws.SRegion, args *InstanceDiskOperationOptions) error { + err := cli.AttachDisk(args.ID, args.DISK, args.DEVICE) if err != nil { return err }