Skip to content

Commit

Permalink
Make message_bus_routing_key a class attribute
Browse files Browse the repository at this point in the history
To avoid every such message_bus_routing_key to appear
unconvered (unless sent to a bus)
  • Loading branch information
coolo committed Nov 14, 2018
1 parent 55b5d8b commit ab9e595
Show file tree
Hide file tree
Showing 34 changed files with 42 additions and 144 deletions.
13 changes: 7 additions & 6 deletions src/api/app/models/event/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ class Base < ApplicationRecord

class << self
attr_accessor :description
attr_accessor :message_bus_routing_key
@payload_keys = nil
@create_jobs = nil
@classnames = nil
Expand Down Expand Up @@ -80,10 +81,6 @@ def inherited(subclass)
subclass.create_jobs(*create_jobs)
subclass.receiver_roles(*receiver_roles)
end

def message_bus_routing_key
raise NotImplementedError
end
end

# just for convenience
Expand Down Expand Up @@ -271,12 +268,16 @@ def _roles(role, project, package = nil)
end

def send_to_bus
RabbitmqBus.send_to_bus(self.class.message_bus_routing_key, self[:payload])
RabbitmqBus.send_to_bus(message_bus_routing_key, self[:payload])
RabbitmqBus.send_to_bus('metrics', to_metric) if metric_fields.present?
end

private

def message_bus_routing_key
self.class.message_bus_routing_key
end

def metric_tags
{}
end
Expand All @@ -286,7 +287,7 @@ def metric_fields
end

def metric_measurement
self.class.message_bus_routing_key
message_bus_routing_key
end

def to_metric
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/branch_command.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class BranchCommand < Base
self.description = 'Package was branched'
self.message_bus_routing_key = 'package.branch'
payload_keys :project, :package, :sender, :targetproject, :targetpackage, :user
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.branch'
end

def subject
"Package Branched: #{payload['project']}/#{payload['package']} => #{payload['targetproject']}/#{payload['targetpackage']}"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/build_fail.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,11 @@ module Event
class BuildFail < Build
include BuildLogSupport

self.message_bus_routing_key = 'package.build_fail'
self.description = 'Package has failed to build'
receiver_roles :maintainer, :bugowner, :reader, :watcher
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.build_fail'
end

def subject
"Build failure of #{payload['project']}/#{payload['package']} in #{payload['repository']}/#{payload['arch']}"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/build_success.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
module Event
class BuildSuccess < Build
self.message_bus_routing_key = 'package.build_success'
self.description = 'Package has succeeded building'
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.build_success'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/build_unchanged.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
module Event
class BuildUnchanged < Build
self.message_bus_routing_key = 'package.build_unchanged'
self.description = 'Package has succeeded building with unchanged result'
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.build_unchanged'
end
end
end

Expand Down
9 changes: 2 additions & 7 deletions src/api/app/models/event/comment_for_package.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
module Event
class CommentForPackage < Base
include CommentEvent
self.description = 'Package was touched'
self.message_bus_routing_key = 'package.comment'
self.description = 'New comment for package created'
receiver_roles :maintainer, :bugowner, :watcher
after_create_commit :send_to_bus
payload_keys :project, :package, :sender

def self.message_bus_routing_key
'package.comment'
end

self.description = 'New comment for package created'

def subject
"New comment in package #{payload['project']}/#{payload['package']} by #{User.find(payload['commenter']).login}"
end
Expand Down
9 changes: 2 additions & 7 deletions src/api/app/models/event/comment_for_project.rb
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
module Event
class CommentForProject < Base
include CommentEvent
self.description = 'Project was touched'
self.message_bus_routing_key = 'project.comment'
self.description = 'New comment for project created'
payload_keys :project
receiver_roles :maintainer, :bugowner, :watcher
after_create_commit :send_to_bus

def self.message_bus_routing_key
'project.comment'
end

self.description = 'New comment for project created'

def subject
"New comment in project #{payload['project']} by #{User.find(payload['commenter']).login}"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/comment_for_request.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
module Event
class CommentForRequest < Request
include CommentEvent
self.message_bus_routing_key = 'request.comment'
self.description = 'New comment for request created'
payload_keys :request_number
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.comment'
end

def subject
req = BsRequest.find_by_number(payload['number'])
req_payload = req.notify_parameters
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/commit.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
module Event
class Commit < Base
self.message_bus_routing_key = 'package.commit'
self.description = 'New revision of a package was commited'
payload_keys :project, :package, :sender, :comment, :user, :files, :rev, :requestid

create_jobs :update_backend_infos_job
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.commit'
end

def subject
"#{payload['project']}/#{payload['package']} r#{payload['rev']} commited"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/create_package.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class CreatePackage < Base
self.message_bus_routing_key = 'package.create'
self.description = 'Package was created'
payload_keys :project, :package, :sender
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.create'
end

def subject
"New Package #{payload['project']}/#{payload['package']}"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/create_project.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class CreateProject < Base
self.message_bus_routing_key = 'project.create'
self.description = 'Project is created'
payload_keys :project, :sender
after_create_commit :send_to_bus

def self.message_bus_routing_key
'project.create'
end

def subject
"New Project #{payload['project']}"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/delete_package.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class DeletePackage < Base
self.message_bus_routing_key = 'package.delete'
self.description = 'Package was deleted'
payload_keys :project, :package, :sender, :comment, :requestid
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.delete'
end

def set_payload(attribs, keys)
attribs['comment'] = attribs['comment'][0..800] if attribs['comment'].present?
super(attribs, keys)
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/delete_project.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class DeleteProject < Base
self.message_bus_routing_key = 'project.delete'
self.description = 'Project was deleted'
payload_keys :project, :comment, :requestid, :sender
after_create_commit :send_to_bus

def self.message_bus_routing_key
'project.delete'
end

private

def metric_tags
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/packtrack.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
module Event
class Packtrack < Base
self.message_bus_routing_key = 'repo.packtrack'
self.description = 'Binary was published'
payload_keys :project, :repo, :payload

# for package tracking in first place
create_jobs :update_released_binaries_job
after_create_commit :send_to_bus

def self.message_bus_routing_key
'repo.packtrack'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/repo_build_finished.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
module Event
class RepoBuildFinished < Base
self.message_bus_routing_key = 'repo.build_finished'
self.description = 'Repository finished building'
payload_keys :project, :repo, :arch, :buildid
after_create_commit :send_to_bus

def self.message_bus_routing_key
'repo.build_finished'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/repo_publish_state.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
module Event
class RepoPublishState < Base
self.message_bus_routing_key = 'repo.publish_state'
self.description = 'Publish State of Repository has changed'
payload_keys :project, :repo, :state
after_create_commit :send_to_bus

def self.message_bus_routing_key
'repo.publish_state'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/repo_published.rb
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
module Event
class RepoPublished < Base
self.message_bus_routing_key = 'repo.published'
self.description = 'Repository was published'
payload_keys :project, :repo, :buildid
after_create_commit :send_to_bus

def self.message_bus_routing_key
'repo.published'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/request_change.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
module Event
class RequestChange < Request
self.message_bus_routing_key = 'request.change'
self.description = 'Request XML was updated (admin only)'
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.change'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/request_create.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
module Event
class RequestCreate < Request
self.message_bus_routing_key = 'request.create'
self.description = 'Request created'
receiver_roles :source_maintainer, :target_maintainer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.create'
end

def custom_headers
base = super
# we're the one they mean
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/request_delete.rb
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
module Event
class RequestDelete < Request
self.message_bus_routing_key = 'request.delete'
self.description = 'Request was deleted (admin only)'
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.delete'
end
end
end

Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/request_statechange.rb
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
module Event
class RequestStatechange < Request
self.message_bus_routing_key = 'request.state_change'
self.description = 'Request state was changed'
payload_keys :oldstate
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.state_change'
end

def subject
"Request #{payload['number']} changed to #{payload['state']} (#{actions_summary})"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/review_wanted.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
module Event
class ReviewWanted < Request
self.message_bus_routing_key = 'request.review_wanted'
self.description = 'Review was created'

payload_keys :reviewers, :by_user, :by_group, :by_project, :by_package
receiver_roles :reviewer
after_create_commit :send_to_bus

def self.message_bus_routing_key
'request.review_wanted'
end

def subject
"Request #{payload['number']} requires review (#{actions_summary})"
end
Expand Down
5 changes: 1 addition & 4 deletions src/api/app/models/event/service_fail.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
module Event
class ServiceFail < Base
self.message_bus_routing_key = 'package.service_fail'
self.description = 'Package source service has failed'
payload_keys :project, :package, :sender, :comment, :error, :rev, :user, :requestid
receiver_roles :maintainer, :bugowner
create_jobs :update_backend_infos_job
after_create_commit :send_to_bus

def self.message_bus_routing_key
'package.service_fail'
end

def subject
"Source service failure of #{payload['project']}/#{payload['package']}"
end
Expand Down

0 comments on commit ab9e595

Please sign in to comment.