Merge pull request #5037 from tb365/automated-cherry-pick-of-#5032-upstream-release-3.1

Automated cherry pick of #5032: aws create with eip fix
This commit is contained in:
yunion-ci-robot
2020-02-07 04:49:50 +08:00
committed by GitHub
+8 -5
View File
@@ -149,15 +149,18 @@ func (self *SAwsGuestDriver) GetDeployStatus() ([]string, error) {
func (self *SAwsGuestDriver) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, input *api.ServerCreateInput) (*api.ServerCreateInput, error) {
if len(input.Eip) > 0 || input.EipBw > 0 {
if len(input.Networks) > 0 {
// 未明确指定network时,由调度器进行调度,跳过support_eip检查
if len(input.Networks) > 0 && len(input.Networks[0].Network) > 0 {
inetwork, err := db.FetchByIdOrName(models.NetworkManager, userCred, input.Networks[0].Network)
if err != nil {
return nil, err
return nil, errors.Wrap(err, "SAwsGuestDriver.ValidateCreateData.Networks.FetchByIdOrName")
}
support_eip := inetwork.(*models.SNetwork).GetMetadataJson("support_eip", nil)
if ok, _ := support_eip.Bool(); !ok {
return nil, httperrors.NewInputParameterError("network %s associated route table has no internet gateway attached.", inetwork.GetName())
support_eip := inetwork.(*models.SNetwork).GetMetadataJson("ext:support_eip", nil)
if support_eip != nil {
if ok, _ := support_eip.Bool(); !ok {
return nil, httperrors.NewInputParameterError("network %s associated route table has no internet gateway attached.", inetwork.GetName())
}
}
}
}