Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/system_check/orphans/repository_check.rb')
-rw-r--r--lib/system_check/orphans/repository_check.rb73
1 files changed, 0 insertions, 73 deletions
diff --git a/lib/system_check/orphans/repository_check.rb b/lib/system_check/orphans/repository_check.rb
deleted file mode 100644
index 8f15872de22..00000000000
--- a/lib/system_check/orphans/repository_check.rb
+++ /dev/null
@@ -1,73 +0,0 @@
-# frozen_string_literal: true
-
-module SystemCheck
- module Orphans
- class RepositoryCheck < SystemCheck::BaseCheck
- set_name 'Orphaned repositories:'
-
- def multi_check
- Gitlab::GitalyClient::StorageSettings.allow_disk_access do
- Gitlab.config.repositories.storages.each do |storage_name, repository_storage|
- storage_path = repository_storage.legacy_disk_path
-
- $stdout.puts
- $stdout.puts "* Storage: #{storage_name} (#{storage_path})".color(:yellow)
-
- repositories = disk_repositories(storage_path)
- orphans = (repositories - fetch_repositories(storage_name))
-
- print_orphans(orphans, storage_name)
- end
- end
- end
-
- private
-
- def print_orphans(orphans, storage_name)
- if orphans.empty?
- $stdout.puts "* No orphaned repositories for #{storage_name} storage".color(:green)
- return
- end
-
- orphans.each do |orphan|
- $stdout.puts " - #{orphan}".color(:red)
- end
- end
-
- def disk_repositories(storage_path)
- fetch_disk_namespaces(storage_path).each_with_object([]) do |namespace_path, result|
- namespace = File.basename(namespace_path)
- next if namespace.eql?('@hashed')
-
- fetch_disk_repositories(namespace_path).each do |repo|
- result << "#{namespace}/#{File.basename(repo)}"
- end
- end
- end
-
- def fetch_repositories(storage_name)
- sql = "
- SELECT
- CONCAT(n.path, '/', p.path, '.git') repo,
- CONCAT(n.path, '/', p.path, '.wiki.git') wiki
- FROM projects p
- JOIN namespaces n
- ON (p.namespace_id = n.id AND
- n.parent_id IS NULL)
- WHERE (p.repository_storage LIKE ?)
- "
-
- query = ::Project.sanitize_sql_array([sql, storage_name])
- ::Project.connection.select_all(query).rows.try(:flatten!) || []
- end
-
- def fetch_disk_namespaces(storage_path)
- Dir.glob(File.join(storage_path, '*'))
- end
-
- def fetch_disk_repositories(namespace_path)
- Dir.glob(File.join(namespace_path, '*'))
- end
- end
- end
-end