From 724ea55e74a1fc9eae934df7d5039103db7f0ad3 Mon Sep 17 00:00:00 2001 From: ioito Date: Wed, 24 Aug 2022 19:39:13 +0800 Subject: [PATCH] fix(region): apsara instance id --- pkg/multicloud/apsara/instance.go | 10 ++++++++-- pkg/multicloud/apsara/shell/instance.go | 8 ++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/multicloud/apsara/instance.go b/pkg/multicloud/apsara/instance.go index 1d08c34272..2fd4895c8c 100644 --- a/pkg/multicloud/apsara/instance.go +++ b/pkg/multicloud/apsara/instance.go @@ -418,7 +418,7 @@ func (self *SInstance) GetVNCInfo(input *cloudprovider.ServerVncInput) (*cloudpr } func (self *SInstance) UpdateVM(ctx context.Context, name string) error { - return self.host.zone.region.UpdateVM(self.InstanceId, name, self.OSType) + return self.host.zone.region.UpdateVM(self.InstanceId, name) } func (self *SInstance) DeployVM(ctx context.Context, name string, username string, password string, publicKey string, deleteKeypair bool, description string) error { @@ -758,7 +758,7 @@ func (self *SInstance) DeleteVM(ctx context.Context) error { return cloudprovider.WaitDeleted(self, 10*time.Second, 300*time.Second) // 5minutes } -func (self *SRegion) UpdateVM(instanceId string, name, osType string) error { +func (self *SRegion) UpdateVM(instanceId string, name string) error { /* api: ModifyInstanceAttribute https://help.apsara.com/document_detail/25503.html?spm=a2c4g.11186623.4.1.DrgpjW @@ -769,6 +769,7 @@ func (self *SRegion) UpdateVM(instanceId string, name, osType string) error { } func (self *SRegion) modifyInstanceAttribute(instanceId string, params map[string]string) error { + params["x-acs-instanceid"] = instanceId return self.instanceOperation(instanceId, "ModifyInstanceAttribute", params) } @@ -788,6 +789,7 @@ func (self *SRegion) ReplaceSystemDisk(instanceId string, imageId string, passwd if sysDiskSizeGB > 0 { params["SystemDisk.Size"] = fmt.Sprintf("%d", sysDiskSizeGB) } + params["x-acs-instanceid"] = instanceId body, err := self.ecsRequest("ReplaceSystemDisk", params) if err != nil { return "", err @@ -835,6 +837,7 @@ func (self *SRegion) DetachDisk(instanceId string, diskId string) error { params["InstanceId"] = instanceId params["DiskId"] = diskId log.Infof("Detach instance %s disk %s", instanceId, diskId) + params["x-acs-instanceid"] = instanceId _, err := self.ecsRequest("DetachDisk", params) if err != nil { if strings.Contains(err.Error(), "The specified disk has not been attached on the specified instance") { @@ -850,6 +853,7 @@ func (self *SRegion) AttachDisk(instanceId string, diskId string) error { params := make(map[string]string) params["InstanceId"] = instanceId params["DiskId"] = diskId + params["x-acs-instanceid"] = instanceId _, err := self.ecsRequest("AttachDisk", params) if err != nil { log.Errorf("AttachDisk %s to %s fail %s", diskId, instanceId, err) @@ -928,6 +932,7 @@ func (region *SRegion) RenewInstance(instanceId string, bc billing.SBillingCycle return err } params["ClientToken"] = utils.GenRequestId(20) + params["x-acs-instanceid"] = instanceId _, err = region.ecsRequest("RenewInstance", params) if err != nil { log.Errorf("RenewInstance fail %s", err) @@ -962,6 +967,7 @@ func (region *SRegion) SetInstanceAutoRenew(instanceId string, autoRenew bool) e } else { params["RenewalStatus"] = "Normal" } + params["x-acs-instanceid"] = instanceId _, err := region.ecsRequest("ModifyInstanceAutoRenewAttribute", params) return err } diff --git a/pkg/multicloud/apsara/shell/instance.go b/pkg/multicloud/apsara/shell/instance.go index c5a3075574..c85d9e6f93 100644 --- a/pkg/multicloud/apsara/shell/instance.go +++ b/pkg/multicloud/apsara/shell/instance.go @@ -212,4 +212,12 @@ func init() { return cli.SetInstanceAutoRenew(args.ID, args.AutoRenew) }) + type InstanceUpdateNameOptions struct { + ID string `help:"Instance ID"` + NAME string `help:"new name"` + } + shellutils.R(&InstanceUpdateNameOptions{}, "instance-update-name", "Update instance name", func(cli *apsara.SRegion, args *InstanceUpdateNameOptions) error { + return cli.UpdateVM(args.ID, args.NAME) + }) + }