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,
|
||||
AmazonS3Region: *fileSettings.ExportAmazonS3Region,
|
||||
AmazonS3Endpoint: *fileSettings.ExportAmazonS3Endpoint,
|
||||
AmazonS3SSL: fileSettings.ExportAmazonS3SSL == nil || *fileSettings.AmazonS3SSL,
|
||||
AmazonS3SignV2: fileSettings.ExportAmazonS3SignV2 != nil && *fileSettings.AmazonS3SignV2,
|
||||
AmazonS3SSE: fileSettings.ExportAmazonS3SSE != nil && *fileSettings.AmazonS3SSE && enableComplianceFeature,
|
||||
AmazonS3Trace: fileSettings.ExportAmazonS3Trace != nil && *fileSettings.AmazonS3Trace,
|
||||
AmazonS3SSL: fileSettings.ExportAmazonS3SSL == nil || *fileSettings.ExportAmazonS3SSL,
|
||||
AmazonS3SignV2: fileSettings.ExportAmazonS3SignV2 != nil && *fileSettings.ExportAmazonS3SignV2,
|
||||
AmazonS3SSE: fileSettings.ExportAmazonS3SSE != nil && *fileSettings.ExportAmazonS3SSE && enableComplianceFeature,
|
||||
AmazonS3Trace: fileSettings.ExportAmazonS3Trace != nil && *fileSettings.ExportAmazonS3Trace,
|
||||
AmazonS3RequestTimeoutMilliseconds: *fileSettings.ExportAmazonS3RequestTimeoutMilliseconds,
|
||||
AmazonS3PresignExpiresSeconds: *fileSettings.ExportAmazonS3PresignExpiresSeconds,
|
||||
SkipVerify: skipVerify,
|
||||
|
@ -18,6 +18,7 @@ import (
|
||||
"github.com/stretchr/testify/suite"
|
||||
"github.com/xtgo/uuid"
|
||||
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/mlog"
|
||||
)
|
||||
|
||||
@ -618,3 +619,117 @@ func BenchmarkS3WriteFile(b *testing.B) {
|
||||
|
||||
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