Merge pull request #113 in YUNIONIO/onecloud from ~ZHOUYOUSONG/onecloud:bugfix/yousong-avoid-subquery to release/2.0.0

* commit '3be82ebd540e75a4c690dae9e686c6777f527851':
  guestnetworks, hostnetworks: avoid subquery in get by address call
This commit is contained in:
邱剑
2018-08-25 13:58:57 +08:00
2 changed files with 4 additions and 2 deletions
+2 -1
View File
@@ -263,9 +263,10 @@ func (self *SGuestnetwork) GetJsonDescAtHost(host *SHost) jsonutils.JSONObject {
}
func (manager *SGuestnetworkManager) GetGuestByAddress(address string) *SGuest {
networks := manager.Query().SubQuery()
networks := manager.TableSpec().Instance()
guests := GuestManager.Query()
q := guests.Join(networks, sqlchemy.AND(
sqlchemy.IsFalse(networks.Field("deleted")),
sqlchemy.Equals(networks.Field("ip_addr"), address),
sqlchemy.Equals(networks.Field("guest_id"), guests.Field("id")),
))
+2 -1
View File
@@ -107,9 +107,10 @@ func (man *SHostnetworkManager) GetNetworkByAddress(addr string) *SNetwork {
}
func (man *SHostnetworkManager) GetHostByAddress(addr string) *SHost {
networks := man.Query().SubQuery()
networks := man.TableSpec().Instance()
hosts := HostManager.Query()
q := hosts.Join(networks, sqlchemy.AND(
sqlchemy.IsFalse(networks.Field("deleted")),
sqlchemy.Equals(networks.Field("ip_addr"), addr),
sqlchemy.Equals(networks.Field("baremetal_id"), hosts.Field("id")),
))