self.populate_commands

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