aws create with eip fix

This commit is contained in:
tangbin
2020-02-06 17:05:55 +08:00
parent bd2d11f964
commit fdad1303bc

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())
}
}
}
}