Skip to content

Commit

Permalink
Merge pull request #4027 from coolo/publish_on_exchange
Browse files Browse the repository at this point in the history
[frontend] Publish on the rabbitmq exchange
  • Loading branch information
Moisés Déniz Alemán committed Oct 17, 2017
2 parents 6a85529 + 96957ff commit 7a01403
Show file tree
Hide file tree
Showing 11 changed files with 34 additions and 43 deletions.
4 changes: 2 additions & 2 deletions src/api/app/models/event/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def inherited(subclass)
subclass.receiver_roles(*receiver_roles)
end

def message_bus_queue
def message_bus_routing_key
raise NotImplementedError
end
end
Expand Down Expand Up @@ -265,7 +265,7 @@ def _roles(role, project, package = nil)
end

def send_to_bus
RabbitmqBus.publish(self.class.message_bus_queue, read_attribute(:payload))
RabbitmqBus.publish(self.class.message_bus_routing_key, read_attribute(:payload))
rescue Bunny::Exception => e
logger.error "Publishing to RabbitMQ failed: #{e.message}"
end
Expand Down
6 changes: 3 additions & 3 deletions src/api/app/models/event/build.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Event::BuildSuccess < Event::Build
self.description = 'Package has succeeded building'
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.package.build_success"
end
end
Expand All @@ -36,7 +36,7 @@ class Event::BuildFail < Event::Build
receiver_roles :maintainer, :bugowner, :reader, :watcher
after_create_commit :send_to_bus

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

Expand Down Expand Up @@ -83,7 +83,7 @@ class Event::BuildUnchanged < Event::Build
self.description = 'Package has succeeded building with unchanged result'
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.package.build_unchanged"
end
end
6 changes: 3 additions & 3 deletions src/api/app/models/event/comment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class Event::CommentForProject < ::Event::Project
receiver_roles :maintainer, :watcher
after_create_commit :send_to_bus

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

Expand All @@ -50,7 +50,7 @@ class Event::CommentForPackage < ::Event::Package
receiver_roles :maintainer, :watcher
after_create_commit :send_to_bus

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

Expand All @@ -68,7 +68,7 @@ class Event::CommentForRequest < ::Event::Request
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

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

Expand Down
20 changes: 10 additions & 10 deletions src/api/app/models/event/package.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class CreatePackage < Package
self.description = 'Package was created'
after_create_commit :send_to_bus

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

Expand All @@ -21,7 +21,7 @@ class UpdatePackage < Package
self.description = 'Package meta data was updated'
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.package.update"
end
end
Expand All @@ -31,7 +31,7 @@ class UndeletePackage < Package
payload_keys :comment
after_create_commit :send_to_bus

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

Expand All @@ -47,7 +47,7 @@ class DeletePackage < Package
payload_keys :comment, :requestid
after_create_commit :send_to_bus

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

Expand All @@ -62,7 +62,7 @@ class BranchCommand < Package
payload_keys :targetproject, :targetpackage, :user
after_create_commit :send_to_bus

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

Expand All @@ -76,7 +76,7 @@ class VersionChange < Package
payload_keys :comment, :requestid, :files, :rev, :newversion, :user, :oldversion
after_create_commit :send_to_bus

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

Expand All @@ -94,7 +94,7 @@ class Commit < Package
create_jobs :update_backend_infos_job
after_create_commit :send_to_bus

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

Expand All @@ -114,7 +114,7 @@ class Upload < Package
payload_keys :project, :package, :comment, :filename, :requestid, :target, :user
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.package.upload"
end
end
Expand All @@ -126,7 +126,7 @@ class ServiceSuccess < Package
create_jobs :update_backend_infos_job
after_create_commit :send_to_bus

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

Expand All @@ -148,7 +148,7 @@ class ServiceFail < Package
create_jobs :update_backend_infos_job
after_create_commit :send_to_bus

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

Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/event/packtrack.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ class Event::Packtrack < Event::Base
create_jobs :update_released_binaries_job
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.repo.packtrack"
end
end
Expand Down
10 changes: 5 additions & 5 deletions src/api/app/models/event/project.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class CreateProject < Project
payload_keys :sender
after_create_commit :send_to_bus

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

Expand All @@ -23,7 +23,7 @@ class UpdateProjectConfig < Project
payload_keys :sender, :files, :comment
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.project.update_project_conf"
end
end
Expand All @@ -33,7 +33,7 @@ class UndeleteProject < Project
payload_keys :comment, :sender
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.project.undelete"
end
end
Expand All @@ -43,7 +43,7 @@ class UpdateProject < Project
payload_keys :sender
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.project.update"
end
end
Expand All @@ -53,7 +53,7 @@ class DeleteProject < Project
payload_keys :comment, :requestid, :sender
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.project.delete"
end
end
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/event/repo_publish_state.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Event::RepoPublishState < Event::Base
payload_keys :project, :repo, :state
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.repo.publish_state"
end
end
Expand Down
2 changes: 1 addition & 1 deletion src/api/app/models/event/repo_published.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Event::RepoPublished < Event::Base
payload_keys :project, :repo
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.repo.published"
end
end
Expand Down
10 changes: 5 additions & 5 deletions src/api/app/models/event/request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ class Event::RequestChange < Event::Request
self.description = 'Request XML was updated (admin only)'
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.request.change"
end
end
Expand All @@ -151,7 +151,7 @@ class Event::RequestCreate < Event::Request
receiver_roles :source_maintainer, :target_maintainer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

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

Expand All @@ -176,7 +176,7 @@ class Event::RequestDelete < Event::Request
self.description = 'Request was deleted (admin only)'
after_create_commit :send_to_bus

def self.message_bus_queue
def self.message_bus_routing_key
"#{Configuration.amqp_namespace}.request.delete"
end
end
Expand All @@ -187,7 +187,7 @@ class Event::RequestStatechange < Event::Request
receiver_roles :source_maintainer, :target_maintainer, :creator, :reviewer, :source_watcher, :target_watcher
after_create_commit :send_to_bus

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

Expand All @@ -203,7 +203,7 @@ class Event::ReviewWanted < Event::Request
receiver_roles :reviewer
after_create_commit :send_to_bus

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

Expand Down
10 changes: 1 addition & 9 deletions src/api/config/options.yml.example
Original file line number Diff line number Diff line change
Expand Up @@ -176,16 +176,8 @@ backup_port: 22
# Exchange options -> http://rubybunny.info/articles/exchanges.html
# amqp_exchange_name: pubsub
# amqp_exchange_options:
# type: topic
# type: :topic
# auto_delete: false
# arguments:
# persistent: true
# passive: true
#
# Queue options -> http://rubybunny.info/articles/queues.html
# amqp_queue_options:
# durable: false
# auto-delete: false
# exclusive: false
# arguments:
# extension_1: blah
5 changes: 2 additions & 3 deletions src/api/lib/rabbitmq_bus.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
class RabbitmqBus
def self.publish(event_queue_name, event_payload)
def self.publish(event_routing_key, event_payload)
return unless CONFIG['amqp_options']
start_connection

queue = $rabbitmq_channel.queue(event_queue_name, CONFIG['amqp_queue_options'].try(:symbolize_keys) || {})
$rabbitmq_exchange.publish(event_payload, routing_key: queue.name)
$rabbitmq_exchange.publish(event_payload, routing_key: event_routing_key)
end

# Start one connection, channel and exchange per rails process
Expand Down

0 comments on commit 7a01403

Please sign in to comment.