Commit 2791226c authored by Grzegorz Bizon's avatar Grzegorz Bizon

Remove support from incremental pipeline updates

parent 57b19769
...@@ -11,7 +11,6 @@ class Projects::PipelinesController < Projects::ApplicationController ...@@ -11,7 +11,6 @@ class Projects::PipelinesController < Projects::ApplicationController
@running_or_pending_count = PipelinesFinder.new(project).execute(scope: 'running').count @running_or_pending_count = PipelinesFinder.new(project).execute(scope: 'running').count
@pipelines_count = PipelinesFinder.new(project).execute.count @pipelines_count = PipelinesFinder.new(project).execute.count
@last_updated = params[:updated_at]
respond_to do |format| respond_to do |format|
format.html format.html
...@@ -19,7 +18,7 @@ class Projects::PipelinesController < Projects::ApplicationController ...@@ -19,7 +18,7 @@ class Projects::PipelinesController < Projects::ApplicationController
render json: { render json: {
pipelines: PipelineSerializer pipelines: PipelineSerializer
.new(project: @project, user: @current_user) .new(project: @project, user: @current_user)
.incremental(@pipelines, @last_updated), .represent(@pipelines),
updated_at: Time.now.utc, updated_at: Time.now.utc,
count: { count: {
all: @pipelines_count, all: @pipelines_count,
......
...@@ -2,7 +2,7 @@ class PipelineEntity < Grape::Entity ...@@ -2,7 +2,7 @@ class PipelineEntity < Grape::Entity
include RequestAwareEntity include RequestAwareEntity
expose :id expose :id
expose :user, if: proc { created_exposure? }, using: UserEntity expose :user, using: UserEntity
expose :url do |pipeline| expose :url do |pipeline|
namespace_project_pipeline_path( namespace_project_pipeline_path(
...@@ -11,7 +11,7 @@ class PipelineEntity < Grape::Entity ...@@ -11,7 +11,7 @@ class PipelineEntity < Grape::Entity
pipeline) pipeline)
end end
expose :details, if: proc { updated_exposure? } do expose :details do
expose :status expose :status
expose :duration expose :duration
expose :finished_at expose :finished_at
...@@ -20,7 +20,7 @@ class PipelineEntity < Grape::Entity ...@@ -20,7 +20,7 @@ class PipelineEntity < Grape::Entity
expose :manual_actions, using: PipelineActionEntity expose :manual_actions, using: PipelineActionEntity
end end
expose :flags, if: proc { created_exposure? } do expose :flags do
expose :latest?, as: :latest expose :latest?, as: :latest
expose :triggered?, as: :triggered expose :triggered?, as: :triggered
...@@ -33,7 +33,7 @@ class PipelineEntity < Grape::Entity ...@@ -33,7 +33,7 @@ class PipelineEntity < Grape::Entity
end end
end end
expose :ref, if: proc { updated_exposure? } do expose :ref do
expose :name do |pipeline| expose :name do |pipeline|
pipeline.ref pipeline.ref
end end
...@@ -48,16 +48,16 @@ class PipelineEntity < Grape::Entity ...@@ -48,16 +48,16 @@ class PipelineEntity < Grape::Entity
expose :tag? expose :tag?
end end
expose :commit, if: proc { created_exposure? }, using: CommitEntity expose :commit, using: CommitEntity
expose :retry_url, if: proc { updated_exposure? } do |pipeline| expose :retry_url do |pipeline|
can?(request.user, :update_pipeline, pipeline.project) && can?(request.user, :update_pipeline, pipeline.project) &&
pipeline.retryable? && pipeline.retryable? &&
retry_namespace_project_pipeline_path(pipeline.project.namespace, retry_namespace_project_pipeline_path(pipeline.project.namespace,
pipeline.project, pipeline.id) pipeline.project, pipeline.id)
end end
expose :cancel_url, if: proc { updated_exposure? } do |pipeline| expose :cancel_url do |pipeline|
can?(request.user, :update_pipeline, pipeline.project) && can?(request.user, :update_pipeline, pipeline.project) &&
pipeline.cancelable? && pipeline.cancelable? &&
cancel_namespace_project_pipeline_path(pipeline.project.namespace, cancel_namespace_project_pipeline_path(pipeline.project.namespace,
...@@ -65,28 +65,4 @@ class PipelineEntity < Grape::Entity ...@@ -65,28 +65,4 @@ class PipelineEntity < Grape::Entity
end end
expose :created_at, :updated_at expose :created_at, :updated_at
def created_exposure?
!incremental? || created?
end
def updated_exposure?
!incremental? || updated?
end
def incremental?
options[:incremental] && last_updated
end
def last_updated
options.fetch(:last_updated)
end
def updated?
@object.updated_at > last_updated
end
def created?
@object.created_at > last_updated
end
end end
class PipelineSerializer < BaseSerializer class PipelineSerializer < BaseSerializer
entity PipelineEntity entity PipelineEntity
def incremental(resource, last_updated)
represent(resource, incremental: true,
last_updated: last_updated)
end
end end
...@@ -11,26 +11,5 @@ describe PipelineSerializer do ...@@ -11,26 +11,5 @@ describe PipelineSerializer do
let(:user) { create(:user) } let(:user) { create(:user) }
context 'when using incremental serializer' do # TODO add some tests here.
let(:json) do
serializer.incremental(pipelines, time).as_json
end
context 'when pipeline has been already updated' do
let(:time) { Time.now }
it 'exposes only minimal information' do
expect(json.first.keys).to contain_exactly(:id, :url)
expect(json.second.keys).to contain_exactly(:id, :url)
end
end
context 'when pipeline updated in the meantime' do
let(:time) { Time.now - 10.minutes }
it 'exposes new data incrementally' do
expect(json.first.keys.count).to eq 9
end
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment