From 5fbeb73a76ca21db02146a7686dc13a7c961cc87 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 10 Apr 2017 12:57:19 +0200 Subject: Add method that returns a registry repository location --- app/models/container_repository.rb | 4 ++++ spec/models/container_repository_spec.rb | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/models/container_repository.rb b/app/models/container_repository.rb index 9682df3a586..82f4182d59a 100644 --- a/app/models/container_repository.rb +++ b/app/models/container_repository.rb @@ -23,6 +23,10 @@ class ContainerRepository < ActiveRecord::Base @path ||= [project.full_path, name].select(&:present?).join('/') end + def location + File.join(registry.path, path) + end + def tag(tag) ContainerRegistry::Tag.new(self, tag) end diff --git a/spec/models/container_repository_spec.rb b/spec/models/container_repository_spec.rb index f7ee0b57072..cfb1645f751 100644 --- a/spec/models/container_repository_spec.rb +++ b/spec/models/container_repository_spec.rb @@ -91,6 +91,21 @@ describe ContainerRepository do end end + describe '#location' do + context 'when registry is running on a custom port' do + before do + stub_container_registry_config(enabled: true, + api_url: 'http://registry.gitlab:5000', + host_port: 'registry.gitlab:5000') + end + + it 'returns a full location of the repository' do + expect(container_repository.location) + .to eq 'registry.gitlab:5000/group/test/my_image' + end + end + end + describe '#root_repository?' do context 'when repository is a root repository' do let(:repository) { create(:container_repository, :root) } -- cgit v1.2.1