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 | |
parent | d899bc914f07ce47b5962563467790c25ba52c89 (diff) | |
download | gitlab-ce-1a89db5ffbca432c14eae9d364debc5b87b4635e.tar.gz |
Try to test settings added in the service.
-rw-r--r-- | app/controllers/projects/services_controller.rb | 2 | ||||
-rw-r--r-- | app/models/project_services/issue_tracker_service.rb | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb index b3110eacc18..2b3e70f7bdb 100644 --- a/app/controllers/projects/services_controller.rb +++ b/app/controllers/projects/services_controller.rb @@ -29,7 +29,7 @@ class Projects::ServicesController < Projects::ApplicationController if @service.execute(data) message = { notice: 'We sent a request to the provided URL' } else - message = { alert: 'We tried to send a request to the provided URL but error occured' } + message = { alert: 'We tried to send a request to the provided URL but an error occured' } end redirect_to :back, message 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 |