[MM-59350] Include LDAP vendor errors in Support Packet (#27571)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
9bb22a369a
Коммит
bbc8baac0a
@@ -123,8 +123,19 @@ func (a *App) generateSupportPacketYaml(c request.CTX) (*model.FileData, error)
|
|||||||
/* LDAP */
|
/* LDAP */
|
||||||
|
|
||||||
var vendorName, vendorVersion string
|
var vendorName, vendorVersion string
|
||||||
if ldapInterface := a.Ldap(); ldapInterface != nil {
|
ldap := a.Ldap()
|
||||||
vendorName, vendorVersion = ldapInterface.GetVendorNameAndVendorVersion(c)
|
if ldap != nil {
|
||||||
|
vendorName, vendorVersion, err = ldap.GetVendorNameAndVendorVersion(c)
|
||||||
|
if err != nil {
|
||||||
|
rErr = multierror.Append(errors.Wrap(err, "error while getting LDAP vendor info"))
|
||||||
|
}
|
||||||
|
|
||||||
|
if vendorName == "" {
|
||||||
|
vendorName = "unknown"
|
||||||
|
}
|
||||||
|
if vendorVersion == "" {
|
||||||
|
vendorVersion = "unknown"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Elastic Search */
|
/* Elastic Search */
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/mock"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
|
|
||||||
@@ -16,6 +17,7 @@ import (
|
|||||||
"github.com/mattermost/mattermost/server/v8/channels/app/platform"
|
"github.com/mattermost/mattermost/server/v8/channels/app/platform"
|
||||||
smocks "github.com/mattermost/mattermost/server/v8/channels/store/storetest/mocks"
|
smocks "github.com/mattermost/mattermost/server/v8/channels/store/storetest/mocks"
|
||||||
"github.com/mattermost/mattermost/server/v8/config"
|
"github.com/mattermost/mattermost/server/v8/config"
|
||||||
|
emocks "github.com/mattermost/mattermost/server/v8/einterfaces/mocks"
|
||||||
fmocks "github.com/mattermost/mattermost/server/v8/platform/shared/filestore/mocks"
|
fmocks "github.com/mattermost/mattermost/server/v8/platform/shared/filestore/mocks"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -46,7 +48,7 @@ func TestGenerateSupportPacketYaml(t *testing.T) {
|
|||||||
defer th.TearDown()
|
defer th.TearDown()
|
||||||
|
|
||||||
licenseUsers := 100
|
licenseUsers := 100
|
||||||
license := model.NewTestLicense()
|
license := model.NewTestLicense("ldap")
|
||||||
license.Features.Users = model.NewInt(licenseUsers)
|
license.Features.Users = model.NewInt(licenseUsers)
|
||||||
th.App.Srv().SetLicense(license)
|
th.App.Srv().SetLicense(license)
|
||||||
|
|
||||||
@@ -148,6 +150,34 @@ func TestGenerateSupportPacketYaml(t *testing.T) {
|
|||||||
assert.Equal(t, "mock", packet.FileDriver)
|
assert.Equal(t, "mock", packet.FileDriver)
|
||||||
assert.Equal(t, "FAIL: all broken", packet.FileStatus)
|
assert.Equal(t, "FAIL: all broken", packet.FileStatus)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("no LDAP vendor info", func(t *testing.T) {
|
||||||
|
ldapMock := &emocks.LdapInterface{}
|
||||||
|
ldapMock.On(
|
||||||
|
"GetVendorNameAndVendorVersion",
|
||||||
|
mock.AnythingOfType("*request.Context"),
|
||||||
|
).Return("", "", nil)
|
||||||
|
th.App.Channels().Ldap = ldapMock
|
||||||
|
|
||||||
|
packet := generateSupportPacket(t)
|
||||||
|
|
||||||
|
assert.Equal(t, "unknown", packet.LdapVendorName)
|
||||||
|
assert.Equal(t, "unknown", packet.LdapVendorVersion)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("found LDAP vendor info", func(t *testing.T) {
|
||||||
|
ldapMock := &emocks.LdapInterface{}
|
||||||
|
ldapMock.On(
|
||||||
|
"GetVendorNameAndVendorVersion",
|
||||||
|
mock.AnythingOfType("*request.Context"),
|
||||||
|
).Return("some vendor", "v1.0.0", nil)
|
||||||
|
th.App.Channels().Ldap = ldapMock
|
||||||
|
|
||||||
|
packet := generateSupportPacket(t)
|
||||||
|
|
||||||
|
assert.Equal(t, "some vendor", packet.LdapVendorName)
|
||||||
|
assert.Equal(t, "v1.0.0", packet.LdapVendorVersion)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGenerateSupportPacket(t *testing.T) {
|
func TestGenerateSupportPacket(t *testing.T) {
|
||||||
|
|||||||
@@ -26,5 +26,5 @@ type LdapInterface interface {
|
|||||||
UpdateProfilePictureIfNecessary(request.CTX, model.User, model.Session)
|
UpdateProfilePictureIfNecessary(request.CTX, model.User, model.Session)
|
||||||
GetADLdapIdFromSAMLId(c request.CTX, authData string) string
|
GetADLdapIdFromSAMLId(c request.CTX, authData string) string
|
||||||
GetSAMLIdFromADLdapId(c request.CTX, authData string) string
|
GetSAMLIdFromADLdapId(c request.CTX, authData string) string
|
||||||
GetVendorNameAndVendorVersion(rctx request.CTX) (string, string)
|
GetVendorNameAndVendorVersion(rctx request.CTX) (string, string, error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ func (_m *LdapInterface) GetUserAttributes(rctx request.CTX, id string, attribut
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetVendorNameAndVendorVersion provides a mock function with given fields: rctx
|
// GetVendorNameAndVendorVersion provides a mock function with given fields: rctx
|
||||||
func (_m *LdapInterface) GetVendorNameAndVendorVersion(rctx request.CTX) (string, string) {
|
func (_m *LdapInterface) GetVendorNameAndVendorVersion(rctx request.CTX) (string, string, error) {
|
||||||
ret := _m.Called(rctx)
|
ret := _m.Called(rctx)
|
||||||
|
|
||||||
if len(ret) == 0 {
|
if len(ret) == 0 {
|
||||||
@@ -338,7 +338,8 @@ func (_m *LdapInterface) GetVendorNameAndVendorVersion(rctx request.CTX) (string
|
|||||||
|
|
||||||
var r0 string
|
var r0 string
|
||||||
var r1 string
|
var r1 string
|
||||||
if rf, ok := ret.Get(0).(func(request.CTX) (string, string)); ok {
|
var r2 error
|
||||||
|
if rf, ok := ret.Get(0).(func(request.CTX) (string, string, error)); ok {
|
||||||
return rf(rctx)
|
return rf(rctx)
|
||||||
}
|
}
|
||||||
if rf, ok := ret.Get(0).(func(request.CTX) string); ok {
|
if rf, ok := ret.Get(0).(func(request.CTX) string); ok {
|
||||||
@@ -353,7 +354,13 @@ func (_m *LdapInterface) GetVendorNameAndVendorVersion(rctx request.CTX) (string
|
|||||||
r1 = ret.Get(1).(string)
|
r1 = ret.Get(1).(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
return r0, r1
|
if rf, ok := ret.Get(2).(func(request.CTX) error); ok {
|
||||||
|
r2 = rf(rctx)
|
||||||
|
} else {
|
||||||
|
r2 = ret.Error(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
return r0, r1, r2
|
||||||
}
|
}
|
||||||
|
|
||||||
// MigrateIDAttribute provides a mock function with given fields: c, toAttribute
|
// MigrateIDAttribute provides a mock function with given fields: c, toAttribute
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user