Skip to content
代码片段 群组 项目
未验证 提交 120d68bd 编辑于 作者: Gabriel Mazetto's avatar Gabriel Mazetto 提交者: GitLab
浏览文件

Unified Backup: Update gitlab-backup-cli to have custom process title

上级 431f105b
No related branches found
No related tags found
无相关合并请求
...@@ -11,4 +11,4 @@ GITLAB_PATH = File.expand_path('../', __dir__) ...@@ -11,4 +11,4 @@ GITLAB_PATH = File.expand_path('../', __dir__)
require_relative '../config/boot' require_relative '../config/boot'
require 'gitlab/backup/cli' require 'gitlab/backup/cli'
Gitlab::Backup::Cli::Runner.start(ARGV) Gitlab::Backup::Cli.start(ARGV)
...@@ -29,6 +29,21 @@ module Cli ...@@ -29,6 +29,21 @@ module Cli
Error = Class.new(StandardError) Error = Class.new(StandardError)
# Entrypoint for the application
# Run any initialization logic from here
def self.start(argv)
# Set a custom process name
update_process_title!
Gitlab::Backup::Cli::Runner.start(argv)
end
def self.update_process_title!(status_message = nil)
process_title = status_message ? "gitlab-backup-cli: #{status_message}" : "gitlab-backup-cli"
Process.setproctitle(process_title)
end
def self.rails_environment! def self.rails_environment!
require File.join(GITLAB_PATH, 'config/application') require File.join(GITLAB_PATH, 'config/application')
......
...@@ -28,6 +28,8 @@ class BackupSubcommand < Command ...@@ -28,6 +28,8 @@ class BackupSubcommand < Command
desc 'all', 'Creates a backup including repositories, database and local files' desc 'all', 'Creates a backup including repositories, database and local files'
def all def all
Gitlab::Backup::Cli.update_process_title!('backup all')
duration = measure_duration do duration = measure_duration do
Gitlab::Backup::Cli::Output.info("Initializing environment...") Gitlab::Backup::Cli::Output.info("Initializing environment...")
Gitlab::Backup::Cli.rails_environment! Gitlab::Backup::Cli.rails_environment!
......
...@@ -9,6 +9,8 @@ class RestoreSubcommand < Command ...@@ -9,6 +9,8 @@ class RestoreSubcommand < Command
desc 'all BACKUP_ID', 'Restores a backup including repositories, database and local files' desc 'all BACKUP_ID', 'Restores a backup including repositories, database and local files'
def all(backup_id) def all(backup_id)
Gitlab::Backup::Cli.update_process_title!("restore all from #{backup_id}")
duration = measure_duration do duration = measure_duration do
Gitlab::Backup::Cli::Output.info("Initializing environment...") Gitlab::Backup::Cli::Output.info("Initializing environment...")
Gitlab::Backup::Cli.rails_environment! Gitlab::Backup::Cli.rails_environment!
......
# frozen_string_literal: true # frozen_string_literal: true
RSpec.describe Gitlab::Backup::Cli do RSpec.describe Gitlab::Backup::Cli do
subject(:cli) { described_class }
around do |example|
previous_title = get_process_title
example.run
Process.setproctitle(previous_title)
end
it "has a version number" do it "has a version number" do
expect(Gitlab::Backup::Cli::VERSION).not_to be nil expect(Gitlab::Backup::Cli::VERSION).not_to be nil
end end
describe '.start' do
it 'sets the process title', :silence_output do
cli.start([])
expect(get_process_title).to eq('gitlab-backup-cli')
end
it 'delegates to Runner.start' do
argv = ['version']
expect(Gitlab::Backup::Cli::Runner).to receive(:start).with(argv)
cli.start(argv)
end
end
describe '.update_process_title!' do
context 'without any parameters' do
it 'sets a process title to `gitlab-backup-cli`' do
cli.update_process_title!
expect(get_process_title).to eq('gitlab-backup-cli')
end
end
context 'with parameters' do
it 'sets a process title to `gitlab-backup-cli: ` including provided content' do
cli.update_process_title!('context info')
expect(get_process_title).to eq('gitlab-backup-cli: context info')
end
end
end
def get_process_title
ps = `ps -p #{Process.pid} -o command`
ps.split("\n").last.strip
end
end end
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册