in files/gitlab-ctl-commands/lib/praefect.rb [96:157]
def self.populate_commands(options)
praefect_docs_url = 'https://docs.gitlab.com/ee/administration/gitaly/recovery.html'
{
'remove-repository' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect remove-repository [options]. See documentation at #{praefect_docs_url}#manually-remove-repositories"
parse_common_options!(options, opts)
parse_repository_options!(options, opts)
parse_remove_repository_options!(options, opts)
end,
'track-repository' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect track-repository [options]. See documentation at #{praefect_docs_url}#manually-add-a-single-repository-to-the-tracking-database"
parse_common_options!(options, opts)
parse_repository_options!(options, opts)
opts.on('--authoritative-storage STORAGE-NAME', indent(STORAGE_NAME_DESC, DESC_INDENT)) do |authoritative_storage|
options[:authoritative_storage] = authoritative_storage
end
parse_replicate_immediately_option!(options, opts)
end,
'track-repositories' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect track-repositories [options]. See documentation at #{praefect_docs_url}#manually-add-many-repositories-to-the-tracking-database"
parse_common_options!(options, opts)
opts.on('--input-path INPUT-PATH', "The path the file containing the list of repositories to be tracked. Must contain a newline-delimited list of
JSON objects. Each object must contain the following keys:
- relative_path: #{indent(RELATIVE_PATH_DESC, LIST_INDENT).chop}
- virtual_storage: #{indent(VIRTUAL_STORAGE_DESC, LIST_INDENT).chop}
- authoritative_storage: #{indent(STORAGE_NAME_DESC, LIST_INDENT).chop}") do |input_path|
options[:input_path] = input_path
end
parse_replicate_immediately_option!(options, opts)
end,
'list-untracked-repositories' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect list-untracked-repositories [options]. See documentation at #{praefect_docs_url}#list-untracked-repositories"
parse_common_options!(options, opts)
end,
'check' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect check"
parse_common_options!(options, opts)
end,
'list-storages' => OptionParser.new do |opts|
opts.banner = "Usage: gitlab-ctl praefect list-storages [options]. See documentation at #{praefect_docs_url}#list-virtual-storage-details"
parse_common_options!(options, opts)
parse_virtual_storage_option!(options, opts)
end,
}
end