mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-06-20 12:22:16 +08:00
cloudcommon: db: make master, slave id explict in joint resource base
This commit is contained in:
@@ -116,7 +116,7 @@ type IJointModelManager interface {
|
||||
GetMasterManager() IStandaloneModelManager
|
||||
GetSlaveManager() IStandaloneModelManager
|
||||
|
||||
FetchByIds(id1 string, id2 string) (IJointModel, error)
|
||||
FetchByIds(masterId string, slaveId string) (IJointModel, error)
|
||||
|
||||
AllowListDescendent(ctx context.Context, userCred mcclient.TokenCredential, model IStandaloneModel, query jsonutils.JSONObject) bool
|
||||
AllowAttach(ctx context.Context, userCred mcclient.TokenCredential, master IStandaloneModel, slave IStandaloneModel) bool
|
||||
|
||||
@@ -65,7 +65,7 @@ func (manager *SJointResourceBaseManager) SlaveField(q *sqlchemy.SQuery) sqlchem
|
||||
return queryField(q, manager.GetSlaveManager())
|
||||
}
|
||||
|
||||
func (manager *SJointResourceBaseManager) FetchByIds(id1 string, id2 string) (IJointModel, error) {
|
||||
func (manager *SJointResourceBaseManager) FetchByIds(masterId string, slaveId string) (IJointModel, error) {
|
||||
obj, err := NewModelObject(manager)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -83,9 +83,8 @@ func (manager *SJointResourceBaseManager) FetchByIds(id1 string, id2 string) (IJ
|
||||
if slaveField == nil {
|
||||
return nil, fmt.Errorf("cannot find slave id")
|
||||
}
|
||||
cond1 := sqlchemy.AND(sqlchemy.Equals(masterField, id1), sqlchemy.Equals(slaveField, id2))
|
||||
cond2 := sqlchemy.AND(sqlchemy.Equals(slaveField, id1), sqlchemy.Equals(masterField, id2))
|
||||
q = q.Filter(sqlchemy.OR(cond1, cond2))
|
||||
cond := sqlchemy.AND(sqlchemy.Equals(masterField, masterId), sqlchemy.Equals(slaveField, slaveId))
|
||||
q = q.Filter(cond)
|
||||
count := q.Count()
|
||||
if count > 1 {
|
||||
return nil, sqlchemy.ErrDuplicateEntry
|
||||
|
||||
@@ -18,8 +18,15 @@ var HostwireManager *SHostwireManager
|
||||
|
||||
func init() {
|
||||
db.InitManager(func() {
|
||||
HostwireManager = &SHostwireManager{SHostJointsManager: NewHostJointsManager(SHostwire{},
|
||||
"hostwires_tbl", "hostwire", "hostwires", WireManager)}
|
||||
HostwireManager = &SHostwireManager{
|
||||
SHostJointsManager: NewHostJointsManager(
|
||||
SHostwire{},
|
||||
"hostwires_tbl",
|
||||
"hostwire",
|
||||
"hostwires",
|
||||
WireManager,
|
||||
),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,16 @@ var StoragecachedimageManager *SStoragecachedimageManager
|
||||
|
||||
func init() {
|
||||
db.InitManager(func() {
|
||||
StoragecachedimageManager = &SStoragecachedimageManager{SJointResourceBaseManager: db.NewJointResourceBaseManager(SStoragecachedimage{}, "storagecachedimages_tbl", "storagecachedimage", "storagecachedimages", StoragecacheManager, CachedimageManager)}
|
||||
StoragecachedimageManager = &SStoragecachedimageManager{
|
||||
SJointResourceBaseManager: db.NewJointResourceBaseManager(
|
||||
SStoragecachedimage{},
|
||||
"storagecachedimages_tbl",
|
||||
"storagecachedimage",
|
||||
"storagecachedimages",
|
||||
StoragecacheManager,
|
||||
CachedimageManager,
|
||||
),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user