Skip to content

Commit

Permalink
[api] Send all events to RabbitMQ
Browse files Browse the repository at this point in the history
This configures the remaining OBS events to sent messages to RabbitMQ.
  • Loading branch information
bgeuken committed Oct 5, 2017
1 parent 1b1690d commit 4778ff6
Show file tree
Hide file tree
Showing 8 changed files with 135 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/api/app/models/event/build.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ def custom_headers
class Event::BuildSuccess < Event::Build
self.raw_type = 'BUILD_SUCCESS'
self.description = 'Package has succeeded building'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.build_success"
end
end

class Event::BuildFail < Event::Build
Expand All @@ -31,6 +36,11 @@ class Event::BuildFail < Event::Build
self.raw_type = 'BUILD_FAIL'
self.description = 'Package has failed to build'
receiver_roles :maintainer, :bugowner, :reader
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.build_fail"
end

def subject
"Build failure of #{payload['project']}/#{payload['package']} in #{payload['repository']}/#{payload['arch']}"
Expand Down Expand Up @@ -74,4 +84,9 @@ def custom_headers
class Event::BuildUnchanged < Event::Build
# no raw_type as it should not go to plugins
self.description = 'Package has succeeded building with unchanged result'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.build_unchanged"
end
end
5 changes: 5 additions & 0 deletions src/api/app/models/event/comment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@ class Event::CommentForRequest < ::Event::Request
self.description = 'New comment for request created'
payload_keys :request_number
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.comment"
end

def subject
req = BsRequest.find_by_number(payload['number'])
Expand Down
50 changes: 50 additions & 0 deletions src/api/app/models/event/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ class Package < Base
class CreatePackage < Package
self.raw_type = 'SRCSRV_CREATE_PACKAGE'
self.description = 'Package was created'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.create"
end

def subject
"New Package #{payload['project']}/#{payload['package']}"
Expand All @@ -16,12 +21,22 @@ def subject
class UpdatePackage < Package
self.raw_type = 'SRCSRV_UPDATE_PACKAGE'
self.description = 'Package meta data was updated'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.update"
end
end

class UndeletePackage < Package
self.raw_type = 'SRCSRV_UNDELETE_PACKAGE'
self.description = 'Package was undeleted'
payload_keys :comment
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.undelete"
end

def set_payload(attribs, keys)
attribs['comment'] = attribs['comment'][0..800] unless attribs['comment'].blank?
Expand All @@ -34,6 +49,11 @@ class DeletePackage < Package
self.raw_type = 'SRCSRV_DELETE_PACKAGE'
self.description = 'Package was deleted'
payload_keys :comment, :requestid
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.delete"
end

def set_payload(attribs, keys)
attribs['comment'] = attribs['comment'][0..800] unless attribs['comment'].blank?
Expand All @@ -45,6 +65,11 @@ class BranchCommand < Package
self.raw_type = 'SRCSRV_BRANCH_COMMAND'
self.description = 'Package was branched'
payload_keys :targetproject, :targetpackage, :user
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.branch"
end

def subject
"Package Branched: #{payload['project']}/#{payload['package']} => #{payload['targetproject']}/#{payload['targetpackage']}"
Expand All @@ -55,6 +80,11 @@ class VersionChange < Package
self.raw_type = 'SRCSRV_VERSION_CHANGE'
self.description = 'Package has changed its version'
payload_keys :comment, :requestid, :files, :rev, :newversion, :user, :oldversion
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.version_change"
end

def set_payload(attribs, keys)
attribs['comment'] = attribs['comment'][0..800] unless attribs['comment'].blank?
Expand All @@ -69,6 +99,11 @@ class Commit < Package
payload_keys :project, :package, :comment, :user, :files, :rev, :requestid

create_jobs :update_backend_infos_job
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.commit"
end

def subject
"#{payload['project']}/#{payload['package']} r#{payload['rev']} commited"
Expand All @@ -85,6 +120,11 @@ class Upload < Package
self.raw_type = 'SRCSRV_UPLOAD'
self.description = 'Package sources were uploaded'
payload_keys :project, :package, :comment, :filename, :requestid, :target, :user
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.upload"
end
end

class ServiceSuccess < Package
Expand All @@ -93,6 +133,11 @@ class ServiceSuccess < Package
payload_keys :comment, :package, :project, :rev, :user, :requestid
receiver_roles :maintainer, :bugowner
create_jobs :update_backend_infos_job
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.service_success"
end

def subject
"Source service succeeded of #{payload['project']}/#{payload['package']}"
Expand All @@ -111,6 +156,11 @@ class ServiceFail < Package
payload_keys :comment, :error, :package, :project, :rev, :user, :requestid
receiver_roles :maintainer, :bugowner
create_jobs :update_backend_infos_job
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.package.service_fail"
end

def subject
"Source service failure of #{payload['project']}/#{payload['package']}"
Expand Down
5 changes: 5 additions & 0 deletions src/api/app/models/event/packtrack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ class Event::Packtrack < Event::Base

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

def self.message_bus_queue
"#{Configuration.amqp_namespace}.repo.packtrack"
end
end

# == Schema Information
Expand Down
25 changes: 25 additions & 0 deletions src/api/app/models/event/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@ class CreateProject < Project
self.raw_type = 'SRCSRV_CREATE_PROJECT'
self.description = 'Project is created'
payload_keys :sender
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.project.create"
end

def subject
"New Project #{payload['project']}"
Expand All @@ -18,24 +23,44 @@ class UpdateProjectConfig < Project
self.raw_type = 'SRCSRV_UPDATE_PROJECT_CONFIG'
self.description = 'Project _config was updated'
payload_keys :sender, :files, :comment
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.project.update_project_conf"
end
end

class UndeleteProject < Project
self.raw_type = 'SRCSRV_UNDELETE_PROJECT'
self.description = 'Project was undeleted'
payload_keys :comment, :sender
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.project.undelete"
end
end

class UpdateProject < Project
self.raw_type = 'SRCSRV_UPDATE_PROJECT'
self.description = 'Project meta was updated'
payload_keys :sender
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.project.update"
end
end

class DeleteProject < Project
self.raw_type = 'SRCSRV_DELETE_PROJECT'
self.description = 'Project was deleted'
payload_keys :comment, :requestid, :sender
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.project.delete"
end
end
end

Expand Down
5 changes: 5 additions & 0 deletions src/api/app/models/event/repo_publish_state.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ class Event::RepoPublishState < Event::Base
self.raw_type = 'REPO_PUBLISH_STATE'
self.description = 'Publish State of Repository has changed'
payload_keys :project, :repo, :state
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.repo.publish_state"
end
end

# == Schema Information
Expand Down
5 changes: 5 additions & 0 deletions src/api/app/models/event/repo_published.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ class Event::RepoPublished < Event::Base
self.raw_type = 'REPO_PUBLISHED'
self.description = 'Repository was published'
payload_keys :project, :repo
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.repo.published"
end
end

# == Schema Information
Expand Down
25 changes: 25 additions & 0 deletions src/api/app/models/event/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,12 +124,22 @@ def source_maintainers
class Event::RequestChange < Event::Request
self.raw_type = 'SRCSRV_REQUEST_CHANGE'
self.description = 'Request XML was updated (admin only)'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.change"
end
end

class Event::RequestCreate < Event::Request
self.raw_type = 'SRCSRV_REQUEST_CREATE'
self.description = 'Request created'
receiver_roles :source_maintainer, :target_maintainer
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.create"
end

def custom_headers
base = super
Expand All @@ -151,13 +161,23 @@ def expanded_payload
class Event::RequestDelete < Event::Request
self.raw_type = 'SRCSRV_REQUEST_DELETE'
self.description = 'Request was deleted (admin only)'
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.delete"
end
end

class Event::RequestStatechange < Event::Request
self.raw_type = 'SRCSRV_REQUEST_STATECHANGE'
self.description = 'Request state was changed'
payload_keys :oldstate
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer
after_commit :send_to_bus

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.state_change"
end

def subject
"Request #{payload['number']} changed to #{payload['state']} (#{actions_summary})"
Expand All @@ -169,6 +189,11 @@ class Event::ReviewWanted < Event::Request

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

def self.message_bus_queue
"#{Configuration.amqp_namespace}.request.review_wanted"
end

def subject
"Request #{payload['number']} requires review (#{actions_summary})"
Expand Down

0 comments on commit 4778ff6

Please sign in to comment.