From 894bac0097103006cac7bf5f8af8062544795b69 Mon Sep 17 00:00:00 2001 From: TangBin Date: Fri, 26 Jul 2019 18:08:49 +0800 Subject: [PATCH] huawei rebuild root fix --- pkg/util/huawei/client/client.go | 2 ++ pkg/util/huawei/client/modules/mod_servers.go | 15 +++++++++++++++ pkg/util/huawei/instance.go | 4 ++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/pkg/util/huawei/client/client.go b/pkg/util/huawei/client/client.go index d5a02d63bc..f5c4d37ac6 100644 --- a/pkg/util/huawei/client/client.go +++ b/pkg/util/huawei/client/client.go @@ -50,6 +50,7 @@ type Client struct { SecurityGroups *modules.SSecurityGroupManager NovaSecurityGroups *modules.SSecurityGroupManager Servers *modules.SServerManager + ServersV2 *modules.SServerManager NovaServers *modules.SServerManager Snapshots *modules.SSnapshotManager OsSnapshots *modules.SSnapshotManager @@ -94,6 +95,7 @@ func (self *Client) InitWithAccessKey(regionId, projectId, accessKey, secretKey func (self *Client) initManagers() { if !self.init { self.Servers = modules.NewServerManager(self.regionId, self.projectId, self.signer, self.debug) + self.ServersV2 = modules.NewServerV2Manager(self.regionId, self.projectId, self.signer, self.debug) self.NovaServers = modules.NewNovaServerManager(self.regionId, self.projectId, self.signer, self.debug) self.Snapshots = modules.NewSnapshotManager(self.regionId, self.projectId, self.signer, self.debug) self.OsSnapshots = modules.NewOsSnapshotManager(self.regionId, self.projectId, self.signer, self.debug) diff --git a/pkg/util/huawei/client/modules/mod_servers.go b/pkg/util/huawei/client/modules/mod_servers.go index fc970c4835..ac7c99c7e6 100644 --- a/pkg/util/huawei/client/modules/mod_servers.go +++ b/pkg/util/huawei/client/modules/mod_servers.go @@ -107,3 +107,18 @@ func NewNovaServerManager(regionId, projectId string, signer auth.Signer, debug ResourceKeyword: "servers", }} } + +// 重装弹性云服务器操作系统(安装Cloud-init),请用这个manager +func NewServerV2Manager(regionId, projectId string, signer auth.Signer, debug bool) *SServerManager { + return &SServerManager{SResourceManager: SResourceManager{ + SBaseManager: NewBaseManager(signer, debug), + ServiceName: ServiceNameECS, + Region: regionId, + ProjectId: projectId, + version: "v2", + Keyword: "server", + KeywordPlural: "servers", + + ResourceKeyword: "cloudservers", + }} +} \ No newline at end of file diff --git a/pkg/util/huawei/instance.go b/pkg/util/huawei/instance.go index ef7b66443a..c3711cfb72 100644 --- a/pkg/util/huawei/instance.go +++ b/pkg/util/huawei/instance.go @@ -1038,7 +1038,7 @@ func (self *SRegion) RebuildRoot(ctx context.Context, userId, instanceId, passwd } params.Add(reinstallObj, "os-reinstall") - ret, err := self.ecsClient.Servers.PerformAction2("reinstallos", instanceId, params, "") + ret, err := self.ecsClient.ServersV2.PerformAction2("reinstallos", instanceId, params, "") if err != nil { return "", err } @@ -1077,7 +1077,7 @@ func (self *SRegion) ChangeRoot(ctx context.Context, userId, instanceId, imageId changeOsObj.Add(jsonutils.NewString(imageId), "imageid") params.Add(changeOsObj, "os-change") - ret, err := self.ecsClient.Servers.PerformAction2("changeos", instanceId, params, "") + ret, err := self.ecsClient.ServersV2.PerformAction2("changeos", instanceId, params, "") if err != nil { return "", err }