summaryrefslogtreecommitdiff
path: root/app/controllers/projects/deployments_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/projects/deployments_controller.rb')
-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