From e1de34e9ab6cd9e365eadfcf9101772f2783be15 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Mon, 29 Mar 2021 17:39:11 +0800 Subject: [PATCH] fix: vpc public with nat --- pkg/compute/models/vpcs.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index 9861ccbdd2..a78cf25aef 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -1489,6 +1489,16 @@ func (vpc *SVpc) PerformPublic(ctx context.Context, userCred mcclient.TokenCrede } } } + nats, err := vpc.GetNatgateways() + if err != nil { + return nil, errors.Wrapf(err, "vpc.GetNatgateways") + } + for i := range nats { + _, err = nats[i].PerformPublic(ctx, userCred, query, input) + if err != nil { + return nil, errors.Wrapf(err, "nat.PerformPublic") + } + } return nil, nil } @@ -1496,6 +1506,16 @@ func (vpc *SVpc) PerformPrivate(ctx context.Context, userCred mcclient.TokenCred if vpc.Id == "default" { return nil, httperrors.NewForbiddenError("Prohibit making default vpc private") } + nats, err := vpc.GetNatgateways() + if err != nil { + return nil, errors.Wrapf(err, "vpc.GetNatgateways") + } + for i := range nats { + _, err = nats[i].PerformPrivate(ctx, userCred, query, input) + if err != nil { + return nil, errors.Wrapf(err, "nat.PerformPrivate") + } + } // perform private for all emulated wires emptyNets := true wires := vpc.GetWires()