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
a8d64f153e
Merge pull request #3346 from quay/client-test-improvements
...
Client test improvements
2019-02-20 16:25:13 -05:00
Joseph Schorr
72ef93b73c
Add a podman client test
2019-02-20 16:07:05 -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
69c306e740
Have blob mounting use the blob cache
2019-02-14 13:06:18 -05:00
Kenny Lee Sin Cheong
035541c6f2
Implement logs model using Elasticsearch
...
- Implement logs model using Elasticsearch with tests
- Implement transition model using both elasticsearch and database model
- Add LOGS_MODEL configuration to choose which to use.
Co-authored-by: Sida Chen <sidchen@redhat.com>
Co-authored-by: Kenny Lee Sin Cheong <kenny.lee@redhat.com>
2019-02-12 16:33:42 -05:00
Joseph Schorr
9f09d68ad8
Merge pull request #3323 from quay/joseph.schorr/QUAY-1282/log-interfacing
...
Interface out all action log data model operations
2019-01-28 15:09:25 -05:00
Joseph Schorr
9e6f2c5be9
Interface out the clients test in prep for supporting other kinds of clients
2019-01-25 17:28:35 -05:00
Joseph Schorr
b773a18ed8
Interface out all action log data model operations
...
This will allow us to reimplement the logs data model against a non-database system in the near future
2019-01-25 15:52:22 -05:00
Kenny Lee Sin Cheong
95d92f3a3b
Update dockerclient test boxes ( #3316 )
...
* Update boxes Check for vagrant and vagrant-scp
* Email flag is deprecated on after 17.0.6
2019-01-25 13:49:19 -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
b1dd053b02
Fix an NPE when trying to pull a manifest without a legacy image via V1
2019-01-10 13:59:35 -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
cdb49dbfd3
Add LogEntry3 table without the extra indexes and switch to writing to it
2019-01-03 13:50:43 -05:00
Joseph Schorr
b6db002729
Fix references to LogEntry model used and add support for a maximum page of results on the logs API
2019-01-02 16:04:15 -05:00
Joseph Schorr
0d20ab6042
Merge pull request #3313 from quay/fix-unicode-error
...
Make sure to decode manifests into utf-8 when necessary
2018-12-19 14:08:05 -05:00
Joseph Schorr
9190c046c7
Remove unusable sitemap endpoint
...
It calls a data model method which is extremely slow and heavy, and it isn't even used anyway
2018-12-18 16:37:09 -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
d49eec18a3
Add automatic retry to the registry test suite to make it less flaky
2018-12-11 13:30:30 -05:00
Joseph Schorr
3c2e050593
Support pulling of schema2 manifests directly via a manifest list tag
...
This change ensures that if a manifest list is requested with an accepts header for a *schema 2* manifest, the legacy manifest (if any) is returned as schema 2 if it was pushed as a schema 2 manifest (rather than being auto-converted to schema 1)
2018-12-07 11:57:13 -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
d59bea3569
Enable a configurable whitelist of namespaces for V22
...
If a namespace is present in the whitelist, all calls are sent to the OCI model instead of the Pre OCI model
Note that this does increase overhead for registry calls (since we need to lookup the namespace for every single call), but it should only be temporary until we've migrated all users over to the OCI data model
2018-12-03 17:37:28 -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
180d8847db
Fix image replication for images with remote layers
2018-11-26 16:15:48 +02:00
Joseph Schorr
0eb84f8077
Add a squashing test for images with empty layers
2018-11-26 12:48:20 +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
49ea2d1fa1
Add a schema 2 push pull verification test
2018-11-21 21:02:13 +02:00
Joseph Schorr
6207bb5e6f
Fix registry test due to recent name change
2018-11-21 18:06:16 +02:00
Joseph Schorr
1f03fdb27e
Fix pulling of squashed versions of the legacy image in a manifest lists
2018-11-20 16:37:15 +02:00
Joseph Schorr
17d7828f1a
Add registry test for manifestlist with the same child manifest twice
2018-11-20 11:22:27 +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
54904cfd6e
Fix bug around pushing manifest lists that refer to the same manifest twice as children
2018-11-19 18:26:22 +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
276d0d571d
Fix support for pulling manifest lists via Docker V1 protocol where applicable
2018-11-14 14:05:06 +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
8985d8f106
Have registry tests run against both data models (old and new)
2018-11-13 12:00:55 +02:00
Joseph Schorr
30f072aeff
Add support for creating schema 2 manifests and manifest lists via the OCI model
2018-11-12 23:27:49 +02:00
Joseph Schorr
6b86b87a16
Merge pull request #3290 from quay/joseph.schorr/QUAY-1124/implement-new-data-model
...
Implement the new OCI-based registry data model
2018-11-08 13:39:29 -05:00
c312ad1a1b
dockerclients: comment of the BOX tuple
...
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2018-11-08 13:21:23 -05:00
Joseph Schorr
fdcb8bad23
Implement the new OCI-based registry data model
...
Note that this change does *not* enable the new data model by default, but does allow it to be used when a special environment variable is specified.
2018-11-07 22:07:58 -05:00
Joseph Schorr
d18a7935e1
Fix pytest fixture import issue with hashability of tmpdir_factory
2018-10-18 14:42:54 -04: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
ce19273c54
Merge pull request #3257 from quay/joseph.schorr/QUAY-1030/interfacing-part-9-2
...
Finish changing V1 to use new registry data model
2018-09-30 15:59:50 -04:00
Joseph Schorr
4520f9e842
Change V1 to use the manifest builder and new registry data model
2018-09-28 17:30:04 -04:00