Commit 569a88a4 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

raise exception if gitolite is broken

parent 5c3fdfaa
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
%p %p
Diagnostic tool: Diagnostic tool:
%pre %pre
bundle exec rake gitlab:app:status RAILS_ENV=production bundle exec rake gitlab:check RAILS_ENV=production
%li %li
%p %p
Permissions: Permissions:
......
...@@ -6,6 +6,7 @@ module Gitlab ...@@ -6,6 +6,7 @@ module Gitlab
class GitoliteConfig class GitoliteConfig
class PullError < StandardError; end class PullError < StandardError; end
class PushError < StandardError; end class PushError < StandardError; end
class BrokenGitolite < StandardError; end
attr_reader :config_tmp_dir, :ga_repo, :conf attr_reader :config_tmp_dir, :ga_repo, :conf
...@@ -72,6 +73,10 @@ module Gitlab ...@@ -72,6 +73,10 @@ module Gitlab
log("Push error -> " + " " + ex.message) log("Push error -> " + " " + ex.message)
raise Gitolite::AccessDenied, ex.message raise Gitolite::AccessDenied, ex.message
rescue BrokenGitolite => ex
log("Gitolite error -> " + " " + ex.message)
raise Gitolite::AccessDenied, ex.message
rescue Exception => ex rescue Exception => ex
log(ex.class.name + " " + ex.message) log(ex.class.name + " " + ex.message)
raise Gitolite::AccessDenied.new("gitolite timeout") raise Gitolite::AccessDenied.new("gitolite timeout")
...@@ -202,7 +207,15 @@ module Gitlab ...@@ -202,7 +207,15 @@ module Gitlab
system('git commit -m "GitLab"') # git commit returns 0 on success, and 1 if there is nothing to commit system('git commit -m "GitLab"') # git commit returns 0 on success, and 1 if there is nothing to commit
raise "Git commit failed." unless [0,1].include? $?.exitstatus raise "Git commit failed." unless [0,1].include? $?.exitstatus
if system('git push') stdin, stdout, stderr = Open3.popen3('git push')
push_output = stderr.read
push_status = $?.to_i
if push_output =~ /remote\: FATAL/
raise BrokenGitolite, push_output
end
if push_status.zero?
Dir.chdir(Rails.root) Dir.chdir(Rails.root)
else else
raise PushError, "unable to push gitolite-admin repo" raise PushError, "unable to push gitolite-admin repo"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment