Commit Graph

12183 Commits

Author SHA1 Message Date
Mario de Frutos Dieguez
b162cf92cd MM-21976: Include cache layer to be tested (#13749) 2020-03-04 14:18:03 +01:00
Jesús Espino
c9a0418a32 Making private some methods that are not needed publicly (#13959)
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-03 22:43:48 +01:00
Jesús Espino
ccc57e56c3 MM-22235: Fixing stop/start behavior on Elasticsearch engine (#13887)
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-04 00:52:59 +08:00
upwell
058f235050 [GH-13931] Return error in parseDSN func #13931 (#13947)
Automatic Merge
2020-03-03 11:42:17 -05:00
Jesús Espino
25e8eb9eef Documenting sql store license methods (#13896)
* Documenting sql store license methods

* Update store/sqlstore/license_store.go

Co-Authored-By: Justine Geffen <justinegeffen@users.noreply.github.com>

* Update store/sqlstore/license_store.go

Co-Authored-By: Justine Geffen <justinegeffen@users.noreply.github.com>

* Update store/sqlstore/license_store.go

Co-Authored-By: Justine Geffen <justinegeffen@users.noreply.github.com>

* Addressing PR comments

* Update store/sqlstore/license_store.go

Co-Authored-By: Justine Geffen <justinegeffen@users.noreply.github.com>

Co-authored-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-03 15:51:18 +01:00
Patryk Pomykalski
662eef6881 Cache test users to speed up testing (#13741)
* Cache test users to speed up testing

Users were recreated for many tests and hashing passwords takes a lot of
time. Testing /api4 takes around 120s less and /app 60s less.

* fix build

* simplifying a bit the approach

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Jesús Espino <jespinog@gmail.com>
2020-03-03 14:19:54 +01:00
Mario de Frutos Dieguez
89f4e9d7ef Metrics operations shouldn't be inside goroutine (#13950)
Metrics operations are done in memory so there is no need
to spawn a new goroutine
2020-03-03 16:23:32 +05:30
Jesús Espino
2a5d30f8f3 Making private some sqlstore methods (#13895)
* Making private some sqlstore methods

* Calling for create indexes on missing stores

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-03 11:45:49 +01:00
Farhan Munshi
aec606500f [MM-22622] Add Ephemeral response when using mentions without permissions (#13902)
* MM-22282 Add Ephemeral response when using mentions without permission and add new prop to disable mention highlights on client

* MM-22622 Make test name test actually what it does and fix comment style

* MM-22622 Check ephemeral post created when post create with mentions on API

* MM-22622 More tests for App>CreatePost

* MM-22622 Make DisableMentionHighlights more concise and rename ephemeral post

* MM-22622 Dont send ephemeral message for system message created by user

* Trigger build
2020-03-03 15:52:49 +05:30
Jason Frerich
4c7fee7ac8 [MM-22485] Sync bot message to message displayed in webapp (#13867)
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-02 15:57:29 -06:00
Mario de Frutos Dieguez
a43439dd60 Include deleted channels on get user channels endpoint (#13877) 2020-03-02 22:15:15 +01:00
Elisabeth Kulzer
8f0bedf9c9 Fix triggering the release logic on a branch with release in its name. (#13915)
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-02 22:01:45 +01:00
ABDUL SATTAR MAPARA
e6d216090b MM-22679 - Update example plugin documentation (#13944)
Automatic Merge
2020-03-02 14:22:48 -05:00
Mario de Frutos Dieguez
9742a0595d Include Mutex for Hubs property (#13917)
Hubs property has been detected by the race condition detector
as a possible one because we could set the Hubs variable
and also we're spawning goroutines that could ask for that property

This condition is not happening right now because we're setting the
Hubs variable in the server start and after that, we're spawning the
goroutines but the tests are failing because of this and in the future
this could be a problem
2020-03-02 19:37:57 +01:00
Agniva De Sarker
a981099652 Add error checks to TestUnlinkGroupTeam (#13956)
I could not figure out the actual root cause for this.

But a possible area of concern is that somewhere in the call stack,
the login failed partially. Therefore, the session did not have the teamMembers
populated. And the permission check failed therefore.

Adding the error checks should let us know in future if this is not the case.

Another possible case is the app.ClearTeamMembersCache which gets called in
the goroutine app.SyncRolesAndMembership. If this races with the session,
then it's possible that the teamMember is wiped off from the session. But this
happens after the permission check. So it's not very likely.

Also, while we are here, I found that (*app).ClearTeamMembersCache
does not log the internal error bubbled up. This prevents us from understanding
what actually happened. Added that logging.
2020-03-03 00:04:39 +05:30
Jesús Espino
7035e09fe9 Adding changes to separate unit tests and integration tests (#13670)
* Introducing unit (not integration) tests for the app layer

* Initial support for unit tests at the API

* Adding unit tests support to the store layer

* Add unit tests support in commands

* Adding last tests needed for run unit tests properly

* Fixing govet

* Removing some duplication

* Fixing tests

* Fixing tests

* Not compiling test helpers with the main module for api

* Revert "Not compiling test helpers with the main module for api"

This reverts commit 36a199bbe0.

* Fixing tests

* Fixing unit tests

* More consistency between api4/apiteslib.go and app/helper_test.go

* Renaming things to make more obvious the new Setup functions purpose

* Reverting change in go.sum

* Start with empty mock for app layer

* Start with empty mock for api layer

* Start with empty mock for web layer

* Renaming SetupWithStoreMockConfig to SetupConfigWithStoreMock

* Fixing tests on web package

* Removing unnecesary function
2020-03-02 08:13:39 -08:00
JtheBAB
cd36c9f041 MM-22355 - Fix typos detected by goreportcad.com (#13842)
* Update webhook_test.go

* Update user_test.go

* Update filesstore_test.go

* Update plugin_requests.go

* Update syncables.go

* Update helper.go

* Update html_entities.go

* Update user.go

* Update team.go

* Update notification.go

* Update notification_test.go

* Update plugin_api_test.go

* Update post_metadata.go

* Update channel_test.go

* Update database.go

* Update channel.go

* Update user_store.go

* Update team_test.go

* revert andd

* Revert back to infintie

Co-authored-by: Jesús Espino <jespinog@gmail.com>
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-03-02 17:10:40 +01:00
Miguel de la Cruz
98ccc1ccf5 [MM-22572] Modify get user by email route to accept the / character in the email (#13897)
Automatic Merge
2020-03-01 13:52:16 -05:00
Jesús Espino
69b29476d5 Running tests in mysql and postgres (#13832)
* Running tests in mysql and postgres

* Fixing ci

* Fixing ci

* Fixing ci

* Fixing ci

* Fixing ci

* Fixing ci

* Fixing ci

* Fixing ci

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-28 18:50:22 +01:00
Mario de Frutos Dieguez
75197d291a Added Websocket's broadcast queue load metrics (#13935)
Now we send metrics when the websocket's broadcast queue receive or
consume a message from the queue
2020-02-28 11:44:56 +01:00
Jesse Hallam
b07898b8a2 Improved kv testing (#13943)
* actually use doer in doTestPluginSaveOrUpdate

* handle off-by-1000ms in KVSetWithOptions
2020-02-27 19:28:14 -04:00
Agniva De Sarker
5c9ffd00ae Clean localcache/layer.go (#13949)
Insert appropriate spaces and comments where needed.
2020-02-27 21:20:46 +05:30
Arianna Vespri
146afedd51 Add output indicating success for restore channel command (#13802)
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-27 09:15:21 -05:00
Agniva De Sarker
376ec9e0e3 Remove unnecessary struct2interface dependency (#13929)
* Remove unnecessary struct2interface dependency

Running go mod tidy on the repo removes it.
This was also preventing 1.14beta from running the repo,
because now it verifies modules.txt with go.mod, which had a mismatch.

* fixing CI

* Fix test-server target

* Fix some discrepancies in vendor

* Removing the Makefile target for now

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-27 09:46:13 +05:30
Agniva De Sarker
2835163b18 Fix flaky TestPlugin (#13933)
- Fix panic due to not checking for JSON marshal error
- Reorder the FileExists check which would fail if we were to pass
the -short flag to bypass the slow URL test. In which case, the plugin
would have been removed from the filesystem.
So we move the check before we remove the plugin.

https://mattermost.atlassian.net/browse/MM-22666
2020-02-26 15:11:24 +01:00
Hossein Ahmadian-Yazdi
4587913b49 [MM-22071] Allow fetch all groups as a system admin (#13866)
* Merge upstream

* allow fetch all groups

* Delete report.xml

* update i18n stuffz

* fix test cases

* fix bug

Co-authored-by: Jason Paul Deland <9366595+jaydeland@users.noreply.github.com>
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-24 16:23:58 +05:30
Jesse Hallam
17f2cd665d MM-21672: KVCompareAndSet improvements (#13858)
* allow ExpireInSeconds < 0

Allow `ExpireInSeconds < 0` for use with `KVSetWithOptions`. While this has no practical use in reality, it's much easier to thoroughly unit tests the underlying functionality if we can match the semantics of CompareAndSet. Strictly speaking, this is a breaking change, but not relative to the advertised semantics. Anyway, it's also not entirely unreasonable to treat a negative `ExpireInSeconds` as having already expired vs. marking it as never expired.

* updated tests, to break apart

* honour expiry in CompareAndSet

* honour expiry in CompareAndDelete

* honour expiry in List

* fail unique constraint exception for SaveOrUpdate

A unique constraint error on a `SaveOrUpdate` should not be ignored: we did not save or update the requested value, as someone else managed to write the record first.

Note this is handled differently in `CompareAndSet`, where we correctly swallow the error and return `false` to indicate we did not successfully save the value.

* unexport DEFAULT_PLUGIN_KEY_FETCH_LIMIT

* s/InternalServerError/BadRequest/ for failed SaveOrUpdate

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-18 16:32:46 -04:00
catalintomai
2ec03766a2 MM-22372: fix unhandled exception when exporting to CSV. (#13864)
* MM-23272: fix unhandled exception

* MM-22372: removed extra log command

* MM-22372: fix merge conflict
2020-02-18 23:29:44 +05:30
Rajat Varyani
fdb339fbd7 [MM-20941] Parallelize plugin loading on startup (#13617)
* [MM-20941] Parallelize plugin loading on startup

* [MM-20941] Parallelize plugin SyncPlugins

* [MM-20941] Make activation and deactivation of plugin concurrent

* [MM-20941] Remove uncessary optimization

This reverts commit aad2680aec.

[MM-20941] Remove uncessary wait in SyncPlugins

[MM-20941] Parallelize processing of prepackaged plugins

* [MM-20941] Fix lint issue

* [MM-20941] Fix bug for getting the number of plugins to process

* [MM-20941] Use buffered channel and fix return issue in prepackaged plugin processing

* [MM-20941] Implement feedback

* [MM-20941] Fix looping over channel for plugins

* [MM-20941] Retain signature of process plugin

* [MM-20941] Fix function documentation

* [MM-20941] Fix bug to pass the plugin path in anonymous function

* [MM-20941] Rename variable

* [MM-20941] Make minor changes in variable naming

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-17 18:30:48 -04:00
Doug Clark
6377bfef35 GH-12936 Add KVListWithOptions function to plugin.Helpers (#13576)
Automatic Merge
2020-02-17 15:44:34 -05:00
Eli Yukelzon
53e07a68f5 fixing a screwup (#13906)
Automatic Merge
2020-02-17 03:44:34 -05:00
Martin Kraft
0564cc4271 MM-21150: Re-create the workers so that the EE workers are non-nil up… (#13523)
* MM-21150: Re-create the workers so that the EE workers are non-nil upon uploading a license.

* MM-21150: Updates from Srv field to method.

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-16 11:07:25 -05:00
Jesse Hallam
9a51c73f64 MM-22619: check for nil plugins environment (#13901)
* MM-22619: check for nil plugins environment

Check if plugins were disabled before attempting to collect metrics and emit telemetry for same.

Fixes: https://mattermost.atlassian.net/browse/MM-22619

* Update app/diagnostics_test.go
2020-02-15 17:46:26 -05:00
Agniva De Sarker
bd487418f7 golangci: bring back the unused linter (#13826)
https://github.com/golangci/golangci-lint/issues/885 is fixed wth 1.23.3.
We can now bring back unused.
2020-02-15 10:53:16 -05:00
Ali Farooq
bd9d674006 Fixing master (#13900)
* updating api_timer_layer_generated.go

* Fixing GetFileInfos

* Fixing TestPluginAPIGetFileInfos

* Remove file.go.orig
2020-02-14 18:08:00 -05:00
Ali Farooq
e4fb5791b0 MM-21626, MM-21627 - Plugin API/Hooks Prometheus instrumentati… (#13825)
* MM-21626,MM-21627 - Plugin API/Hooks Prometheus instrumentation

* Updated einterface mocks

* Fixed supervisor tests

* ignoring golint errors for plugin metrics wrappers

* Making golangci happy

* Using variadic form when generating wrapper code

* Removed artificial delay

* Removed comments from tests

* Renaming plugin wrappers to api/hooks_timer_layer

* updating vendor dir and mod files

* Recording plugin api/hook responses in prometheus

* Updated einterfaces-mocks

* Updating go sum

* Updating go sum

* Fixing conflicts

* More conflicts fixing

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-14 15:47:43 -05:00
Jesse Hallam
7da85922af fix bin/mmctl detection using printf (#13898)
The behaviour of `echo` [varies](https://stackoverflow.com/questions/8467424/echo-newline-in-bash-prints-literal-n) between operating systems. Use `printf` for maximum compatibility.
2020-02-14 15:45:32 -05:00
Ashish Bhate
3fc5287f6b MM-17912: Allow searching for files through plugin API (#13647)
* constants and options for getting files

* Method to get files with options

* Add i18n strings for en

* Add API methods for getting files with options

* gofmt -s file

* explicitly set create at in tests

* use greater than nanosecond time difference for tests

* use gte instead of gt for getting files by created time

* use created at time as default sort order for getting file infos

* use explicit inline strings instead of format strings

* join tables only when required

* use if as secondary sort, and update tests

* update field docs to reflect previous changes

* make page and perPage get options as required

* add json struct tags to GetFileOptions

* bump minimum server versioni

* remove sorting by username and channelname

* use bool for sort order type

* use FileInfo prefix instead of just File

* clearer comments

* use zero-based page numbering

* test filtering by user and channel

* remove unnecessary whitespace

* use int instead of uint for page and perPage arguments

Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-14 16:21:54 -04:00
catalintomai
ed52acd89c MM-18062 - add support for Office365Settings Directory (tenant) Id (#13737)
* MM-18062 add directory id field to O365 settings
2020-02-14 09:55:40 -08:00
Joram Wilander
dd1c8c22dc Fix panic when receiving a config to update to if some settings are not set (#13889) 2020-02-13 14:26:57 -05:00
Miguel de la Cruz
5f7b5686a8 Adds tFatal custom govet check (#13886)
Automatic Merge
2020-02-13 12:51:36 -05:00
Miguel de la Cruz
84f45634a8 Remove remaining t.Fatal from the codebase (#13876)
* Remove remaining t.Fatal from the codebase

* Fix job_store test

* Address review comments

* Remove comments
2020-02-13 17:53:23 +01:00
Eli Yukelzon
17523fa5d9 MM-21898 - Part 1: Generate and use an interface instead of *A… (#13840)
* Generate and use an interface instead of *App
2020-02-13 13:26:58 +01:00
Jesús Espino
66fc096768 MM-22340: Fixing flaky tests around Team name validation (#13875)
* MM-22340: Fixing flaky tests around Team name validation

* Fixing other cases where can happend the flaky tests
2020-02-13 09:36:21 +01:00
Jason Blais
35ac2629e2 Add missing "AutomaticPrepackagedPlugins" to diagnostics.go (#13868) 2020-02-12 17:52:15 -04:00
Jason Frerich
0a80e63668 Bump zoom plugin version to v1.3.0 (#13836)
Co-authored-by: Ali Farooq <ali.farooq0@pm.me>
Co-authored-by: mattermod <mattermod@users.noreply.github.com>
2020-02-12 11:46:39 -06:00
Farhan Munshi
897715f883 [MM-21919] Add use_channel_mentions permission (#13781)
* MM-21919 Add channel_mention permission

* MM-21919 Fix emojis migration test

* Enforce Channel Mentions on the in the posts api

* MM-21919 Rename permission to use_channel_mentions

Allow posts with channel mentions to still be posted without the permission just don't send notifications to users

* MM-21919 Add tests for a post with @all and @here

* MM-21919 Add use channel mentions to all roles that have create post

* MM-21919 Update app_test to include use_channel_mentions permission in default permissions
2020-02-12 21:15:34 +05:30
Shota Gvinepadze
a7854f1b97 [MM-22037] Enable uppercase letters in the email (#13794)
* Enable uppercase letters in the email

* Lowercase email on every input

* Remove invalid test
2020-02-12 08:51:45 -05:00
Jason Paul Deland
28ef877876 (IS-302) Streamling process to download pre-built binaries (#13830)
* Updating build and release process to include externally built mmctl

* Missed last commit before reset

* rename script to align with purpose

* Moving get release script to scripts dir

* Streamlined script to find the correct latest version of an externally built binary from a GitHub Release

* Updated variable names to match

* Updating vars to match

* Updating parameters to named variables for clarity

* Update scripts/get_latest_release.sh

Co-Authored-By: Elisabeth Kulzer <elikul@elikul.de>

Co-authored-by: Elisabeth Kulzer <elikul@elikul.de>
2020-02-11 12:29:38 -05:00
Eli Yukelzon
fb4d27d596 MM-22265 - Restrict the WS "update_team" event broadcast (#13848)
Automatic Merge
2020-02-11 03:41:55 -05:00