mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
MM-53877: fix export config settings (#24167)
* wip test * test and use Export* config correctly
This commit is contained in:
parent
0b3457c672
commit
933b0eb89c
@ -102,10 +102,10 @@ func NewExportFileBackendSettingsFromConfig(fileSettings *model.FileSettings, en
|
|||||||
AmazonS3PathPrefix: *fileSettings.ExportAmazonS3PathPrefix,
|
AmazonS3PathPrefix: *fileSettings.ExportAmazonS3PathPrefix,
|
||||||
AmazonS3Region: *fileSettings.ExportAmazonS3Region,
|
AmazonS3Region: *fileSettings.ExportAmazonS3Region,
|
||||||
AmazonS3Endpoint: *fileSettings.ExportAmazonS3Endpoint,
|
AmazonS3Endpoint: *fileSettings.ExportAmazonS3Endpoint,
|
||||||
AmazonS3SSL: fileSettings.ExportAmazonS3SSL == nil || *fileSettings.AmazonS3SSL,
|
AmazonS3SSL: fileSettings.ExportAmazonS3SSL == nil || *fileSettings.ExportAmazonS3SSL,
|
||||||
AmazonS3SignV2: fileSettings.ExportAmazonS3SignV2 != nil && *fileSettings.AmazonS3SignV2,
|
AmazonS3SignV2: fileSettings.ExportAmazonS3SignV2 != nil && *fileSettings.ExportAmazonS3SignV2,
|
||||||
AmazonS3SSE: fileSettings.ExportAmazonS3SSE != nil && *fileSettings.AmazonS3SSE && enableComplianceFeature,
|
AmazonS3SSE: fileSettings.ExportAmazonS3SSE != nil && *fileSettings.ExportAmazonS3SSE && enableComplianceFeature,
|
||||||
AmazonS3Trace: fileSettings.ExportAmazonS3Trace != nil && *fileSettings.AmazonS3Trace,
|
AmazonS3Trace: fileSettings.ExportAmazonS3Trace != nil && *fileSettings.ExportAmazonS3Trace,
|
||||||
AmazonS3RequestTimeoutMilliseconds: *fileSettings.ExportAmazonS3RequestTimeoutMilliseconds,
|
AmazonS3RequestTimeoutMilliseconds: *fileSettings.ExportAmazonS3RequestTimeoutMilliseconds,
|
||||||
AmazonS3PresignExpiresSeconds: *fileSettings.ExportAmazonS3PresignExpiresSeconds,
|
AmazonS3PresignExpiresSeconds: *fileSettings.ExportAmazonS3PresignExpiresSeconds,
|
||||||
SkipVerify: skipVerify,
|
SkipVerify: skipVerify,
|
||||||
|
@ -18,6 +18,7 @@ import (
|
|||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"github.com/xtgo/uuid"
|
"github.com/xtgo/uuid"
|
||||||
|
|
||||||
|
"github.com/mattermost/mattermost/server/public/model"
|
||||||
"github.com/mattermost/mattermost/server/public/shared/mlog"
|
"github.com/mattermost/mattermost/server/public/shared/mlog"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -618,3 +619,117 @@ func BenchmarkS3WriteFile(b *testing.B) {
|
|||||||
|
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewExportFileBackendSettingsFromConfig(t *testing.T) {
|
||||||
|
t.Run("local filestore", func(t *testing.T) {
|
||||||
|
skipVerify := false
|
||||||
|
enableComplianceFeature := false
|
||||||
|
|
||||||
|
expected := FileBackendSettings{
|
||||||
|
DriverName: driverLocal,
|
||||||
|
Directory: "directory",
|
||||||
|
AmazonS3AccessKeyId: "",
|
||||||
|
AmazonS3SecretAccessKey: "",
|
||||||
|
AmazonS3Bucket: "",
|
||||||
|
AmazonS3PathPrefix: "",
|
||||||
|
AmazonS3Region: "",
|
||||||
|
AmazonS3Endpoint: "",
|
||||||
|
AmazonS3SSL: false,
|
||||||
|
AmazonS3SignV2: false,
|
||||||
|
AmazonS3SSE: false,
|
||||||
|
AmazonS3Trace: false,
|
||||||
|
SkipVerify: false,
|
||||||
|
AmazonS3RequestTimeoutMilliseconds: 0,
|
||||||
|
AmazonS3PresignExpiresSeconds: 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
actual := NewExportFileBackendSettingsFromConfig(&model.FileSettings{
|
||||||
|
ExportDriverName: model.NewString(driverLocal),
|
||||||
|
ExportDirectory: model.NewString("directory"),
|
||||||
|
}, enableComplianceFeature, skipVerify)
|
||||||
|
|
||||||
|
require.Equal(t, expected, actual)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("s3 filestore, disable compliance", func(t *testing.T) {
|
||||||
|
skipVerify := true
|
||||||
|
enableComplianceFeature := false
|
||||||
|
|
||||||
|
expected := FileBackendSettings{
|
||||||
|
DriverName: driverS3,
|
||||||
|
Directory: "",
|
||||||
|
AmazonS3AccessKeyId: "minioaccesskey",
|
||||||
|
AmazonS3SecretAccessKey: "miniosecretkey",
|
||||||
|
AmazonS3Bucket: "mattermost-test",
|
||||||
|
AmazonS3PathPrefix: "prefix",
|
||||||
|
AmazonS3Region: "region",
|
||||||
|
AmazonS3Endpoint: "s3.example.com",
|
||||||
|
AmazonS3SSL: true,
|
||||||
|
AmazonS3SignV2: true,
|
||||||
|
AmazonS3SSE: false,
|
||||||
|
AmazonS3Trace: true,
|
||||||
|
SkipVerify: true,
|
||||||
|
AmazonS3RequestTimeoutMilliseconds: 1000,
|
||||||
|
AmazonS3PresignExpiresSeconds: 60000,
|
||||||
|
}
|
||||||
|
|
||||||
|
actual := NewExportFileBackendSettingsFromConfig(&model.FileSettings{
|
||||||
|
ExportDriverName: model.NewString(driverS3),
|
||||||
|
ExportAmazonS3AccessKeyId: model.NewString("minioaccesskey"),
|
||||||
|
ExportAmazonS3SecretAccessKey: model.NewString("miniosecretkey"),
|
||||||
|
ExportAmazonS3Bucket: model.NewString("mattermost-test"),
|
||||||
|
ExportAmazonS3Region: model.NewString("region"),
|
||||||
|
ExportAmazonS3Endpoint: model.NewString("s3.example.com"),
|
||||||
|
ExportAmazonS3PathPrefix: model.NewString("prefix"),
|
||||||
|
ExportAmazonS3SSL: model.NewBool(true),
|
||||||
|
ExportAmazonS3SignV2: model.NewBool(true),
|
||||||
|
ExportAmazonS3SSE: model.NewBool(true),
|
||||||
|
ExportAmazonS3Trace: model.NewBool(true),
|
||||||
|
ExportAmazonS3RequestTimeoutMilliseconds: model.NewInt64(1000),
|
||||||
|
ExportAmazonS3PresignExpiresSeconds: model.NewInt64(60000),
|
||||||
|
}, enableComplianceFeature, skipVerify)
|
||||||
|
|
||||||
|
require.Equal(t, expected, actual)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("s3 filestore, enable compliance", func(t *testing.T) {
|
||||||
|
skipVerify := true
|
||||||
|
enableComplianceFeature := true
|
||||||
|
|
||||||
|
expected := FileBackendSettings{
|
||||||
|
DriverName: driverS3,
|
||||||
|
Directory: "",
|
||||||
|
AmazonS3AccessKeyId: "minioaccesskey",
|
||||||
|
AmazonS3SecretAccessKey: "miniosecretkey",
|
||||||
|
AmazonS3Bucket: "mattermost-test",
|
||||||
|
AmazonS3PathPrefix: "prefix",
|
||||||
|
AmazonS3Region: "region",
|
||||||
|
AmazonS3Endpoint: "s3.example.com",
|
||||||
|
AmazonS3SSL: true,
|
||||||
|
AmazonS3SignV2: true,
|
||||||
|
AmazonS3SSE: true,
|
||||||
|
AmazonS3Trace: true,
|
||||||
|
SkipVerify: true,
|
||||||
|
AmazonS3RequestTimeoutMilliseconds: 1000,
|
||||||
|
AmazonS3PresignExpiresSeconds: 60000,
|
||||||
|
}
|
||||||
|
|
||||||
|
actual := NewExportFileBackendSettingsFromConfig(&model.FileSettings{
|
||||||
|
ExportDriverName: model.NewString(driverS3),
|
||||||
|
ExportAmazonS3AccessKeyId: model.NewString("minioaccesskey"),
|
||||||
|
ExportAmazonS3SecretAccessKey: model.NewString("miniosecretkey"),
|
||||||
|
ExportAmazonS3Bucket: model.NewString("mattermost-test"),
|
||||||
|
ExportAmazonS3Region: model.NewString("region"),
|
||||||
|
ExportAmazonS3Endpoint: model.NewString("s3.example.com"),
|
||||||
|
ExportAmazonS3PathPrefix: model.NewString("prefix"),
|
||||||
|
ExportAmazonS3SSL: model.NewBool(true),
|
||||||
|
ExportAmazonS3SignV2: model.NewBool(true),
|
||||||
|
ExportAmazonS3SSE: model.NewBool(true),
|
||||||
|
ExportAmazonS3Trace: model.NewBool(true),
|
||||||
|
ExportAmazonS3RequestTimeoutMilliseconds: model.NewInt64(1000),
|
||||||
|
ExportAmazonS3PresignExpiresSeconds: model.NewInt64(60000),
|
||||||
|
}, enableComplianceFeature, skipVerify)
|
||||||
|
|
||||||
|
require.Equal(t, expected, actual)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user