summaryrefslogtreecommitdiff
path: root/app/models/project_services/issue_tracker_service.rb
diff options
context:
space:
mode:
authorMarin Jankovski <maxlazio@gmail.com>2015-02-12 13:02:58 -0800
committerMarin Jankovski <maxlazio@gmail.com>2015-02-12 13:02:58 -0800
commit1a89db5ffbca432c14eae9d364debc5b87b4635e (patch)
tree04bf628fb32a0a6377b7d04e37003bbee828cb29 /app/models/project_services/issue_tracker_service.rb
parentd899bc914f07ce47b5962563467790c25ba52c89 (diff)
downloadgitlab-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.rb23
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