Shane Kilkelly
719f0c3661
Give up on projects that cannot be swapped, rather than spinning the loop forever
2019-05-29 10:20:37 +01:00
Shane Kilkelly
2492c95c0b
Handle a 409 response with code=projectHasDotGit
2019-05-29 10:18:49 +01:00
Shane Kilkelly
f237efa6d5
Log and trap/ignore gc errors during swap
2019-05-23 11:14:02 +01:00
Shane Kilkelly
c7d8c1c6b5
Run GC on a project at start of swap job.
...
When there is an exception during swap, add project name to log
2019-05-16 11:42:13 +01:00
Simon Detheridge
d51f2fecfc
Allow colons in passwords
...
bug: overleaf/issues#1393
2019-05-16 10:03:27 +01:00
Jakob Ackermann
a333aabfa9
[WLGitBridgeIntegrationTest] adjust the urls for the individual tests
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-04-26 23:56:54 +02:00
Jakob Ackermann
5040b4d7f0
[WLGitBridgeIntegrationTest] ensure that we stop the started servers
...
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-04-26 23:56:47 +02:00
Shane Kilkelly
8f72cb89c8
Reject v1 ids earlier in the pipeline
2019-03-08 11:45:31 +00:00
Shane Kilkelly
788fad5ce7
Remove a deprecated method, no longer compatible with JGit 5.2
2019-03-06 11:43:27 +00:00
Shane Kilkelly
a517035e2c
Refuse to process project-ids that look like they come from v1
2019-03-06 10:16:55 +00:00
Shane Kilkelly
0f130096a2
Increase postback timeout to six minutes, to help users posting large payloads
2019-01-15 10:52:30 +00:00
Shane Kilkelly
4dc140aced
Add integration test to cover imported-but-not-changed projects
2019-01-10 10:21:31 +00:00
Shane Kilkelly
4f1168a590
Add comments pointing to github issue
2019-01-09 14:24:04 +00:00
Shane Kilkelly
b8d252244c
Tolerate case where there is no latest version timestamp in version info
2019-01-09 12:23:26 +00:00
Shane Kilkelly
ba8ba001d6
Fetch snapshots in edge-case where version-id is zero
2019-01-09 12:23:00 +00:00
Shane Kilkelly
779778fdb1
Use newUrl
if supplied when v1 is deprecated
2019-01-08 09:47:01 +00:00
Shane Kilkelly
0d0c5458dd
Handle when v1 is deprecated, print a message instead of an error
2019-01-07 11:54:44 +00:00
Shane Kilkelly
40add6985f
Remove override of connect timeout
2018-12-17 09:39:19 +00:00
Shane Kilkelly
2195af88dd
Set timeouts on Post requests too
2018-12-14 16:34:48 +00:00
Shane Kilkelly
46904bfe73
Set timeouts on http requests to 3 minutes, up from the default of 20 seconds.
2018-12-14 16:13:58 +00:00
Shane Kilkelly
0bc82e6936
Merge pull request #46 from overleaf/sk-increase-push-timeout
...
Change push timeout to three minutes
2018-12-14 09:46:46 +00:00
Shane Kilkelly
9ee39ae930
Wrap the generic repository-missing message correctly
...
Now appears to the client as:
```
fatal: remote error: no git access
This Overleaf project currently has no git access, either because
the project does not exist, or because git access is not enabled
for the project.
```
2018-12-13 12:37:42 +00:00
Shane Kilkelly
abcaf8242e
Include message along with error description lines
2018-12-13 12:37:21 +00:00
Shane Kilkelly
a766482a00
Remove stray import
2018-12-13 12:37:09 +00:00
Shane Kilkelly
bf7be6071d
Handle GitUserException, with multiple lines of output
2018-12-13 11:41:07 +00:00
Shane Kilkelly
2f18feb136
Keep the default constructor for MissingRepositoryException
2018-12-13 11:40:08 +00:00
Shane Kilkelly
27e1152095
Fix wording of the generic-error when a repository is missing
2018-12-13 10:34:09 +00:00
Shane Kilkelly
a72146aa8d
Better report to user on push timeout
2018-12-12 10:38:26 +00:00
Shane Kilkelly
3f85dc80f4
When user clone/pull/etc a project which doesn't exist, print a nice message
...
The old behaviour was to just show an equivalent of a 500 error.
This way, we catch the 404 from the API, and print an appropriate message
to the user.
2018-12-11 12:35:21 +00:00
Shane Kilkelly
c435eccc43
Change push timeout to three minutes
2018-12-11 09:24:09 +00:00
Shane Kilkelly
d22d5829bb
Remove redundant try/catch around directory copy operation
2018-12-06 09:45:07 +00:00
Shane Kilkelly
67d365e661
Remove commas because grammer
2018-12-06 09:40:09 +00:00
Shane Kilkelly
6b8101d278
Init the new repo from existing repository, avoid creating files then deleting
2018-12-05 16:54:58 +00:00
Shane Kilkelly
8cb715014c
More concise handling of optional migratedFromId
in test
2018-12-05 15:00:00 +00:00
Shane Kilkelly
709cb0887c
Remove old constructor without the migratedFromId
param
2018-12-05 14:59:41 +00:00
Shane Kilkelly
925ebc2133
Check project state inside the lock
2018-12-05 14:58:51 +00:00
Shane Kilkelly
439d55d805
Update wording of the change-your-remote message shown to user
2018-12-05 10:42:58 +00:00
Shane Kilkelly
007dfe1420
Change new_remote
to newRemote
2018-12-04 10:43:48 +00:00
Shane Kilkelly
8005ebf5d0
Remove test exception
2018-12-04 10:14:39 +00:00
Shane Kilkelly
c0b52c5851
Add 'please' to message shown to client for migrated project
2018-12-03 11:53:34 +00:00
Shane Kilkelly
326d0a0722
When a repo has migrated to v2, print message about updating remote
2018-12-03 11:49:06 +00:00
Shane Kilkelly
c553094a60
Add a test for when migrated-from project is not present
2018-12-03 10:13:10 +00:00
Shane Kilkelly
dd2e9b6945
More closely match the semantics of projectExists
2018-11-29 11:39:56 +00:00
Shane Kilkelly
f852cd603d
Use FileUtils to handle copying of migrated repository
2018-11-29 11:39:30 +00:00
Shane Kilkelly
1a646d3fd0
Add an integration test for migrating repository
2018-11-29 10:22:22 +00:00
Shane Kilkelly
8bdf7031c5
Fix log line
2018-11-28 14:17:30 +00:00
Shane Kilkelly
245cd67a39
Fix tests
2018-11-27 16:24:50 +00:00
Shane Kilkelly
a524bfbac1
Minor cleanup
2018-11-27 16:07:42 +00:00
Shane Kilkelly
66fa946cb8
set timestamp on new record too
2018-11-27 16:07:26 +00:00
Shane Kilkelly
4f3021cca1
Speculative solution
2018-11-27 11:35:22 +00:00
Shane Kilkelly
19075f18bc
Add migratedFromID
property to GetDocResult
2018-11-22 12:01:28 +00:00
Michael Walker
b91390c025
Fix gc job leak in tests
2018-03-09 11:25:01 +00:00
Michael Walker
b5e7327410
Fix swap job leak in tests
2018-03-09 11:16:51 +00:00
Michael Walker
86f60519a1
Queue a garbage collection after generating commits
2018-03-09 11:12:54 +00:00
Michael Walker
3f1eb2b0c3
Revert "Revert "Update dependencies to latest stable versions""
2018-02-27 11:51:02 +00:00
Michael Walker
e68271747b
Revert "Update dependencies to latest stable versions"
2018-02-27 11:46:28 +00:00
Michael Walker
e81931ef35
Merge pull request #40 from overleaf/msw-delete-temp-files
...
Small code improvements around temporary files
2018-02-27 11:16:57 +00:00
Michael Walker
513e83fa00
Clean up temporary file if tarTo raises an exception
2018-02-26 16:30:08 +00:00
Michael Walker
ddc524b588
Log an error if a DeletingFileInputStream is open at finalization
2018-02-26 14:48:18 +00:00
Michael Walker
55cb41f5b2
Use DeletingFileInputStream in tar method
2018-02-26 14:19:02 +00:00
Michael Walker
a627c7e9b3
Drop use of deprecated interface
2018-02-09 16:01:05 +00:00
Michael Walker
9bb7576f0b
Replace com.ning/async-http-client with new package
...
Notice at:
https://github.com/ning/async-http-client
2018-02-09 16:00:58 +00:00
Michael Walker
1ca63e1ba1
Return a generic summary from MissingRepositoryException.getMessage
2018-02-07 14:25:04 +00:00
Michael Walker
4c237e84f5
Rename disabled project test
2018-02-07 13:27:31 +00:00
Michael Walker
25ccfe28fe
Rename protected project test
2018-02-07 13:27:19 +00:00
Michael Walker
77e3bc0d3b
Remove unused constructor
2018-02-07 13:01:41 +00:00
Michael Walker
647cf24bb6
Use a List<String> rather than hard-coding newlines
2018-02-07 10:39:26 +00:00
Michael Walker
63e28fede1
Enable the "cannot clone a protected project" test
2018-02-07 10:10:16 +00:00
Michael Walker
994ad9a933
410 is no longer "disabled"
2018-02-07 10:10:09 +00:00
Michael Walker
bd8e8688c3
Make GENERIC_REASON consistent with web messages.
2018-02-07 10:06:28 +00:00
Michael Walker
f13324134f
Give 'unauthorized' and 'missing' better names
2018-02-07 09:39:35 +00:00
Michael Walker
44d3ddd9aa
Display a more specific message for v2 projects
2018-02-06 15:06:49 +00:00
Michael Walker
3a374e0ba7
Send the MissingRepositoryException message to the client
2018-02-06 14:23:21 +00:00
Michael Walker
82c0873743
Report all 4xx from write-latex API as MissingRepositoryException
2018-02-06 14:23:21 +00:00
Michael Walker
6ae6acd826
Rename DisabledRepositoryException to MissingRepositoryException
2018-02-06 14:23:21 +00:00
Michael Walker
5e08f6f5c6
Add a test for cloning disabled projects
2018-02-05 16:11:45 +00:00
Michael Walker
20a748f14e
Explain to the user that their project is inaccessible
2018-02-05 13:35:58 +00:00
Michael Walker
8b4c29ec83
Throw an exception if the API returns 410
2018-02-05 12:16:09 +00:00
Winston Li
90e3417aec
Add tests for UrlResourceCache content lengths
2018-01-17 09:47:31 +00:00
Winston Li
6c71c2cb97
Add ning http headers class
2018-01-17 09:47:31 +00:00
Winston Li
34e558ab63
Create noop db store and test file
2018-01-17 09:47:31 +00:00
Winston Li
4e7636c94a
Decouple http client from UrlResourceCache
2018-01-17 09:47:31 +00:00
Winston Li
ae65212f19
Create http client facade
2018-01-17 09:47:31 +00:00
Michael Walker
1e4ef0cc5b
Fully implement max file size
...
- add `repoStore.maxFileSize` key to config
- use maxFileSize in ResourceCache on both header path and blob
download path
- make failures during commit less fragile
2018-01-17 09:46:40 +00:00
John Lees-Miller
72f8fb553c
Fix typos
2018-01-16 18:30:17 +00:00
Winston Li
6b94fcf1b4
Decouple Bridge from network, JGit from disk
2018-01-15 11:56:04 +00:00
Michael Walker
918e3d9975
Remove an unneeded import
2018-01-15 11:56:04 +00:00
Michael Walker
e437c14d72
Refactor ResourceFetcherTest
2018-01-15 11:56:04 +00:00
Michael Walker
1f35b6dec3
Raise an error if files exceed the max file size
2018-01-15 11:39:29 +00:00
Winston Li
806002f273
Path was static instead of final
2017-09-20 08:20:16 +01:00
Winston Li
705b88933c
Fix log message
2017-09-20 08:20:16 +01:00
Michael Mazour
976419b2d2
More logging fields for unauthorized requests
...
When a request requires authentication, log username, IP address, and the status code returned by the auth attempt. Previously logged projectName only.
2017-09-08 10:15:45 +01:00
Michael Mazour
a3a41640b9
Merge pull request #26 from overleaf/custom-error-page
...
Simple Error Page to Replace Default
2017-09-06 06:53:57 +01:00
hugh-obrien
d9e368ac35
Add a JSON response instead of default error page
...
Use custom error handler instead of default that leaks server info.
- Use in API context
- Use in default/web context
- Add tests
2017-09-05 13:32:23 +01:00
Winston Li
f9307c7110
Check file size on tar input path and use stream copying instead of buffering fully
2017-08-02 21:40:00 +01:00
Winston Li
045eea8282
Add messages to precondition checks
2017-08-02 20:58:26 +01:00
Winston Li
fd743d1bf3
Fix #3705
2017-08-02 20:58:15 +01:00
Winston Li
ad687e5f58
Add failing test for #3705
2017-08-02 20:51:20 +01:00
Michael Walker
ced34d91d4
Delete temporary files created by Tar on close
...
The SwapJob creates temporary files indirectly through Tar.bz2.zip.
These files are deleted with File.deleteOnExit, but there is no other
deletion mechanism. This means that temporary files will build up as
the git bridge runs, only being deleted when the JVM finally
terminates.
Instead, we can delete these temporary files as soon as they are no
longer needed. The files are wrapped in a FileInputStream and not
directly exposed, so we can simply delete the underlying file when the
stream is closed, as then the file is inaccessible.
2017-07-14 12:08:50 +01:00
Winston Li
21b769170d
Minor name change to keep swap job / s3 decoupled
2017-04-04 13:09:43 +01:00
Winston Li
5dcc4128b4
Remove sleep and reset jgit version
2017-02-17 15:57:09 +00:00
Winston Li
ee61d72e2e
Implementation and tests of GC, GcJob, S3 files
2017-02-17 13:44:11 +00:00
Winston Li
8a8d308365
Remove old printing from failing test
2017-02-16 09:16:51 +00:00
Winston Li
f29c7395d2
Tests: fix config for git init and factor all git commands into method calls
2017-01-05 14:34:03 +00:00
Winston Li
034c064c25
Fix for zip unzip test
2017-01-05 13:21:15 +00:00
Winston Li
af49325b88
Make submodule test more verbose
2017-01-04 22:35:48 +00:00
Winston Li
9c63f06d4e
Change InvalidGitRepository message
2016-12-22 13:40:12 +00:00
Winston Li
6d563ed40e
Better javadoc, improve handling of submodules
2016-12-19 12:56:58 +00:00
Winston Li
76eb0a3200
Improve javadoc and logging
2016-12-17 16:09:01 +00:00
Winston Li
d3fd17aab5
Improve javadocs around swapping/repos
2016-12-17 15:20:08 +00:00
Winston Li
25a988daa3
Add JavaDoc, minor refactor
2016-10-09 21:13:11 +01:00
Winston Li
c23c11973a
Add test confirming the dangling meta char exception is not thrown anymore ( fix #1025 )
2016-10-09 08:47:57 +01:00
Winston Li
d3eb737120
Ignore .gitignore files on git.overleaf.com repos ( fix #1281 )
2016-10-08 16:12:20 +01:00
Winston Li
a8bad0539c
Create/delete larger files in df test
2016-09-19 10:07:46 +01:00
Winston Li
fe058e8695
Use df equivalent as default for calculating used space
2016-09-19 10:01:07 +01:00
Winston Li
9a0f18e516
Increase postback timeout to 60s
2016-09-19 09:34:45 +01:00
Winston Li
e9ffcfe19e
Remove extra comma
2016-09-12 15:42:18 +01:00
Winston Li
00d512725a
Fix "evicated" typo
2016-09-12 15:16:20 +01:00
Winston Li
9b78138314
Remove duplicate call to create the last_accessed index
2016-09-12 15:13:55 +01:00
Winston Li
a8c743cb9c
Schedule next swap job after previous job finishes
2016-09-12 15:11:56 +01:00
Winston Li
95a7cb2b8b
Add check for last_accessed column in case adding failed due to an error rather than because it already exists
2016-09-06 09:13:20 +01:00
Winston Li
5c878ccc70
Put files in directories that weren't commited
2016-09-06 09:13:09 +01:00
Winston Li
ea803b53d8
Remove swap table and put last_accessed column in projects
2016-09-06 09:11:53 +01:00
Winston Li
eb77d166e2
Add checkDB to upgrade the DB
2016-09-06 09:11:32 +01:00
Winston Li
52e5d2921f
Sanitise s3 info and fix for s3
2016-09-06 09:11:32 +01:00
Winston Li
9936fbe3c9
Implement and test the swap job, and add integration test
2016-09-06 09:11:32 +01:00
Winston Li
dd5694104d
Delete the SnapshotRepositoryBuilder and WLBridgedProject abominations. Set accessed time after update and push.
2016-09-06 09:11:32 +01:00
Winston Li
c459cd57af
Implement and test SwapJobImpl
2016-09-06 09:11:32 +01:00
Winston Li
a595acd0a6
Add and test GetNumProjects
2016-09-06 09:11:32 +01:00
Winston Li
4b014826d3
Add and test InMemorySwapStore
2016-09-06 09:11:32 +01:00
Winston Li
f036ff2c8b
Add and test an SQL update for only setting a project's last_accessed if it's missing
2016-09-06 09:11:32 +01:00
Winston Li
9d19cdd261
Implement and test DBStore swap_table functionality
2016-09-06 09:11:32 +01:00
Winston Li
d2b628d904
Move stuff to bridge package
2016-09-06 09:11:32 +01:00
Winston Li
f3eb32e2ec
Catch more exceptions in db init
2016-09-06 09:11:32 +01:00
Winston Li
cfc02bbcc8
Remove DB fluff layer
2016-09-06 09:11:32 +01:00
Winston Li
c3609803c0
Change DBStore to target a file
2016-09-06 09:11:32 +01:00
Winston Li
25fea8ef58
Implement bz2 support and test
2016-09-06 09:11:32 +01:00
Winston Li
8c0937511e
Add implementations, implement S3SwapStore (with only tars), FSRepoStore, Tar and File utils, add tests
2016-09-06 09:11:32 +01:00
Winston Li
692b979098
Large refactor of parts into distinct components / interfaces
2016-09-05 15:45:57 +01:00
Winston Li
5b810b64ba
Decouple jgit's Repository class from the Bridge
2016-09-05 15:45:57 +01:00
Winston Li
598ea8a6fb
Ugrade jgit and jgit.http.server to 4.4.1.201607150455-r and fix tests
2016-08-20 13:22:07 +01:00
Winston Li
3389615ef6
Use better error message for problems building repo ( #1576 )
2016-08-20 12:15:34 +01:00
Marc Egea i Sala
d143baf489
Add more logging to commit action ( #16 )
2016-06-09 10:26:22 +01:00
Marc Egea i Sala
cb2e12d3b0
Merge pull request #15 from overleaf/handler-refactor
...
Put API handlers into their own namespace
2016-06-07 07:57:07 +01:00
John Lees-Miller
4fb9cbdf19
Restore a removed logging statement
2016-06-03 16:45:16 +01:00
John Lees-Miller
7cb82f3c18
Add tests for file content API
2016-06-03 16:22:10 +01:00
John Lees-Miller
42d1236063
Check for missing project before checking key
2016-06-03 16:11:31 +01:00
John Lees-Miller
1ac07526dc
Reorganise postbacks and files under /api
2016-06-03 16:11:02 +01:00
Marc Egea i Sala
2a87513603
Merge pull request #14 from overleaf/performance-improvements
...
Build RepositoryObjectTreeWalker only once per commit
2016-06-03 15:46:32 +01:00
Marc Egea i Sala
f4d4ce0da1
Build RepositoryObjectTreeWalker only once per commit
2016-06-03 15:40:48 +01:00