RepositoryExists is always called with #gitaly_migration
This commit is contained in:
		
							parent
							
								
									cae3417381
								
							
						
					
					
						commit
						a02881dfda
					
				| 
						 | 
					@ -489,13 +489,7 @@ class Repository
 | 
				
			||||||
  def exists?
 | 
					  def exists?
 | 
				
			||||||
    return false unless full_path
 | 
					    return false unless full_path
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Gitlab::GitalyClient.migrate(:repository_exists) do |enabled|
 | 
					    raw_repository.exists?
 | 
				
			||||||
      if enabled
 | 
					 | 
				
			||||||
        raw_repository.exists?
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        refs_directory_exists?
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
  cache_method :exists?
 | 
					  cache_method :exists?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1063,12 +1057,6 @@ class Repository
 | 
				
			||||||
    blob.data
 | 
					    blob.data
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def refs_directory_exists?
 | 
					 | 
				
			||||||
    circuit_breaker.perform do
 | 
					 | 
				
			||||||
      File.exist?(File.join(path_to_repo, 'refs'))
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def cache
 | 
					  def cache
 | 
				
			||||||
    # TODO: should we use UUIDs here? We could move repositories without clearing this cache
 | 
					    # TODO: should we use UUIDs here? We could move repositories without clearing this cache
 | 
				
			||||||
    @cache ||= RepositoryCache.new(full_path, @project.id)
 | 
					    @cache ||= RepositoryCache.new(full_path, @project.id)
 | 
				
			||||||
| 
						 | 
					@ -1120,10 +1108,6 @@ class Repository
 | 
				
			||||||
    Gitlab::Git::Repository.new(project.repository_storage, disk_path + '.git', Gitlab::GlRepository.gl_repository(project, false))
 | 
					    Gitlab::Git::Repository.new(project.repository_storage, disk_path + '.git', Gitlab::GlRepository.gl_repository(project, false))
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def circuit_breaker
 | 
					 | 
				
			||||||
    @circuit_breaker ||= Gitlab::Git::Storage::CircuitBreaker.for_storage(project.repository_storage)
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  def find_commits_by_message_by_shelling_out(query, ref, path, limit, offset)
 | 
					  def find_commits_by_message_by_shelling_out(query, ref, path, limit, offset)
 | 
				
			||||||
    ref ||= root_ref
 | 
					    ref ||= root_ref
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,5 @@
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					title: Gitaly RepositoryExists remains opt-in for all method calls
 | 
				
			||||||
 | 
					merge_request:
 | 
				
			||||||
 | 
					author:
 | 
				
			||||||
 | 
					type: fixed
 | 
				
			||||||
| 
						 | 
					@ -73,8 +73,6 @@ module Gitlab
 | 
				
			||||||
      delegate  :empty?,
 | 
					      delegate  :empty?,
 | 
				
			||||||
                to: :rugged
 | 
					                to: :rugged
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      delegate :exists?, to: :gitaly_repository_client
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      def ==(other)
 | 
					      def ==(other)
 | 
				
			||||||
        path == other.path
 | 
					        path == other.path
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
| 
						 | 
					@ -102,6 +100,18 @@ module Gitlab
 | 
				
			||||||
        @circuit_breaker ||= Gitlab::Git::Storage::CircuitBreaker.for_storage(storage)
 | 
					        @circuit_breaker ||= Gitlab::Git::Storage::CircuitBreaker.for_storage(storage)
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      def exists?
 | 
				
			||||||
 | 
					        Gitlab::GitalyClient.migrate(:repository_exists) do |enabled|
 | 
				
			||||||
 | 
					          if enabled
 | 
				
			||||||
 | 
					            gitaly_repository_client.exists?
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            circuit_breaker.perform do
 | 
				
			||||||
 | 
					              File.exist?(File.join(@path, 'refs'))
 | 
				
			||||||
 | 
					            end
 | 
				
			||||||
 | 
					          end
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Returns an Array of branch names
 | 
					      # Returns an Array of branch names
 | 
				
			||||||
      # sorted by name ASC
 | 
					      # sorted by name ASC
 | 
				
			||||||
      def branch_names
 | 
					      def branch_names
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue