独立更新附属容器集群时,当云平台未同步或同步异常时,从数据库获取所需的已同步的主云平台资源信息
()
| 181 | |
| 182 | // 独立更新附属容器集群时,当云平台未同步或同步异常时,从数据库获取所需的已同步的主云平台资源信息 |
| 183 | func (c *Cloud) getOwnDomainResource() model.Resource { |
| 184 | oResource := model.Resource{} |
| 185 | var vpcs []metadbmodel.VPC |
| 186 | err := c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&vpcs).Error |
| 187 | if err != nil { |
| 188 | log.Errorf("get own domain resource vpc failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 189 | return oResource |
| 190 | } |
| 191 | vpcIDToLcuuid := map[int]string{} |
| 192 | for _, vpc := range vpcs { |
| 193 | vpcIDToLcuuid[vpc.ID] = vpc.Lcuuid |
| 194 | } |
| 195 | |
| 196 | var vms []metadbmodel.VM |
| 197 | err = c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&vms).Error |
| 198 | if err != nil { |
| 199 | log.Errorf("get own domain resource vm failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 200 | return oResource |
| 201 | } |
| 202 | |
| 203 | var vinterfaces []metadbmodel.VInterface |
| 204 | err = c.db.DB.Select("id", "lcuuid", "iftype", "mac", "devicetype", "deviceid", "region").Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&vinterfaces).Error |
| 205 | if err != nil { |
| 206 | log.Errorf("get own domain resource vinterface failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 207 | return oResource |
| 208 | } |
| 209 | |
| 210 | var wanIPs []metadbmodel.WANIP |
| 211 | err = c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&wanIPs).Error |
| 212 | if err != nil { |
| 213 | log.Errorf("get own domain resource wan ip failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 214 | return oResource |
| 215 | } |
| 216 | |
| 217 | var lanIPs []metadbmodel.LANIP |
| 218 | err = c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&lanIPs).Error |
| 219 | if err != nil { |
| 220 | log.Errorf("get own domain resource lan ip failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 221 | return oResource |
| 222 | } |
| 223 | |
| 224 | var networks []metadbmodel.Network |
| 225 | err = c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid, "sub_domain": ""}).Find(&networks).Error |
| 226 | if err != nil { |
| 227 | log.Errorf("get own domain resource network failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 228 | return oResource |
| 229 | } |
| 230 | |
| 231 | var subnets []metadbmodel.Subnet |
| 232 | err = c.db.DB.Where(map[string]interface{}{"domain": c.basicInfo.Lcuuid}).Find(&subnets).Error |
| 233 | if err != nil { |
| 234 | log.Errorf("get own domain resource subnet failed: (%s)", err.Error(), logger.NewORGPrefix(c.orgID)) |
| 235 | return oResource |
| 236 | } |
| 237 | |
| 238 | vmIDToVM := map[int]model.VM{} |
| 239 | for _, vm := range vms { |
| 240 | vpcLcuuid, ok := vpcIDToLcuuid[vm.VPCID] |