Skip to content

Commit

Permalink
[ci] Task for manual project log rotate job
Browse files Browse the repository at this point in the history
  • Loading branch information
Ana06 committed Dec 8, 2017
1 parent 886c5a4 commit 668724d
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions src/api/lib/tasks/project_log_rotate_manually.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
desc 'Run project log rotate job manually'
task :project_log_rotate_manually do
# Package and Project events
event_types = ["Event::BranchCommand",
"Event::Build",
"Event::CommentForPackage",
"Event::Commit",
"Event::CreatePackage",
"Event::DeletePackage",
"Event::ServiceFail",
"Event::ServiceSuccess",
"Event::UndeletePackage",
"Event::UpdatePackage",
"Event::Upload",
"Event::VersionChange",
"Event::CommentForProject",
"Event::CreateProject",
"Event::DeleteProject",
"Event::UndeleteProject",
"Event::UpdateProjectConfig",
"Event::UpdateProject"]
oldest_date = 10.days.ago

# First, skip old events and mark them all as "logged" (even those that
# don't belong to the event_classes)
Event::Base.where(project_logged: false).where(["created_at < ?", oldest_date]).update_all(project_logged: true)

# Create log entries based on the events in event_classes
Event::Base.where(project_logged: false, eventtype: event_types).find_in_batches(batch_size: 10000) do |events_batch|
events_batch.each do |event|
entry = ProjectLogEntry.create_from(event)
event.update_attributes(project_logged: true) if entry.persisted?
end
end

# Clean up old entries
ProjectLogEntry.clean_older_than oldest_date
end

0 comments on commit 668724d

Please sign in to comment.