diff --git a/pkg/multicloud/huawei/client/client.go b/pkg/multicloud/huawei/client/client.go index e5a5d9c3de..b88e6fa5ed 100644 --- a/pkg/multicloud/huawei/client/client.go +++ b/pkg/multicloud/huawei/client/client.go @@ -120,7 +120,7 @@ func (self *Client) initManagers() { self.Snapshots = modules.NewSnapshotManager(self.regionId, self.projectId, self.signer, self.debug) self.OsSnapshots = modules.NewOsSnapshotManager(self.regionId, self.projectId, self.signer, self.debug) self.Images = modules.NewImageManager(self.regionId, self.projectId, self.signer, self.debug) - self.OpenStackImages = modules.NewOpenstackImageManager(self.regionId, self.signer, self.debug) + self.OpenStackImages = modules.NewOpenstackImageManager(self.regionId, self.projectId, self.signer, self.debug) self.Projects = modules.NewProjectManager(self.signer, self.debug) self.Regions = modules.NewRegionManager(self.signer, self.debug) self.Zones = modules.NewZoneManager(self.regionId, self.projectId, self.signer, self.debug) diff --git a/pkg/multicloud/huawei/client/modules/mod_images.go b/pkg/multicloud/huawei/client/modules/mod_images.go index 525a34f58d..dbf23edb06 100644 --- a/pkg/multicloud/huawei/client/modules/mod_images.go +++ b/pkg/multicloud/huawei/client/modules/mod_images.go @@ -81,9 +81,14 @@ func (self *SImageManager) Get(id string, querys map[string]string) (jsonutils.J // https://support.huaweicloud.com/api-ims/zh-cn_topic_0020092108.html // 删除image只能用这个manager -func NewOpenstackImageManager(regionId string, signer auth.Signer, debug bool) *SImageManager { +func NewOpenstackImageManager(regionId string, projectId string, signer auth.Signer, debug bool) *SImageManager { + var requestHook imageProject + if len(projectId) > 0 { + requestHook = imageProject{projectId: projectId} + } + return &SImageManager{SResourceManager: SResourceManager{ - SBaseManager: NewBaseManager(signer, debug), + SBaseManager: NewBaseManager2(signer, debug, &requestHook), ServiceName: ServiceNameIMS, Region: regionId, ProjectId: "",