mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-10-29 17:58:36 +08:00
映射表默认指向provider的project
This commit is contained in:
@@ -17,6 +17,11 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/util/logclient"
|
||||
)
|
||||
|
||||
const (
|
||||
PROJECT_SOURCE_LOCAL = "local"
|
||||
PROJECT_SOURCE_CLOUD = "cloud"
|
||||
)
|
||||
|
||||
type SVirtualResourceBaseManager struct {
|
||||
SStatusStandaloneResourceBaseManager
|
||||
}
|
||||
@@ -29,7 +34,8 @@ func NewVirtualResourceBaseManager(dt interface{}, tableName string, keyword str
|
||||
type SVirtualResourceBase struct {
|
||||
SStatusStandaloneResourceBase
|
||||
|
||||
ProjectId string `name:"tenant_id" width:"128" charset:"ascii" nullable:"false" index:"true" list:"user"`
|
||||
ProjectId string `name:"tenant_id" width:"128" charset:"ascii" nullable:"false" index:"true" list:"user"`
|
||||
ProjectSource string `width:"128" charset:"ascii" nullable:"false" list:"user" get:"user" default:"cloud"`
|
||||
|
||||
IsSystem bool `nullable:"true" default:"false" list:"admin" create:"optional"`
|
||||
|
||||
@@ -227,6 +233,7 @@ func (model *SVirtualResourceBase) PerformChangeOwner(ctx context.Context, userC
|
||||
}
|
||||
_, err := model.GetModelManager().TableSpec().Update(model, func() error {
|
||||
model.ProjectId = tobj.GetId()
|
||||
model.ProjectSource = PROJECT_SOURCE_LOCAL
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
|
||||
@@ -25,6 +25,10 @@ type ICloudResource interface {
|
||||
GetMetadata() *jsonutils.JSONDict
|
||||
}
|
||||
|
||||
type IVirtualResource interface {
|
||||
GetProjectId() string
|
||||
}
|
||||
|
||||
type IBillingResource interface {
|
||||
GetBillingType() string
|
||||
GetExpiredAt() time.Time
|
||||
@@ -191,6 +195,7 @@ type ICloudHost interface {
|
||||
type ICloudVM interface {
|
||||
ICloudResource
|
||||
IBillingResource
|
||||
IVirtualResource
|
||||
|
||||
GetCreateTime() time.Time
|
||||
GetIHost() ICloudHost
|
||||
@@ -255,6 +260,7 @@ type ICloudNic interface {
|
||||
type ICloudEIP interface {
|
||||
ICloudResource
|
||||
IBillingResource
|
||||
IVirtualResource
|
||||
|
||||
GetIpAddr() string
|
||||
GetMode() string
|
||||
@@ -304,6 +310,7 @@ type ICloudRoute interface {
|
||||
type ICloudDisk interface {
|
||||
ICloudResource
|
||||
IBillingResource
|
||||
IVirtualResource
|
||||
|
||||
GetIStorage() (ICloudStorage, error)
|
||||
|
||||
@@ -336,6 +343,8 @@ type ICloudDisk interface {
|
||||
|
||||
type ICloudSnapshot interface {
|
||||
ICloudResource
|
||||
IVirtualResource
|
||||
|
||||
GetSize() int32
|
||||
GetDiskId() string
|
||||
GetDiskType() string
|
||||
|
||||
@@ -1004,6 +1004,7 @@ func (self *SDisk) syncWithCloudDisk(ctx context.Context, userCred mcclient.Toke
|
||||
if provider.GetFactory().IsSupportPrepaidResources() && len(guests) == 1 && guests[0].IsPrepaidRecycle() {
|
||||
recycle = true
|
||||
}
|
||||
storage := self.GetStorage()
|
||||
_, err := self.GetModelManager().TableSpec().Update(self, func() error {
|
||||
extDisk.Refresh()
|
||||
// self.Name = extDisk.GetName()
|
||||
@@ -1030,8 +1031,15 @@ func (self *SDisk) syncWithCloudDisk(ctx context.Context, userCred mcclient.Toke
|
||||
}
|
||||
|
||||
// self.ProjectId = userCred.GetProjectId()
|
||||
if projectSync && len(projectId) > 0 {
|
||||
self.ProjectId = projectId
|
||||
if projectSync && self.ProjectSource != db.PROJECT_SOURCE_LOCAL {
|
||||
if extProjectId := extDisk.GetProjectId(); len(extProjectId) > 0 {
|
||||
extProject, err := ExternalProjectManager.GetProject(extProjectId, storage.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
self.ProjectId = extProject.ProjectId
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
})
|
||||
@@ -1064,10 +1072,19 @@ func (manager *SDiskManager) newFromCloudDisk(ctx context.Context, userCred mccl
|
||||
disk.Status = extDisk.GetStatus()
|
||||
disk.ExternalId = extDisk.GetGlobalId()
|
||||
disk.StorageId = storage.Id
|
||||
disk.ProjectSource = db.PROJECT_SOURCE_CLOUD
|
||||
disk.ProjectId = userCred.GetProjectId()
|
||||
if len(projectId) > 0 {
|
||||
disk.ProjectId = projectId
|
||||
}
|
||||
if extProjectId := extDisk.GetProjectId(); len(extProjectId) > 0 {
|
||||
externalProject, err := ExternalProjectManager.GetProject(extProjectId, storage.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
disk.ProjectId = externalProject.ProjectId
|
||||
}
|
||||
}
|
||||
disk.DiskFormat = extDisk.GetDiskFormat()
|
||||
disk.DiskSize = extDisk.GetDiskSizeMB()
|
||||
disk.AutoDelete = extDisk.GetIsAutoDelete()
|
||||
|
||||
@@ -302,8 +302,15 @@ func (self *SElasticip) SyncWithCloudEip(userCred mcclient.TokenCredential, prov
|
||||
// self.ManagerId = ext.GetManagerId()
|
||||
self.IsEmulated = ext.IsEmulated()
|
||||
self.ProjectId = userCred.GetProjectId()
|
||||
if projectSync && len(projectId) > 0 {
|
||||
self.ProjectId = projectId
|
||||
if projectSync && self.ProjectSource != db.PROJECT_SOURCE_LOCAL {
|
||||
if extProjectId := ext.GetProjectId(); len(extProjectId) > 0 {
|
||||
extProject, err := ExternalProjectManager.GetProject(extProjectId, self.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
self.ProjectId = extProject.ProjectId
|
||||
}
|
||||
}
|
||||
}
|
||||
self.ChargeType = ext.GetInternetChargeType()
|
||||
|
||||
@@ -335,11 +342,21 @@ func (manager *SElasticipManager) newFromCloudEip(ctx context.Context, userCred
|
||||
eip.CloudregionId = region.Id
|
||||
eip.ChargeType = extEip.GetInternetChargeType()
|
||||
|
||||
eip.ProjectSource = db.PROJECT_SOURCE_CLOUD
|
||||
eip.ProjectId = userCred.GetProjectId()
|
||||
if len(projectId) > 0 {
|
||||
eip.ProjectId = projectId
|
||||
}
|
||||
|
||||
if extProjectId := extEip.GetProjectId(); len(extProjectId) > 0 {
|
||||
externalProject, err := ExternalProjectManager.GetProject(extProjectId, eip.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
eip.ProjectId = externalProject.ProjectId
|
||||
}
|
||||
}
|
||||
|
||||
err := manager.TableSpec().Insert(&eip)
|
||||
if err != nil {
|
||||
log.Errorf("newFromCloudEip fail %s", err)
|
||||
|
||||
@@ -3,16 +3,14 @@ package models
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
"yunion.io/x/onecloud/pkg/cloudprovider"
|
||||
"yunion.io/x/onecloud/pkg/compute/options"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules"
|
||||
"yunion.io/x/pkg/util/compare"
|
||||
)
|
||||
|
||||
@@ -75,6 +73,20 @@ func (manager *SExternalProjectManager) getProjectsByRegion(region *SCloudregion
|
||||
return projects, nil
|
||||
}
|
||||
|
||||
func (manager *SExternalProjectManager) GetProject(externalId string, providerId string) (*SExternalProject, error) {
|
||||
project := &SExternalProject{}
|
||||
project.SetModelManager(manager)
|
||||
q := manager.Query().Equals("external_id", externalId).Equals("manager_id", providerId)
|
||||
count := q.Count()
|
||||
if count == 0 {
|
||||
return nil, fmt.Errorf("no external project record %s for provider %s", externalId, providerId)
|
||||
}
|
||||
if count > 1 {
|
||||
return nil, fmt.Errorf("dumplicate external project record %s for provider %s", externalId, providerId)
|
||||
}
|
||||
return project, q.First(project)
|
||||
}
|
||||
|
||||
func (manager *SExternalProjectManager) SyncProjects(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, region *SCloudregion, projects []cloudprovider.ICloudProject, projectSync bool) compare.SyncResult {
|
||||
syncResult := compare.SyncResult{}
|
||||
|
||||
@@ -125,16 +137,7 @@ func (manager *SExternalProjectManager) SyncProjects(ctx context.Context, userCr
|
||||
func (self *SExternalProject) SyncWithCloudProject(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, ext cloudprovider.ICloudProject, projectSync bool) error {
|
||||
_, err := self.GetModelManager().TableSpec().Update(self, func() error {
|
||||
self.Name = ext.GetName()
|
||||
self.ExternalId = ext.GetGlobalId()
|
||||
self.IsEmulated = ext.IsEmulated()
|
||||
self.ProjectId = userCred.GetProjectId()
|
||||
if projectSync {
|
||||
projectId, err := ExternalProjectManager.syncProject(ctx, userCred, self.Name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
self.ProjectId = projectId
|
||||
}
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
@@ -143,25 +146,6 @@ func (self *SExternalProject) SyncWithCloudProject(ctx context.Context, userCred
|
||||
return err
|
||||
}
|
||||
|
||||
func (manager *SExternalProjectManager) syncProject(ctx context.Context, userCred mcclient.TokenCredential, projectName string) (string, error) {
|
||||
project, err := db.TenantCacheManager.FetchByName(userCred, projectName)
|
||||
if err == nil {
|
||||
return project.GetId(), nil
|
||||
}
|
||||
if err == sql.ErrNoRows {
|
||||
s := auth.GetAdminSession(ctx, options.Options.Region, "")
|
||||
params := jsonutils.NewDict()
|
||||
params.Add(jsonutils.NewString(projectName), "name")
|
||||
params.Add(jsonutils.NewString("auto create from external_project"), "description")
|
||||
result, err := modules.Projects.Create(s, params)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return result.GetString("id")
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
func (manager *SExternalProjectManager) newFromCloudProject(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, extProject cloudprovider.ICloudProject, region *SCloudregion, projectSync bool) (*SExternalProject, error) {
|
||||
project := SExternalProject{}
|
||||
project.SetModelManager(manager)
|
||||
@@ -170,15 +154,7 @@ func (manager *SExternalProjectManager) newFromCloudProject(ctx context.Context,
|
||||
project.ExternalId = extProject.GetGlobalId()
|
||||
project.IsEmulated = extProject.IsEmulated()
|
||||
project.ManagerId = provider.Id
|
||||
|
||||
project.ProjectId = userCred.GetProjectId()
|
||||
if projectSync {
|
||||
projectId, err := manager.syncProject(ctx, userCred, project.Name)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
project.ProjectId = projectId
|
||||
}
|
||||
project.ProjectId = provider.ProjectId
|
||||
|
||||
factory, err := provider.GetProviderFactory()
|
||||
if err != nil {
|
||||
|
||||
@@ -1853,8 +1853,15 @@ func (self *SGuest) syncWithCloudVM(ctx context.Context, userCred mcclient.Token
|
||||
self.VmemSize = extVM.GetVmemSizeMB()
|
||||
}
|
||||
|
||||
if projectSync && len(projectId) > 0 {
|
||||
self.ProjectId = projectId
|
||||
if projectSync && self.ProjectSource != db.PROJECT_SOURCE_LOCAL {
|
||||
if extProjectId := extVM.GetProjectId(); len(extProjectId) > 0 {
|
||||
extProject, err := ExternalProjectManager.GetProject(extProjectId, host.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
self.ProjectId = extProject.ProjectId
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.Hypervisor = extVM.GetHypervisor()
|
||||
@@ -1978,10 +1985,19 @@ func (manager *SGuestManager) newCloudVM(ctx context.Context, userCred mcclient.
|
||||
guest.VmemSize = extVM.GetVmemSizeMB()
|
||||
}
|
||||
|
||||
guest.ProjectSource = db.PROJECT_SOURCE_CLOUD
|
||||
guest.ProjectId = userCred.GetProjectId()
|
||||
if len(projectId) > 0 {
|
||||
guest.ProjectId = projectId
|
||||
}
|
||||
if extProjectId := extVM.GetProjectId(); len(extProjectId) > 0 {
|
||||
externalProject, err := ExternalProjectManager.GetProject(extProjectId, host.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
guest.ProjectId = externalProject.ProjectId
|
||||
}
|
||||
}
|
||||
|
||||
extraSecgroups := []*SSecurityGroup{}
|
||||
if metaData != nil && metaData.Contains("secgroupIds") {
|
||||
|
||||
@@ -536,8 +536,15 @@ func (self *SSnapshot) SyncWithCloudSnapshot(userCred mcclient.TokenCredential,
|
||||
self.Name = ext.GetName()
|
||||
self.Status = ext.GetStatus()
|
||||
self.DiskType = ext.GetDiskType()
|
||||
if projectSync && len(projectId) > 0 {
|
||||
self.ProjectId = projectId
|
||||
if projectSync && self.ProjectSource != db.PROJECT_SOURCE_LOCAL {
|
||||
if extProjectId := ext.GetProjectId(); len(extProjectId) > 0 {
|
||||
extProject, err := ExternalProjectManager.GetProject(extProjectId, self.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
self.ProjectId = extProject.ProjectId
|
||||
}
|
||||
}
|
||||
}
|
||||
self.CloudregionId = region.Id
|
||||
return nil
|
||||
@@ -569,10 +576,21 @@ func (manager *SSnapshotManager) newFromCloudSnapshot(ctx context.Context, userC
|
||||
snapshot.ManagerId = provider.Id
|
||||
snapshot.CloudregionId = region.Id
|
||||
|
||||
snapshot.ProjectSource = db.PROJECT_SOURCE_CLOUD
|
||||
snapshot.ProjectId = userCred.GetProjectId()
|
||||
if len(projectId) > 0 {
|
||||
snapshot.ProjectId = projectId
|
||||
}
|
||||
|
||||
if extProjectId := extSnapshot.GetProjectId(); len(extProjectId) > 0 {
|
||||
externalProject, err := ExternalProjectManager.GetProject(extProjectId, snapshot.ManagerId)
|
||||
if err != nil {
|
||||
log.Errorf(err.Error())
|
||||
} else {
|
||||
snapshot.ProjectId = externalProject.ProjectId
|
||||
}
|
||||
}
|
||||
|
||||
err := manager.TableSpec().Insert(&snapshot)
|
||||
if err != nil {
|
||||
log.Errorf("newFromCloudEip fail %s", err)
|
||||
|
||||
@@ -406,3 +406,7 @@ func (self *SRegion) rebuildDisk(diskId string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -326,3 +326,7 @@ func (region *SRegion) UpdateEipBandwidth(eipId string, bw int) error {
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -938,3 +938,7 @@ func (region *SRegion) RenewInstance(instanceId string, bc billing.SBillingCycle
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -179,3 +179,7 @@ func (self *SRegion) DeleteSnapshot(snapshotId string) error {
|
||||
_, err := self.ecsRequest("DeleteSnapshot", params)
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -480,3 +480,7 @@ func (self *SDisk) Rebuild(ctx context.Context) error {
|
||||
_, err := self.storage.zone.region.resetDisk(self.DiskId, "")
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -304,3 +304,7 @@ func (self *SEipAddress) GetBillingType() string {
|
||||
func (self *SEipAddress) GetExpiredAt() time.Time {
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -939,3 +939,7 @@ func (self *SInstance) CreateDisk(ctx context.Context, sizeMb int, uuid string,
|
||||
func (self *SInstance) Renew(bc billing.SBillingCycle) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -200,3 +200,7 @@ func (self *SRegion) DeleteSnapshot(snapshotId string) error {
|
||||
_, err := self.ec2Client.DeleteSnapshot(params)
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -223,3 +223,7 @@ func (disk *SClassicDisk) GetAccessPath() string {
|
||||
func (self *SClassicDisk) Rebuild(ctx context.Context) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SClassicDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -151,3 +151,7 @@ func (self *SClassicEipAddress) GetBillingType() string {
|
||||
func (self *SClassicEipAddress) GetExpiredAt() time.Time {
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func (self *SClassicEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -535,3 +535,7 @@ func (self *SClassicInstance) CreateDisk(ctx context.Context, sizeMb int, uuid s
|
||||
func (self *SClassicInstance) Renew(bc billing.SBillingCycle) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SClassicInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -77,3 +77,7 @@ func (self *SClassicSnapshot) GetRegionId() string {
|
||||
func (self *SClassicSnapshot) GetDiskType() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (self *SClassicSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -341,3 +341,7 @@ func (self *SDisk) Rebuild(ctx context.Context) error {
|
||||
// TODO
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -242,3 +242,7 @@ func (self *SEipAddress) GetBillingType() string {
|
||||
func (self *SEipAddress) GetExpiredAt() time.Time {
|
||||
return time.Time{}
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -1043,3 +1043,7 @@ func (self *SInstance) CreateDisk(ctx context.Context, sizeMb int, uuid string,
|
||||
func (self *SInstance) Renew(bc billing.SBillingCycle) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -172,3 +172,7 @@ func (self *SSnapshot) GetDiskId() string {
|
||||
func (self *SSnapshot) GetDiskType() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -244,3 +244,7 @@ func (disk *SVirtualDisk) GetExpiredAt() time.Time {
|
||||
func (disk *SVirtualDisk) Rebuild(ctx context.Context) error {
|
||||
return disk.vm.rebuildDisk(ctx, disk)
|
||||
}
|
||||
|
||||
func (disk *SVirtualDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -718,3 +718,7 @@ func (self *SVirtualMachine) createDiskInternal(ctx context.Context, sizeMb int,
|
||||
func (self *SVirtualMachine) Renew(bc billing.SBillingCycle) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SVirtualMachine) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -482,3 +482,7 @@ func (self *SRegion) resetDisk(diskId, snapshotId string) (string, error) {
|
||||
_, err := self.ecsClient.OsSnapshots.PerformAction2("rollback", snapshotId, params, "")
|
||||
return diskId, err
|
||||
}
|
||||
|
||||
func (self *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -367,3 +367,7 @@ func (self *SRegion) GetPorts(instanceId string) ([]Port, error) {
|
||||
err := doListAllWithMarker(self.ecsClient.Port.List, querys, &ports)
|
||||
return ports, err
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -1155,3 +1155,7 @@ func (self *SRegion) UnsubscribeInstance(instanceId string, domianId string) (js
|
||||
self.ecsClient.Orders.SetDomainId(domianId)
|
||||
return self.ecsClient.Orders.PerformAction("resources/delete", "", unsubObj)
|
||||
}
|
||||
|
||||
func (self *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -381,7 +381,7 @@ func (self *SRegion) CreateEIP(name string, bwMbps int, chargeType string, bgpTy
|
||||
bgpType = "5_sbgp"
|
||||
case "cn-northeast-1":
|
||||
bgpType = "5_telcom"
|
||||
case "cn-north-4","ap-southeast-1", "ap-southeast-2", "eu-west-0":
|
||||
case "cn-north-4", "ap-southeast-1", "ap-southeast-2", "eu-west-0":
|
||||
bgpType = "5_bgp"
|
||||
default:
|
||||
bgpType = "5_bgp"
|
||||
|
||||
@@ -169,3 +169,7 @@ func (self *SRegion) CreateSnapshot(diskId, name, desc string) (string, error) {
|
||||
err := DoCreate(self.ecsClient.Snapshots.Create, params, &snapshot)
|
||||
return snapshot.ID, err
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -316,3 +316,7 @@ func (disk *SDisk) GetAccessPath() string {
|
||||
func (disk *SDisk) Rebuild(ctx context.Context) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (disk *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -613,3 +613,7 @@ func (instance *SInstance) Renew(bc billing.SBillingCycle) error {
|
||||
func (region *SRegion) RenewInstances(instanceId []string, bc billing.SBillingCycle) error {
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (instance *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -163,3 +163,7 @@ func (region *SRegion) CreateSnapshot(diskId, name, desc string) (*SSnapshot, er
|
||||
snapshot := &SSnapshot{region: region}
|
||||
return snapshot, resp.Unmarshal(snapshot, "snapshot")
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -382,3 +382,7 @@ func (self *SDisk) Rebuild(ctx context.Context) error {
|
||||
// TODO
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (self *SDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -330,3 +330,7 @@ func (region *SRegion) UpdateInstanceBandwidth(instanceId string, bw int) error
|
||||
_, err := region.cvmRequest("ResetInstancesInternetMaxBandwidth", params)
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SEipAddress) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -821,3 +821,7 @@ func (region *SRegion) RenewInstances(instanceId []string, bc billing.SBillingCy
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (self *SInstance) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -139,3 +139,7 @@ func (self *SLocalDisk) Rebuild(ctx context.Context) error {
|
||||
// TODO
|
||||
return cloudprovider.ErrNotSupported
|
||||
}
|
||||
|
||||
func (disk *SLocalDisk) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -217,3 +217,7 @@ func (self *SRegion) CreateSnapshot(diskId, name, desc string) (string, error) {
|
||||
}
|
||||
return body.GetString("SnapshotId")
|
||||
}
|
||||
|
||||
func (self *SSnapshot) GetProjectId() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user