mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Merge pull request #5436 from swordqiu/hotfix/qj-remove-manager-cloudregion-id
fix: sql query errors for missing manager_id and cloudregion_id
This commit is contained in:
@@ -191,9 +191,12 @@ func (self *SCloudregion) GetDBInstanceBackups(provider *SCloudprovider, instanc
|
||||
func (self *SCloudregion) GetElasticcaches(provider *SCloudprovider) ([]SElasticcache, error) {
|
||||
instances := []SElasticcache{}
|
||||
// .IsFalse("pending_deleted")
|
||||
q := ElasticcacheManager.Query().Equals("cloudregion_id", self.Id)
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
q := ElasticcacheManager.Query()
|
||||
q = q.Join(vpcs, sqlchemy.Equals(q.Field("vpc_id"), vpcs.Field("id")))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("cloudregion_id"), self.Id))
|
||||
if provider != nil {
|
||||
q = q.Equals("manager_id", provider.Id)
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("manager_id"), provider.Id))
|
||||
}
|
||||
err := db.FetchModelObjects(ElasticcacheManager, q, &instances)
|
||||
if err != nil {
|
||||
|
||||
@@ -590,7 +590,12 @@ func (lb *SLoadbalancer) Delete(ctx context.Context, userCred mcclient.TokenCred
|
||||
|
||||
func (man *SLoadbalancerManager) getLoadbalancersByRegion(region *SCloudregion, provider *SCloudprovider) ([]SLoadbalancer, error) {
|
||||
lbs := []SLoadbalancer{}
|
||||
q := man.Query().Equals("cloudregion_id", region.Id).Equals("manager_id", provider.Id).IsFalse("pending_deleted")
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
q := man.Query()
|
||||
q = q.Join(vpcs, sqlchemy.Equals(q.Field("vpc_id"), vpcs.Field("id")))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("cloudregion_id"), region.Id))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("manager_id"), provider.Id))
|
||||
q = q.IsFalse("pending_deleted")
|
||||
if err := db.FetchModelObjects(man, q, &lbs); err != nil {
|
||||
log.Errorf("failed to get lbs for region: %v provider: %v error: %v", region, provider, err)
|
||||
return nil, err
|
||||
@@ -914,7 +919,12 @@ func (manager *SLoadbalancerManager) GetResourceCount() ([]db.SProjectResourceCo
|
||||
|
||||
func (manager *SLoadbalancerManager) FetchByExternalId(providerId string, extId string) (*SLoadbalancer, error) {
|
||||
ret := []SLoadbalancer{}
|
||||
q := manager.Query().Equals("manager_id", providerId).Equals("external_id", extId)
|
||||
vpcs := VpcManager.Query().SubQuery()
|
||||
q := manager.Query()
|
||||
q = q.Join(vpcs, sqlchemy.Equals(q.Field("vpc_id"), vpcs.Field("id")))
|
||||
q = q.Filter(sqlchemy.Equals(vpcs.Field("manager_id"), providerId))
|
||||
q = q.Equals("external_id", extId)
|
||||
q = q.IsFalse("pending_deleted")
|
||||
err := db.FetchModelObjects(manager, q, &ret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -100,17 +100,19 @@ func GetModels(opts *GetModelsOptions) error {
|
||||
return newTime, nil
|
||||
}
|
||||
|
||||
isManaged := false
|
||||
listOptions := options.BaseListOptions{
|
||||
Admin: options.Bool(true),
|
||||
Details: options.Bool(true),
|
||||
Filter: []string{
|
||||
minUpdatedAtFilter(minUpdatedAt), // order matters, filter.0
|
||||
"manager_id.isnullorempty()", // len(manager_id) > 0 is for pubcloud objects
|
||||
// "manager_id.isnullorempty()", // len(manager_id) > 0 is for pubcloud objects
|
||||
},
|
||||
OrderBy: []string{"updated_at", "id"},
|
||||
Order: "asc",
|
||||
Limit: options.Int(opts.BatchListSize),
|
||||
Offset: options.Int(0),
|
||||
OrderBy: []string{"updated_at", "id"},
|
||||
Order: "asc",
|
||||
IsManaged: &isManaged,
|
||||
Limit: options.Int(opts.BatchListSize),
|
||||
Offset: options.Int(0),
|
||||
}
|
||||
if !minUpdatedAt.Equal(PseudoZeroTime) {
|
||||
// Only fetching pending deletes when we are doing incremental fetch
|
||||
|
||||
Reference in New Issue
Block a user