diff options
author | Marin Jankovski <maxlazio@gmail.com> | 2015-02-12 13:02:58 -0800 |
---|---|---|
committer | Marin Jankovski <maxlazio@gmail.com> | 2015-02-12 13:02:58 -0800 |
commit | 1a89db5ffbca432c14eae9d364debc5b87b4635e (patch) | |
tree | 04bf628fb32a0a6377b7d04e37003bbee828cb29 /app/models/project_services/issue_tracker_service.rb | |
parent | d899bc914f07ce47b5962563467790c25ba52c89 (diff) | |
download | gitlab-ce-1a89db5ffbca432c14eae9d364debc5b87b4635e.tar.gz |
Try to test settings added in the service.
Diffstat (limited to 'app/models/project_services/issue_tracker_service.rb')
-rw-r--r-- | app/models/project_services/issue_tracker_service.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/models/project_services/issue_tracker_service.rb b/app/models/project_services/issue_tracker_service.rb index 51b2fb3dcc7..3d927bb50d4 100644 --- a/app/models/project_services/issue_tracker_service.rb +++ b/app/models/project_services/issue_tracker_service.rb @@ -65,6 +65,29 @@ class IssueTrackerService < Service end end + def execute(data) + message = "#{self.type} was unable to reach #{self.project_url}. Check the url and try again." + result = false + + begin + url = URI.parse(self.project_url) + + if url.host && url.port + http = Net::HTTP.start(url.host, url.port, {open_timeout: 5, read_timeout: 5}) + response = http.head("/") + + if response + message = "#{self.type} received response #{response.code} when attempting to connect to #{self.project_url}" + result = true + end + end + rescue Timeout::Error, SocketError, Errno::ECONNRESET, Errno::ECONNREFUSED => error + message = "#{self.type} had an error when trying to connect to #{self.project_url}: #{error.message}" + end + Rails.logger.info(message) + result + end + private def enabled_in_gitlab_config |