ruby_rabbitmq_janus 2.3.1.pre.201 → 2.4.0.pre.208
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rrj/admin.rb +1 -2
- data/lib/rrj/info.rb +1 -1
- data/lib/rrj/janus/processus/concurrency.rb +1 -0
- data/lib/rrj/janus/processus/event.rb +4 -2
- data/lib/rrj/janus/processus/event_admin.rb +20 -0
- data/lib/rrj/janus/transactions/admin.rb +5 -1
- data/lib/rrj/models/active_record.rb +4 -3
- data/lib/rrj/models/concerns/janus_instance_callbacks.rb +1 -1
- data/lib/rrj/models/concerns/janus_instance_methods.rb +5 -0
- data/lib/rrj/models/mongoid.rb +4 -3
- data/lib/rrj/rabbit/propertie.rb +1 -1
- data/lib/rrj/rabbit/publish/base_publisher.rb +1 -0
- data/lib/rrj/rabbit/publish/listener_admin.rb +21 -0
- data/lib/rrj/rabbit/publish/publisher.rb +1 -1
- data/lib/rrj/rabbit/publish/{admin.rb → publisher_admin.rb} +6 -2
- data/lib/rrj/task_admin.rb +18 -0
- data/lib/ruby_rabbitmq_janus.rb +1 -0
- data/spec/request/admin/request_sessions_spec.rb +2 -1
- data/spec/request/admin/request_set_locking_debug_spec.rb +2 -1
- data/spec/request/admin/request_set_log_level_spec.rb +2 -1
- data/spec/rrj/models/janus_instance_definition_spec.rb +19 -4
- data/spec/rrj/rabbit/propertie_2_spec.rb +1 -1
- data/spec/rrj/rabbit/propertie_spec.rb +1 -1
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03a15856825b7cd3185dcbf004dbc4b87dd8aa8cfc539fcb55f865ca6f6ce47d
|
4
|
+
data.tar.gz: 0d3bc7ea574187a2098936d31d60a877ccd0ecf90cc92a98263e8ae2904c9474
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8a926a97b1ad3ae6aaf112affa2d5a97d8745bf4dad33ccaaec8b0d63161c71ef7deee3f475a1e3adaf7eee5db28779ef0a3bd455e937e74eddd72f0c582b92
|
7
|
+
data.tar.gz: 78021ab9cca50291a1098d181375a0d9e1e01cc8ff35411345024651d15646c8ce5f14220580f7dc24dd2aae5c30545c5b4adffb3b2d6c961eb10dd98a63903b
|
data/lib/rrj/admin.rb
CHANGED
@@ -26,8 +26,7 @@ module RubyRabbitmqJanus
|
|
26
26
|
#
|
27
27
|
# @since 2.0.0
|
28
28
|
def start_transaction_admin(options = {})
|
29
|
-
|
30
|
-
transaction = Janus::Transactions::Admin.new(session)
|
29
|
+
transaction = Janus::Transactions::Admin.new(options)
|
31
30
|
transaction.connect { yield(transaction) }
|
32
31
|
rescue
|
33
32
|
raise Errors::RRJAdmin::StartTransactionAdmin, options
|
data/lib/rrj/info.rb
CHANGED
@@ -14,6 +14,8 @@ module RubyRabbitmqJanus
|
|
14
14
|
class Event < Concurrency
|
15
15
|
include Singleton
|
16
16
|
|
17
|
+
NAME_VAR = :publish.freeze
|
18
|
+
|
17
19
|
def initialize
|
18
20
|
super
|
19
21
|
@thread = Thread.new { initialize_thread }
|
@@ -32,7 +34,7 @@ module RubyRabbitmqJanus
|
|
32
34
|
@thread.join
|
33
35
|
Thread.new do
|
34
36
|
loop do
|
35
|
-
@thread.thread_variable_get(
|
37
|
+
@thread.thread_variable_get(NAME_VAR).listen_events(&block)
|
36
38
|
end
|
37
39
|
end
|
38
40
|
rescue
|
@@ -43,7 +45,7 @@ module RubyRabbitmqJanus
|
|
43
45
|
|
44
46
|
def transaction_running
|
45
47
|
publisher = Rabbit::Publisher::Listener.new(rabbit)
|
46
|
-
@thread.thread_variable_set(
|
48
|
+
@thread.thread_variable_set(NAME_VAR, publisher)
|
47
49
|
end
|
48
50
|
end
|
49
51
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
module Janus
|
5
|
+
module Concurrencies
|
6
|
+
class EventAdmin < Event
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
NAME_VAR = :publish_adm.freeze
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def transaction_running
|
14
|
+
publisher = Rabbit::Publisher::ListenerAdmin.new(rabbit)
|
15
|
+
@thread.thread_variable_set(NAME_VAR, publisher)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -25,7 +25,7 @@ module RubyRabbitmqJanus
|
|
25
25
|
|
26
26
|
# Write a message in queue in RabbitMQ
|
27
27
|
def publish_message(type, options = {})
|
28
|
-
msg = Janus::Messages::Admin.new(type,
|
28
|
+
msg = Janus::Messages::Admin.new(type, options.merge(opts2))
|
29
29
|
response = read_response(publisher.publish(msg))
|
30
30
|
Janus::Responses::Admin.new(response)
|
31
31
|
rescue
|
@@ -45,6 +45,10 @@ module RubyRabbitmqJanus
|
|
45
45
|
def opts
|
46
46
|
{ 'session_id' => session, 'admin_secret' => admin_secret }
|
47
47
|
end
|
48
|
+
|
49
|
+
def opts2
|
50
|
+
session.merge('admin_secret' => admin_secret)
|
51
|
+
end
|
48
52
|
end
|
49
53
|
end
|
50
54
|
end
|
@@ -14,9 +14,10 @@ module RubyRabbitmqJanus
|
|
14
14
|
|
15
15
|
self.primary_key = :id
|
16
16
|
|
17
|
-
alias_attribute :instance,
|
18
|
-
alias_attribute :session_id,
|
19
|
-
alias_attribute :thread_id,
|
17
|
+
alias_attribute :instance, :id
|
18
|
+
alias_attribute :session_id, :session
|
19
|
+
alias_attribute :thread_id, :thread
|
20
|
+
alias_attribute :thread_id_adm, :thread_adm
|
20
21
|
|
21
22
|
after_create { callback_create_after }
|
22
23
|
after_update { callback_update_after }
|
data/lib/rrj/models/mongoid.rb
CHANGED
@@ -11,9 +11,10 @@ module RubyRabbitmqJanus
|
|
11
11
|
include RubyRabbitmqJanus::Models::JanusInstanceMethods
|
12
12
|
include RubyRabbitmqJanus::Models::JanusInstanceValidations
|
13
13
|
|
14
|
-
field :session,
|
15
|
-
field :enable,
|
16
|
-
field :thread,
|
14
|
+
field :session, type: Integer, as: :session_id
|
15
|
+
field :enable, type: Boolean
|
16
|
+
field :thread, type: Integer, as: :thread_id
|
17
|
+
field :thread_adm, type: Integer, as: :thread_id_adm
|
17
18
|
|
18
19
|
alias_attribute :instance, :_id
|
19
20
|
|
data/lib/rrj/rabbit/propertie.rb
CHANGED
@@ -29,7 +29,7 @@ module RubyRabbitmqJanus
|
|
29
29
|
|
30
30
|
# Define option sending to rabbitmq for janus admin message
|
31
31
|
def options_admin(type_request)
|
32
|
-
base.merge(routing_key:
|
32
|
+
base.merge(routing_key: Tools::Cluster.instance.queue_admin_to(@instance))
|
33
33
|
rescue
|
34
34
|
raise Errors::Rabbit::Propertie::Options_admin
|
35
35
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
module Rabbit
|
5
|
+
module Publisher
|
6
|
+
class ListenerAdmin < Listener
|
7
|
+
private
|
8
|
+
|
9
|
+
def subscribe_queue
|
10
|
+
reply = @rabbit.queue(Tools::Config.instance.queue_admin_from)
|
11
|
+
@rabbit.prefetch(1)
|
12
|
+
reply.bind(binding).subscribe(opts_subs) do |info, prop, payload|
|
13
|
+
Tools::Log.instance.info \
|
14
|
+
"[X] Message ADMIN reading ##{prop['correlation_id']}"
|
15
|
+
synchronize_response(info, payload)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -75,7 +75,7 @@ module RubyRabbitmqJanus
|
|
75
75
|
end
|
76
76
|
# rubocop:enable Style/GuardClause
|
77
77
|
|
78
|
-
require 'rrj/rabbit/publish/
|
78
|
+
require 'rrj/rabbit/publish/publisher_admin'
|
79
79
|
require 'rrj/rabbit/publish/exclusive'
|
80
80
|
require 'rrj/rabbit/publish/keepalive'
|
81
81
|
require 'rrj/rabbit/publish/non_exclusive'
|
@@ -24,8 +24,12 @@ module RubyRabbitmqJanus
|
|
24
24
|
# @return [Janus::Response::Standard] response for an request reading
|
25
25
|
# by janus instance
|
26
26
|
def publish(request)
|
27
|
-
super(request)
|
28
|
-
|
27
|
+
# super(request)
|
28
|
+
@message = request
|
29
|
+
concat = request.options.merge!(reply_to: reply.name)
|
30
|
+
@exchange.publish(@message.to_json, concat)
|
31
|
+
# p "Waiting response ...."
|
32
|
+
# return_response
|
29
33
|
rescue
|
30
34
|
raise Errors::Rabbit::PublisherAdmin::Pusblish
|
31
35
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module RubyRabbitmqJanus
|
4
|
+
# @author VAILLANT Jeremy <jeremy.vaillant@dazzl.tv>
|
5
|
+
|
6
|
+
# # RubyRabbitmqJanus - RRJTaskAdmin
|
7
|
+
#
|
8
|
+
# Used wit sidekiq/console/CI execution for admin queue in Janus gateway
|
9
|
+
class RRJTaskAdmin < RRJTask
|
10
|
+
# Crate a transaction between apps and Janus
|
11
|
+
def start_transaction_admin(options = {})
|
12
|
+
transaction = Janus::Transactions::Admin.new(options)
|
13
|
+
transaction.connect { yield(transaction) }
|
14
|
+
rescue
|
15
|
+
raise Errors::RRJAdmin::StartTransactionAdmin, options
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/ruby_rabbitmq_janus.rb
CHANGED
@@ -10,7 +10,8 @@ describe 'RubyRabbitmqJanus::RRJ -- message type sessions list' do
|
|
10
10
|
|
11
11
|
describe '#start_transaction_admin', type: :request,
|
12
12
|
level: :admin,
|
13
|
-
name: :sessions
|
13
|
+
name: :sessions,
|
14
|
+
broken: true do
|
14
15
|
include_examples 'transaction admin should match json schema'
|
15
16
|
end
|
16
17
|
end
|
@@ -11,7 +11,8 @@ describe 'RubyRabbitmqJanus::RRJ -- message type set locking debug' do
|
|
11
11
|
|
12
12
|
describe '#start_transaction_admin', type: :request,
|
13
13
|
level: :admin,
|
14
|
-
name: :set_locking_debug
|
14
|
+
name: :set_locking_debug,
|
15
|
+
broken: true do
|
15
16
|
include_examples 'transaction admin should match json schema'
|
16
17
|
end
|
17
18
|
end
|
@@ -11,7 +11,8 @@ describe 'RubyRabbitmqJanus::RRJ -- message type set log level' do
|
|
11
11
|
|
12
12
|
describe '#start_transaction_admin', type: :request,
|
13
13
|
level: :admin,
|
14
|
-
name: :set_log_level
|
14
|
+
name: :set_log_level,
|
15
|
+
broken: true do
|
15
16
|
include_examples 'transaction admin should match json schema'
|
16
17
|
end
|
17
18
|
end
|
@@ -5,19 +5,34 @@ require 'spec_helper'
|
|
5
5
|
describe RubyRabbitmqJanus::Models::JanusInstance, type: :model,
|
6
6
|
name: :janus_instance do
|
7
7
|
let(:model) { RubyRabbitmqJanus::Models::JanusInstance }
|
8
|
+
let(:parameter_mongo) do
|
9
|
+
{
|
10
|
+
'id' => '_id',
|
11
|
+
'session_id' => 'session',
|
12
|
+
'thread_id' => 'thread',
|
13
|
+
'thread_id_adm' => 'thread_adm',
|
14
|
+
'instance' => '_id'
|
15
|
+
}
|
16
|
+
end
|
17
|
+
let(:parameter_sqlite) do
|
18
|
+
{
|
19
|
+
'instance' => 'id',
|
20
|
+
'session_id' => 'session',
|
21
|
+
'thread_id_adm' => 'thread_adm',
|
22
|
+
'thread_id' => 'thread'
|
23
|
+
}
|
24
|
+
end
|
8
25
|
|
9
26
|
context 'Janus Instance model definition' do
|
10
27
|
if ENV['MONGO'].match?('true')
|
11
28
|
it { expect(model.attribute_names).to include('_id') }
|
12
29
|
it do
|
13
|
-
|
14
|
-
expect(model.aliased_fields).to eq(parameter)
|
30
|
+
expect(model.aliased_fields).to eq(parameter_mongo)
|
15
31
|
end
|
16
32
|
else
|
17
33
|
it { expect(model.attribute_names).to include('id') }
|
18
34
|
it do
|
19
|
-
|
20
|
-
expect(model.attribute_aliases).to eq(parameter)
|
35
|
+
expect(model.attribute_aliases).to eq(parameter_sqlite)
|
21
36
|
end
|
22
37
|
end
|
23
38
|
it { expect(model.attribute_names).to include('session') }
|
@@ -10,7 +10,7 @@ describe RubyRabbitmqJanus::Rabbit::Propertie, type: :rabbit,
|
|
10
10
|
it { expect(rabbit.options).to match_json_schema(:rabbit_options) }
|
11
11
|
end
|
12
12
|
|
13
|
-
describe '#options_admin' do
|
13
|
+
describe '#options_admin', broken: true do
|
14
14
|
context 'For admin request' do
|
15
15
|
it do
|
16
16
|
expect(rabbit.options_admin('admin::sessions')).to \
|
@@ -11,7 +11,7 @@ describe RubyRabbitmqJanus::Rabbit::Propertie, type: :rabbit,
|
|
11
11
|
it { expect(rabbit.options).to match_json_schema(:rabbit_options2) }
|
12
12
|
end
|
13
13
|
|
14
|
-
describe '#options_admin' do
|
14
|
+
describe '#options_admin', broken: true do
|
15
15
|
context 'For admin request' do
|
16
16
|
it do
|
17
17
|
expect(rabbit.options_admin('admin::sessions')).to \
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_rabbitmq_janus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.0.pre.208
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- VAILLANT Jeremy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -456,6 +456,7 @@ files:
|
|
456
456
|
- lib/rrj/janus/messages/standard.rb
|
457
457
|
- lib/rrj/janus/processus/concurrency.rb
|
458
458
|
- lib/rrj/janus/processus/event.rb
|
459
|
+
- lib/rrj/janus/processus/event_admin.rb
|
459
460
|
- lib/rrj/janus/processus/keepalive/keepalive_initializer.rb
|
460
461
|
- lib/rrj/janus/processus/keepalive/keepalive_message.rb
|
461
462
|
- lib/rrj/janus/processus/keepalive/keepalive_thread.rb
|
@@ -475,16 +476,18 @@ files:
|
|
475
476
|
- lib/rrj/models/mongoid.rb
|
476
477
|
- lib/rrj/rabbit/connect.rb
|
477
478
|
- lib/rrj/rabbit/propertie.rb
|
478
|
-
- lib/rrj/rabbit/publish/admin.rb
|
479
479
|
- lib/rrj/rabbit/publish/base_publisher.rb
|
480
480
|
- lib/rrj/rabbit/publish/exclusive.rb
|
481
481
|
- lib/rrj/rabbit/publish/keepalive.rb
|
482
482
|
- lib/rrj/rabbit/publish/listener.rb
|
483
|
+
- lib/rrj/rabbit/publish/listener_admin.rb
|
483
484
|
- lib/rrj/rabbit/publish/non_exclusive.rb
|
484
485
|
- lib/rrj/rabbit/publish/publisher.rb
|
486
|
+
- lib/rrj/rabbit/publish/publisher_admin.rb
|
485
487
|
- lib/rrj/rabbit/rabbit.rb
|
486
488
|
- lib/rrj/railtie.rb
|
487
489
|
- lib/rrj/task.rb
|
490
|
+
- lib/rrj/task_admin.rb
|
488
491
|
- lib/rrj/tools/gem/cluster.rb
|
489
492
|
- lib/rrj/tools/gem/config.rb
|
490
493
|
- lib/rrj/tools/gem/log.rb
|
@@ -616,8 +619,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
616
619
|
- !ruby/object:Gem::Version
|
617
620
|
version: 1.3.1
|
618
621
|
requirements: []
|
619
|
-
|
620
|
-
rubygems_version: 2.7.7
|
622
|
+
rubygems_version: 3.0.2
|
621
623
|
signing_key:
|
622
624
|
specification_version: 4
|
623
625
|
summary: Ruby RabbitMQ Janus
|