diff --git a/pkg/cloudcommon/db/infraresource.go b/pkg/cloudcommon/db/infraresource.go index c0cacae6e2..36dcc12e1b 100644 --- a/pkg/cloudcommon/db/infraresource.go +++ b/pkg/cloudcommon/db/infraresource.go @@ -195,7 +195,8 @@ func (model *SInfrasResourceBase) PerformChangeOwner( } func (model *SInfrasResourceBase) CustomizeCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) error { - SharableModelCustomizeCreate(model.GetIInfrasModel(), ctx, userCred, ownerId, query, data) + // 避免domain_id为空导致异常 + defer SharableModelCustomizeCreate(model.GetIInfrasModel(), ctx, userCred, ownerId, query, data) return model.SDomainLevelResourceBase.CustomizeCreate(ctx, userCred, ownerId, query, data) } diff --git a/pkg/compute/models/networks.go b/pkg/compute/models/networks.go index 08bbc90c9c..e804408fae 100644 --- a/pkg/compute/models/networks.go +++ b/pkg/compute/models/networks.go @@ -2346,10 +2346,10 @@ func (net *SNetwork) PostCreate(ctx context.Context, userCred mcclient.TokenCred if vpc != nil && vpc.IsManaged() { task, err := taskman.TaskManager.NewTask(ctx, "NetworkCreateTask", net, userCred, data.(*jsonutils.JSONDict), "", "", nil) if err != nil { - log.Errorf("networkcreateTask create fail: %s", err) - } else { - task.ScheduleRun(nil) + net.SetStatus(ctx, userCred, apis.STATUS_CREATE_FAILED, err.Error()) + return } + task.ScheduleRun(nil) } else { { err := net.syncAdditionalWires(ctx, nil) @@ -2361,6 +2361,10 @@ func (net *SNetwork) PostCreate(ctx context.Context, userCred mcclient.TokenCred if err := net.ClearSchedDescCache(); err != nil { log.Errorf("network post create clear schedcache error: %v", err) } + notifyclient.EventNotify(ctx, userCred, notifyclient.SEventNotifyParam{ + Obj: net, + Action: notifyclient.ActionCreate, + }) } // reserve gateway IP { diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index db5a01a6e7..1671dbf5b3 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -1025,6 +1025,10 @@ func (svpc *SVpc) PostCreate(ctx context.Context, userCred mcclient.TokenCredent }() if len(svpc.ManagerId) == 0 { + notifyclient.EventNotify(ctx, userCred, notifyclient.SEventNotifyParam{ + Obj: svpc, + Action: notifyclient.ActionCreate, + }) return } task, err := taskman.TaskManager.NewTask(ctx, "VpcCreateTask", svpc, userCred, nil, "", "", nil)