diff --git a/compose/service/namespace.go b/compose/service/namespace.go index c96914813..17354dcd8 100644 --- a/compose/service/namespace.go +++ b/compose/service/namespace.go @@ -519,6 +519,10 @@ func (svc namespace) ImportInit(ctx context.Context, f multipart.File, size int6 } } + if ns == nil { + return NamespaceErrImportMissingNamespace() + } + session.Name = ns.Name session.Slug = ns.Slug namespaceSessionStore[session.SessionID] = session diff --git a/compose/service/namespace_actions.gen.go b/compose/service/namespace_actions.gen.go index 49a20b14b..8e6beb62f 100644 --- a/compose/service/namespace_actions.gen.go +++ b/compose/service/namespace_actions.gen.go @@ -749,6 +749,42 @@ func NamespaceErrUnsupportedImportFormat(mm ...*namespaceActionProps) *errors.Er return e } +// NamespaceErrImportMissingNamespace returns "compose:namespace.importMissingNamespace" as *errors.Error +// +// +// This function is auto-generated. +// +func NamespaceErrImportMissingNamespace(mm ...*namespaceActionProps) *errors.Error { + var p = &namespaceActionProps{} + if len(mm) > 0 { + p = mm[0] + } + + var e = errors.New( + errors.KindInternal, + + p.Format("import source does not contain a namespace", nil), + + errors.Meta("type", "importMissingNamespace"), + errors.Meta("resource", "compose:namespace"), + + // action log entry; no formatting, it will be applied inside recordAction fn. + errors.Meta(namespaceLogMetaKey{}, "could not import namespace; import source does not contain a namespace"), + errors.Meta(namespacePropsMetaKey{}, p), + + // translation namespace & key + errors.Meta(locale.ErrorMetaNamespace{}, "compose"), + errors.Meta(locale.ErrorMetaKey{}, "namespace.errors.importMissingNamespace"), + + errors.StackSkip(1), + ) + + if len(mm) > 0 { + } + + return e +} + // NamespaceErrImportSessionNotFound returns "compose:namespace.importSessionNotFound" as *errors.Error // // diff --git a/compose/service/namespace_actions.yaml b/compose/service/namespace_actions.yaml index 345468444..6675812b2 100644 --- a/compose/service/namespace_actions.yaml +++ b/compose/service/namespace_actions.yaml @@ -91,6 +91,10 @@ errors: message: "unsupported import format" log: "could not import namespace {{namespace}}; unsupported format {{archiveFormat}}" + - error: importMissingNamespace + message: "import source does not contain a namespace" + log: "could not import namespace; import source does not contain a namespace" + - error: importSessionNotFound message: "the import session does not exist" log: "could not import namespace {{namespace}}; the import session does not exist"