summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2016-10-11 18:42:47 +0200
committerJacob Vosmaer <jacob@gitlab.com>2016-10-11 18:42:47 +0200
commit48ada1f74463e64257955f24a8cf2d1ec3eb427d (patch)
tree954e7c0f208e1122bf78fcab7e52a20226f07274
parentc06b7d865a203b584d0eb58d94aa3e3532a39ffe (diff)
downloadgitlab-ce-48ada1f74463e64257955f24a8cf2d1ec3eb427d.tar.gz
Send openshift credentials to workhorse
-rw-r--r--app/controllers/projects/deployments_controller.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb
index e376c717f2f..edbe624a31a 100644
--- a/app/controllers/projects/deployments_controller.rb
+++ b/app/controllers/projects/deployments_controller.rb
@@ -8,12 +8,18 @@ class Projects::DeploymentsController < Projects::ApplicationController
def terminal_websocket_authorize
Gitlab::Workhorse.verify_api_request!(request.headers)
- openshift_project = project.variables.find_by(key: 'CI_PROJECT_NAME')
- openshift_app = project.variables.find_by(key: 'APP')
+
+ variables = Hash[*%w[
+ openshift_project CI_PROJECT_NAME
+ openshift_app APP
+ openshift_server OPENSHIFT_SERVER
+ openshift_token OPENSHIFT_TOKEN
+ ]].map { |json_key, variable_key| [json_key, project.variables.find_by(key: variable_key)] }.to_h
+
# TODO: restrict access: this allows even 'guests' to have terminal access
- if openshift_project.present? && openshift_app.present?
+ if variables.values.all?(&:present?)
set_workhorse_internal_api_content_type
- render json: {openshift_app: openshift_app.value, openshift_project: openshift_project.value}
+ render json: variables.map { |k, v| [k, v.value] }.to_h
else
render text: 'Not found', status: 404
end