smart_proxy_container_gateway 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8a19a855d3c656839dd81438ead966b638156c97a46ea09b450ba793936267d
|
4
|
+
data.tar.gz: 88aa70dba7e9cc07697e5bc1e6b0424037f32cf8f168eaf36f2794fef7021bac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0d9dedcf24be6bfb3e1137ab99560a036d72ef795cafdcd1de0ccac18ccc60e98404edad4ef77784daca290ed9d8b70e69d1167f52b615a147f7958424b2b0b
|
7
|
+
data.tar.gz: cf2b684b36369d5f3b8213d2d57289b2ce91c2870bf5e72711ec0ede30506cbf618cf09c63e6b289a1a413dfa955b3b43a77f3f00be9961862482e36bd705bd8
|
@@ -25,18 +25,28 @@ module Proxy
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
get '/v2
|
29
|
-
|
30
|
-
|
28
|
+
get '/v2/*/manifests/*/?' do
|
29
|
+
repository = params[:splat][0]
|
30
|
+
tag = params[:splat][1]
|
31
|
+
handle_repo_auth(repository, auth_header, request)
|
32
|
+
redirection_location = Proxy::ContainerGateway.manifests(repository, tag)
|
31
33
|
redirect to(redirection_location)
|
32
34
|
end
|
33
35
|
|
34
|
-
get '/v2
|
35
|
-
|
36
|
-
|
36
|
+
get '/v2/*/blobs/*/?' do
|
37
|
+
repository = params[:splat][0]
|
38
|
+
digest = params[:splat][1]
|
39
|
+
handle_repo_auth(repository, auth_header, request)
|
40
|
+
redirection_location = Proxy::ContainerGateway.blobs(repository, digest)
|
37
41
|
redirect to(redirection_location)
|
38
42
|
end
|
39
43
|
|
44
|
+
get '/v2/*/tags/list/?' do
|
45
|
+
repository = params[:splat][0]
|
46
|
+
handle_repo_auth(repository, auth_header, request)
|
47
|
+
Proxy::ContainerGateway.tags(repository)
|
48
|
+
end
|
49
|
+
|
40
50
|
get '/v1/search/?' do
|
41
51
|
# Checks for podman client and issues a 404 in that case. Podman
|
42
52
|
# examines the response from a /v1/search request. If the result
|
@@ -130,7 +140,7 @@ module Proxy
|
|
130
140
|
|
131
141
|
private
|
132
142
|
|
133
|
-
def handle_repo_auth(
|
143
|
+
def handle_repo_auth(repository, auth_header, request)
|
134
144
|
user_token_is_valid = false
|
135
145
|
# FIXME: Getting unauthenticated token here...
|
136
146
|
if auth_header.present? && auth_header.valid_user_token?
|
@@ -139,7 +149,7 @@ module Proxy
|
|
139
149
|
end
|
140
150
|
username = request.params['account'] if username.nil?
|
141
151
|
|
142
|
-
return if Proxy::ContainerGateway.authorized_for_repo?(
|
152
|
+
return if Proxy::ContainerGateway.authorized_for_repo?(repository, user_token_is_valid, username)
|
143
153
|
|
144
154
|
redirect_authorization_headers
|
145
155
|
halt 401, "unauthorized"
|
@@ -41,6 +41,13 @@ module Proxy
|
|
41
41
|
pulp_registry_request(uri)['location']
|
42
42
|
end
|
43
43
|
|
44
|
+
def tags(repository)
|
45
|
+
uri = URI.parse(
|
46
|
+
"#{Proxy::ContainerGateway::Plugin.settings.pulp_endpoint}/pulpcore_registry/v2/#{repository}/tags/list"
|
47
|
+
)
|
48
|
+
pulp_registry_request(uri).body
|
49
|
+
end
|
50
|
+
|
44
51
|
def v1_search(params = {})
|
45
52
|
if params[:n].nil? || params[:n] == ""
|
46
53
|
params[:n] = 25
|
@@ -92,6 +99,8 @@ module Proxy
|
|
92
99
|
RepositoryUser.dataset.delete
|
93
100
|
user_repo_maps['users'].each do |user_repo_map|
|
94
101
|
user_repo_map.each do |user, repos|
|
102
|
+
next if repos.nil?
|
103
|
+
|
95
104
|
repos.each do |repo|
|
96
105
|
found_repo = Repository.find(name: repo['repository'],
|
97
106
|
auth_required: repo['auth_required'].to_s.downcase == "true")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smart_proxy_container_gateway
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ian Ballou
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -64,7 +64,7 @@ homepage: http://github.com/ianballou/smart_proxy_container_gateway
|
|
64
64
|
licenses:
|
65
65
|
- GPLv3
|
66
66
|
metadata: {}
|
67
|
-
post_install_message:
|
67
|
+
post_install_message:
|
68
68
|
rdoc_options: []
|
69
69
|
require_paths:
|
70
70
|
- lib
|
@@ -79,8 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
requirements: []
|
82
|
-
rubygems_version: 3.
|
83
|
-
signing_key:
|
82
|
+
rubygems_version: 3.3.7
|
83
|
+
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: Pulp 3 container registry support for Foreman/Katello Smart-Proxy
|
86
86
|
test_files: []
|