Commit 5c2f2fd2 authored by Kamil Trzcinski's avatar Kamil Trzcinski
Browse files

Fix CI tests

parent 054dfc55778a
class Projects::ContainerRegistryController < Projects::ApplicationController
before_action :authorize_read_container_registry!
before_action :authorize_update_container_registry!, only: [:destroy]
before_action :tag, except: [:index]
layout 'project'
def index
......
......@@ -34,7 +34,7 @@ def project_builds_path(project, *args)
end
def project_container_registry_path(project, *args)
namespace_project_container_registry_index_url(project.namespace, project, *args)
namespace_project_container_registry_index_path(project.namespace, project, *args)
end
def activity_project_path(project, *args)
......
......@@ -291,7 +291,7 @@ def project_disabled_features_rules(project)
rules += named_abilities('build')
end
unless project.container_registry_enabled
unless project.container_registry_enabled && Gitlab.config.registry.enabled
rules += named_abilities('container_registry')
end
......
......@@ -128,7 +128,7 @@ def move_dir
gitlab_shell.add_namespace(path_was)
if any_project_has_container_registry_tags?
raise Exception.new('namespace cannot be moved, because at least one project has tags in container registry')
raise Exception.new('Namespace cannot be moved, because at least one project has tags in container registry')
end
if gitlab_shell.mv_namespace(path_was, path)
......
......@@ -377,7 +377,7 @@ def repository
def container_registry_repository
@container_registry_repository ||= begin
token = Jwt::ContainerRegistryAuthenticationService.full_access_token(path_with_namespace)
token = JWT::ContainerRegistryAuthenticationService.full_access_token(path_with_namespace)
url = Gitlab.config.registry.api_url
host_port = Gitlab.config.registry.host_port
registry = ContainerRegistry::Registry.new(url, token: token, path: host_port)
......@@ -814,7 +814,7 @@ def rename_repo
if has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
raise Exception.new('repository cannot be renamed, due to tags in container registry')
raise Exception.new('Project cannot be renamed, because tags are present in its container registry')
end
if gitlab_shell.mv_repository(old_path_with_namespace, new_path_with_namespace)
......
......@@ -14,7 +14,7 @@ def execute
def self.full_access_token(*names)
registry = Gitlab.config.registry
token = ::Jwt::RSAToken.new(registry.key)
token = ::JWT::RSAToken.new(registry.key)
token.issuer = registry.issuer
token.audience = AUDIENCE
token[:access] = names.map do |name|
......
......@@ -64,7 +64,9 @@ def remove_repository(path)
end
def remove_registry_tags
project.image_registry.delete_tags
return unless Gitlab.config.registry.enabled
project.container_registry_repository.delete_tags
end
def raise_error(message)
......
......@@ -36,7 +36,7 @@ def transfer(project, new_namespace)
if project.has_container_registry_tags?
# we currently doesn't support renaming repository if it contains tags in container registry
raise TransferError.new('Repository cannot be renamed, due to tags in container registry')
raise TransferError.new('Project cannot be transferred, because tags are present in its container registry')
end
project.expire_caches_before_rename(old_path)
......
......@@ -14,7 +14,8 @@
= pluralize(tag.layers.size, "layer")
%td
= time_ago_in_words(tag.created_at)
%td.content
.controls.hidden-xs.pull-right
= link_to namespace_project_container_registry_path(@project.namespace, @project, tag.name), class: 'btn btn-remove has-tooltip', title: "Remove", data: { confirm: "Are you sure?" }, method: :delete do
= icon("trash cred")
- if can?(current_user, :update_container_registry, @project)
%td.content
.controls.hidden-xs.pull-right
= link_to namespace_project_container_registry_path(@project.namespace, @project, tag.name), class: 'btn btn-remove has-tooltip', title: "Remove", data: { confirm: "Are you sure?" }, method: :delete do
= icon("trash cred")
......@@ -18,7 +18,7 @@
%code
docker login #{Gitlab.config.registry.host_port}
%br
Then you are free to create and upload a container images with build and push commands:
Then you are free to create and upload a container image with build and push commands:
%pre
docker build -t #{escape_once(@project.container_registry_repository_url)} .
%br
......@@ -33,7 +33,8 @@
%th Image ID
%th Size
%th Created
%th
- if can?(current_user, :update_container_registry, @project)
%th
- @tags.each do |tag|
= render 'tag', tag: tag
\ No newline at end of file
......@@ -55,7 +55,7 @@ def initialize_connection(conn, options)
conn.request :json
conn.headers['Accept'] = MANIFEST_VERSION
conn.response :json, :content_type => /\bjson$/
conn.response :json, content_type: /\bjson$/
if options[:user] && options[:password]
conn.request(:basic_auth, options[:user].to_s, options[:password].to_s)
......
......@@ -30,19 +30,21 @@ def valid?
def tags
return @tags if defined?(@tags)
return [] unless manifest && manifest['tags']
@tags = manifest['tags'].map do |tag|
ContainerRegistry::Tag.new(self, tag)
end
@tags ||= []
end
def delete_tags
return unless tags
tags.each(:delete)
end
def mount_blob(blob)
return unless blob
client.repository_mount_blob(name, blob.digest, blob.repository.name)
end
......
......@@ -5,14 +5,18 @@
let(:repository) { project.container_registry_repository }
let(:tag_name) { 'latest' }
let(:tags) { [tag_name] }
before do
let(:registry_settings) do
{
enabled: true
}
end
before do
login_as(:user)
project.team << [@user, :developer]
stub_container_registry(*tags)
allow(Gitlab.config.registry).to receive_messages(registry_settings)
allow(JWT::ContainerRegistryAuthenticationService).to receive(:full_access_token).and_return('token')
end
describe 'GET /:project/container_registry' do
......@@ -22,6 +26,7 @@
context 'when no tags' do
let(:tags) { [] }
it { expect(page).to have_content('No images in Container Registry for this project') }
end
......@@ -37,7 +42,8 @@
it do
expect_any_instance_of(::ContainerRegistry::Tag).to receive(:delete).and_return(true)
click_on 'Remove'
end
end
end
\ No newline at end of file
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment