summaryrefslogtreecommitdiff
path: root/app/controllers/projects/serverless
diff options
context:
space:
mode:
authorChris Baumbauer <cab@cabnetworks.net>2018-12-16 23:31:38 -0800
committerChris Baumbauer <cab@cabnetworks.net>2019-01-10 14:13:41 -0800
commit1102deb0bd04a1bdf550ed74cf381a6bd400a7e0 (patch)
treed734488f04098bdabbae3ce0621debf0eb6bf918 /app/controllers/projects/serverless
parent71026ffd7e71da726a9b740d42093926f8477c3e (diff)
downloadgitlab-ce-1102deb0bd04a1bdf550ed74cf381a6bd400a7e0.tar.gz
Initial Serverless Functions detailed view
Diffstat (limited to 'app/controllers/projects/serverless')
-rw-r--r--app/controllers/projects/serverless/functions_controller.rb31
1 files changed, 26 insertions, 5 deletions
diff --git a/app/controllers/projects/serverless/functions_controller.rb b/app/controllers/projects/serverless/functions_controller.rb
index 0af2b7ef343..39eca10134f 100644
--- a/app/controllers/projects/serverless/functions_controller.rb
+++ b/app/controllers/projects/serverless/functions_controller.rb
@@ -7,19 +7,17 @@ module Projects
before_action :authorize_read_cluster!
- INDEX_PRIMING_INTERVAL = 10_000
- INDEX_POLLING_INTERVAL = 30_000
+ INDEX_PRIMING_INTERVAL = 15_000
+ INDEX_POLLING_INTERVAL = 60_000
def index
- finder = Projects::Serverless::FunctionsFinder.new(project.clusters)
-
respond_to do |format|
format.json do
functions = finder.execute
if functions.any?
Gitlab::PollingInterval.set_header(response, interval: INDEX_POLLING_INTERVAL)
- render json: Projects::Serverless::ServiceSerializer.new(current_user: @current_user).represent(functions)
+ render json: serialize_function(functions)
else
Gitlab::PollingInterval.set_header(response, interval: INDEX_PRIMING_INTERVAL)
head :no_content
@@ -32,6 +30,29 @@ module Projects
end
end
end
+
+ def show
+ @service = serialize_function(finder.service(params[:environment_id], params[:id]))
+ return not_found if @service.nil?
+
+ respond_to do |format|
+ format.json do
+ render json: @service
+ end
+
+ format.html
+ end
+ end
+
+ private
+
+ def finder
+ Projects::Serverless::FunctionsFinder.new(project.clusters)
+ end
+
+ def serialize_function(function)
+ Projects::Serverless::ServiceSerializer.new(current_user: @current_user, project: project).represent(function)
+ end
end
end
end