Joseph Schorr
f0f2d9cdf4
Add architecture validation to manifest lists that contain schema 1 manifests
...
Fixes https://jira.coreos.com/browse/QUAY-1266
2019-02-22 13:39:54 -05:00
Joseph Schorr
7690d5d495
Have the V2 registry endpoints raise Unauthorized with the proper header when anonymous access is disabled
...
Before this change, we'd raise a generic 401, which was breaking containerd and cri-o.
Fixes https://jira.coreos.com/browse/QUAY-1332
2019-02-15 15:29:57 -05:00
Joseph Schorr
5b4d39daa4
Remove the charset from the content type for manifests
2019-01-12 16:06:11 -05:00
Joseph Schorr
e78b5c5516
Add an additional short circuit to avoid parsing the manifest when not necessary for older Docker clients
...
We also add tests for this case
2019-01-11 16:37:23 -05:00
Joseph Schorr
eb9ca8e8a8
Fix handling of four byte utf8 manifests
...
- Adds the charset: utf-8 to all the manifest responses
- Makes sure we connect to MySQL in utf8mb4 mode, to ensure we can properly read and write 4-byte utf8 strings
- Adds tests for all of the above
2019-01-10 16:34:56 -05:00
Joseph Schorr
171c7e5238
Further fixes for unicode handling in manifests
...
We were occasionally trying to compute schema 2 version 1 signatures on the *unicode* representation, which was failing the signature check. This PR adds a new wrapper type called `Bytes`, which all manifests must take in, and which handles the unicodes vs encoded utf-8 stuff in a central location. This PR also adds a test for the manifest that was breaking in production.
2019-01-09 15:14:41 -05:00
Joseph Schorr
48e584905a
Make sure to decode manifests into utf-8 when necessary
...
This fixes a decoding error
2018-12-17 16:31:24 -05:00
Joseph Schorr
c3710a6a5e
Add ability for specific geographic regions to be blocked from pulling images within a namespace
2018-12-06 17:14:45 -05:00
Joseph Schorr
4e1ff90cb2
Unify the get_layers calls across all implements of manifest schemas to ensure we have a common type returned
...
Also renames some methods to make it more clear what kind of information they return
2018-11-26 17:58:48 +02:00
Joseph Schorr
4985040d31
Properly handle the empty layer when pushing schema 2 manifests
...
Docker doesn't send us the contents of this layer, so we are forced to synthesize it ourselves
2018-11-25 16:16:59 +02:00
Joseph Schorr
6207bb5e6f
Fix registry test due to recent name change
2018-11-21 18:06:16 +02:00
Joseph Schorr
e972e4088b
Fix lookup of manifests referenced solely by a manifest list
...
We need to ensure we can find them if there is an active tag pointing to the parent list
2018-11-19 23:31:41 +02:00
Joseph Schorr
45db1d27e7
Update registry tests
2018-11-19 14:01:42 +02:00
Joseph Schorr
1eaf5b18dd
Adjustments based on code review feedback
2018-11-15 13:51:48 +02:00
Joseph Schorr
37b20010aa
Add support for pushing and pulling schema 2 manifests with remote layers
...
This is required for windows image support
2018-11-14 13:21:50 +02:00
Joseph Schorr
3b4002877a
Fix mimetype handling in registry tests
2018-11-14 08:51:01 +02:00
Joseph Schorr
7a794e29c0
Add tests for manifest lists and fix some issues encountered while testing
2018-11-13 21:03:20 +02:00
Joseph Schorr
e752a9a73f
Update registry tests to test schema 2 manifest pushes and pulls
...
Note that tests for manifest *lists* will be in a following commit
2018-11-13 17:15:00 +02:00
Joseph Schorr
6b5064aba4
Convert V2's manifest endpoints to use the new data model interface
2018-10-18 14:25:40 -04:00
Joseph Schorr
e13baa9041
Merge pull request #3206 from quay/fix-unicode-schemas
...
Fix unicode manifests in the backfill
2018-08-16 13:24:17 -04:00
Jimmy Zelinskie
6d4300a92a
test/registry: add accept header test
2018-08-15 14:49:26 -04:00
Joseph Schorr
fa58f3b1d2
Fix handling of manifests with unicode in the backfill
...
Also adds a bunch of tests around manifests to ensure we get the same information in and out
2018-08-15 11:41:15 -04:00
Joseph Schorr
701eac5466
Fix registry tests to not terminate prematurely when looking for errors
...
Also reorders a check in the V1 protocol to have better error messaging for the users
2018-08-10 13:36:20 -04:00
Joseph Schorr
a572fd33c7
Ensure that we limit the length of repository names
...
Until now, they'd simply be truncated by the database. Now, we properly check their lengths.
Fixes https://jira.coreos.com/browse/QUAY-963
2018-07-13 13:22:33 +03:00
Joseph Schorr
2b34ae74fe
Add test for trying to pull the tags of a repository under a disabled namespace
2018-06-21 14:41:27 -04:00
Joseph Schorr
fdd0db7a7f
Add test for trying to pull the catalog under a disabled namespace
2018-06-21 14:41:27 -04:00
Joseph Schorr
2caaf84f31
Add caching support to catalog
...
We will now cache the results of the catalog for 60s and not hit the database at all if cached
2018-06-20 14:58:01 -04:00
Joseph Schorr
3161b60522
Switch V2 pagination back to using IDs, which should be much faster and easier on the DB
...
Also adds a test for the tags endpoint
2018-06-18 16:11:26 -04:00
Joseph Schorr
f6eaf7ce9d
Add blob mounting tests to the new registry test suite
2018-06-06 11:31:28 -04:00
Joseph Schorr
f86c087b3b
Prevent registry operations against disabled namespaces
...
Allows admins to completely wall off a namespace by disabling it
Fixes https://jira.coreos.com/browse/QUAY-869
2018-05-22 18:36:04 -04:00
Joseph Schorr
8c1b0e673c
Implement the remaining registry tests in the new py.test format
2018-05-01 13:28:24 +03:00
Joseph Schorr
23c19bcbc1
Implement support for registry integration tests via py.test
...
This change implements support for registry integration tests using the new py.test-based live server test fixture. We can now parametrize the protocols we use (in prep for V2_2), and it makes the code *much* cleaner and less hacky.
Note that moving the vast majority of the tests over from the existing impl will come as a followup PR
2018-05-01 13:28:24 +03:00