bigbluebutton_rails 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/CHANGELOG.md +34 -0
- data/Dockerfile +23 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +14 -5
- data/README.md +42 -59
- data/Rakefile +6 -3
- data/app/controllers/bigbluebutton/api/rooms_controller.rb +117 -0
- data/app/controllers/bigbluebutton/playback_types_controller.rb +0 -3
- data/app/controllers/bigbluebutton/recordings_controller.rb +37 -23
- data/app/controllers/bigbluebutton/rooms_controller.rb +6 -31
- data/app/controllers/bigbluebutton/servers_controller.rb +0 -14
- data/app/helpers/bigbluebutton_rails_helper.rb +4 -0
- data/app/models/bigbluebutton_attendee.rb +21 -0
- data/app/models/bigbluebutton_meeting.rb +5 -0
- data/app/models/bigbluebutton_playback_format.rb +3 -2
- data/app/models/bigbluebutton_recording.rb +164 -68
- data/app/models/bigbluebutton_room.rb +148 -59
- data/app/models/bigbluebutton_server.rb +1 -1
- data/app/views/bigbluebutton/api/error.rabl +10 -0
- data/app/views/bigbluebutton/api/rooms/index.rabl +45 -0
- data/app/views/bigbluebutton/api/rooms/join.rabl +6 -0
- data/app/views/bigbluebutton/api/rooms/running.rabl +10 -0
- data/app/views/bigbluebutton/recordings/play.html.erb +1 -0
- data/app/views/bigbluebutton/servers/_activity_list.html.erb +5 -5
- data/app/workers/{bigbluebutton_finish_meetings.rb → bigbluebutton_finish_meetings_worker.rb} +2 -2
- data/app/workers/{bigbluebutton_meeting_updater.rb → bigbluebutton_meeting_updater_worker.rb} +3 -3
- data/app/workers/bigbluebutton_recordings_for_room_worker.rb +27 -0
- data/app/workers/{bigbluebutton_update_recordings.rb → bigbluebutton_update_recordings_worker.rb} +2 -2
- data/app/workers/{bigbluebutton_update_server_configs.rb → bigbluebutton_update_server_configs_worker.rb} +3 -3
- data/bigbluebutton_rails.gemspec +1 -0
- data/config/locales/en.yml +21 -0
- data/config/locales/pt-br.yml +1 -0
- data/config/resque/resque.rake +7 -1
- data/config/resque/workers_schedule.yml +3 -3
- data/docker-compose.yml +68 -0
- data/dumb-init_1.2.0 +0 -0
- data/lib/bigbluebutton_rails.rb +1 -2
- data/lib/bigbluebutton_rails/api_controller_methods.rb +138 -0
- data/lib/bigbluebutton_rails/configuration.rb +33 -4
- data/lib/bigbluebutton_rails/controller_methods.rb +0 -31
- data/lib/bigbluebutton_rails/exceptions.rb +17 -0
- data/lib/bigbluebutton_rails/rails/routes.rb +14 -0
- data/lib/bigbluebutton_rails/version.rb +1 -1
- data/lib/generators/bigbluebutton_rails/templates/migration.rb +17 -3
- data/lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb +1 -1
- data/lib/generators/bigbluebutton_rails/templates/migration_2_2_0_b.rb +106 -0
- data/lib/generators/bigbluebutton_rails/templates/migration_2_3_0.rb +22 -0
- data/lib/tasks/bigbluebutton_rails/meetings.rake +1 -1
- data/spec/controllers/bigbluebutton/api/rooms_controller_spec.rb +498 -0
- data/spec/controllers/bigbluebutton/recordings_controller_spec.rb +84 -0
- data/spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb +2 -2
- data/spec/controllers/bigbluebutton/rooms_controller_spec.rb +24 -22
- data/spec/controllers/bigbluebutton/servers_controller_spec.rb +9 -0
- data/spec/factories/bigbluebutton_attendee.rb +7 -0
- data/spec/factories/bigbluebutton_meeting.rb +0 -1
- data/spec/factories/bigbluebutton_playback_type.rb +1 -0
- data/spec/factories/bigbluebutton_recording.rb +2 -4
- data/spec/helpers/bigbluebutton_rails_helper_spec.rb +10 -2
- data/spec/lib/bigbluebutton_rails/background_tasks_spec.rb +1 -0
- data/spec/lib/tasks/meetings_rake_spec.rb +1 -1
- data/spec/models/bigbluebutton_attendee_spec.rb +44 -0
- data/spec/models/bigbluebutton_meeting_db_spec.rb +0 -1
- data/spec/models/bigbluebutton_meeting_spec.rb +1 -0
- data/spec/models/bigbluebutton_playback_format_spec.rb +2 -0
- data/spec/models/bigbluebutton_playback_type_db_spec.rb +1 -0
- data/spec/models/bigbluebutton_recording_db_spec.rb +2 -2
- data/spec/models/bigbluebutton_recording_spec.rb +404 -72
- data/spec/models/bigbluebutton_room_spec.rb +435 -148
- data/spec/rails_app/config/database.yml.example +10 -11
- data/spec/rails_app/config/initializers/resque.rb +33 -0
- data/spec/rails_app/config/routes.rb +2 -0
- data/spec/rails_app/lib/tasks/db/populate.rake +73 -55
- data/spec/support/mocked_server.rb +1 -1
- data/spec/workers/{bigbluebutton_finish_meetings_spec.rb → bigbluebutton_finish_meetings_worker_spec.rb} +3 -3
- data/spec/workers/{bigbluebutton_meeting_updater_spec.rb → bigbluebutton_meeting_updater_worker_spec.rb} +8 -7
- data/spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb +49 -0
- data/spec/workers/{bigbluebutton_update_recordings_spec.rb → bigbluebutton_update_recordings_worker_spec.rb} +3 -3
- data/spec/workers/{bigbluebutton_update_server_configs_spec.rb → bigbluebutton_update_server_configs_worker_spec.rb} +4 -4
- metadata +42 -14
- data/lib/classes/bigbluebutton_attendee.rb +0 -21
- data/spec/classes/bigbluebutton_attendee_spec.rb +0 -76
- data/spec/controllers/bigbluebutton/recordings_controller_json_responses_spec.rb +0 -111
- data/spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb +0 -203
- data/spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb +0 -162
|
@@ -2,20 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
development:
|
|
4
4
|
adapter: mysql2
|
|
5
|
-
database:
|
|
6
|
-
username:
|
|
7
|
-
password:
|
|
8
|
-
|
|
5
|
+
database: bigbluebutton_rails_dev
|
|
6
|
+
username: bbbrails
|
|
7
|
+
password: bbbrails
|
|
8
|
+
host: dev_db
|
|
9
|
+
# socket: /var/run/mysqld/mysqld.sock
|
|
9
10
|
|
|
10
|
-
# Warning: The database defined as "test" will be erased and
|
|
11
|
-
# re-generated from your development database when you run "rake".
|
|
12
|
-
# Do not set this db to the same as development or production.
|
|
13
11
|
test: &test
|
|
14
12
|
adapter: mysql2
|
|
15
13
|
database: bigbluebutton_rails_test
|
|
16
|
-
username:
|
|
17
|
-
password:
|
|
18
|
-
|
|
14
|
+
username: bbbrails
|
|
15
|
+
password: bbbrails
|
|
16
|
+
host: test_db
|
|
17
|
+
# socket: /var/run/mysqld/mysqld.sock
|
|
19
18
|
|
|
20
19
|
# production:
|
|
21
20
|
# adapter: mysql2
|
|
@@ -25,4 +24,4 @@ test: &test
|
|
|
25
24
|
# socket: /var/run/mysqld/mysqld.sock
|
|
26
25
|
|
|
27
26
|
cucumber:
|
|
28
|
-
<<: *test
|
|
27
|
+
<<: *test
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
require 'resque'
|
|
2
|
+
|
|
3
|
+
unless Rails.env == 'test'
|
|
4
|
+
logger = Logger.new(STDOUT)
|
|
5
|
+
logger.formatter = proc do |severity, datetime, progname, msg|
|
|
6
|
+
formatted_datetime = datetime.strftime("%Y-%m-%d %H:%M:%S.") << datetime.usec.to_s[0..2].rjust(3)
|
|
7
|
+
"#{formatted_datetime} [#{severity}] #{msg} (pid:#{$$})\n"
|
|
8
|
+
end
|
|
9
|
+
Resque.logger = logger
|
|
10
|
+
Resque.logger.level = Logger::INFO
|
|
11
|
+
#Resque.logger.level = Logger::DEBUG
|
|
12
|
+
|
|
13
|
+
attrs = {
|
|
14
|
+
host: ENV['REDIS_HOST'] || 'localhost',
|
|
15
|
+
port: ENV['REDIS_PORT'] || 6379,
|
|
16
|
+
db: ENV['REDIS_DB'] || 0,
|
|
17
|
+
password: ENV['REDIS_PASSWORD'] || nil
|
|
18
|
+
}
|
|
19
|
+
attrs.delete(:password) if attrs[:password].blank?
|
|
20
|
+
Resque.redis = Redis.new(attrs)
|
|
21
|
+
|
|
22
|
+
# If you want to be able to dynamically change the schedule,
|
|
23
|
+
# uncomment this line. A dynamic schedule can be updated via the
|
|
24
|
+
# Resque::Scheduler.set_schedule (and remove_schedule) methods.
|
|
25
|
+
# When dynamic is set to true, the scheduler process looks for
|
|
26
|
+
# schedule changes and applies them on the fly.
|
|
27
|
+
# Note: This feature is only available in >=2.0.0.
|
|
28
|
+
# Resque::Scheduler.dynamic = true
|
|
29
|
+
|
|
30
|
+
# The schedule doesn't need to be stored in a YAML, it just needs to
|
|
31
|
+
# be a hash. YAML is usually the easiest.
|
|
32
|
+
# Resque.schedule = YAML.load_file('config/workers_schedule.yml')
|
|
33
|
+
end
|
|
@@ -38,7 +38,7 @@ namespace :db do
|
|
|
38
38
|
2.times do |n2|
|
|
39
39
|
params = {
|
|
40
40
|
:meetingid => "meeting-#{n1}-#{n2}-" + SecureRandom.hex(4),
|
|
41
|
-
:server => server,
|
|
41
|
+
# :server => server,
|
|
42
42
|
:name => "Name-#{n1}-#{n2}",
|
|
43
43
|
:attendee_key => Forgery(:basic).password(:at_least => 10, :at_most => 16),
|
|
44
44
|
:moderator_key => Forgery(:basic).password(:at_least => 10, :at_most => 16),
|
|
@@ -64,67 +64,85 @@ namespace :db do
|
|
|
64
64
|
metadata.save!
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
2.times do |n3|
|
|
67
|
+
2.times do |n2|
|
|
69
68
|
params = {
|
|
70
|
-
:
|
|
69
|
+
# :server_id => 0,
|
|
70
|
+
:room_id => room.id,
|
|
71
71
|
:meetingid => room.meetingid,
|
|
72
|
-
:name => "
|
|
73
|
-
:
|
|
74
|
-
:
|
|
75
|
-
:
|
|
76
|
-
:
|
|
72
|
+
:name => "Name-#{n1}-#{n2}",
|
|
73
|
+
:create_time => Time.now - rand(5).hours,
|
|
74
|
+
:running => false,
|
|
75
|
+
:recorded => true,
|
|
76
|
+
:creator_id => rand(12),
|
|
77
|
+
:creator_name => "Name-#{n1}-#{n2}",
|
|
78
|
+
:ended => true
|
|
77
79
|
}
|
|
78
|
-
time = params[:
|
|
79
|
-
params[:
|
|
80
|
-
|
|
81
|
-
recording = BigbluebuttonRecording.create(params)
|
|
82
|
-
recording.server = server
|
|
83
|
-
recording.room = room
|
|
84
|
-
recording.save!
|
|
80
|
+
time = params[:create_time]
|
|
81
|
+
puts " - Creating meeting #{params[:name]}"
|
|
82
|
+
meeting = BigbluebuttonMeeting.create(params)
|
|
85
83
|
|
|
86
|
-
#
|
|
87
|
-
|
|
88
|
-
[{
|
|
89
|
-
:name => BigbluebuttonRails.configuration.metadata_user_id,
|
|
90
|
-
:content => Forgery(:basic).number(:at_most => 1000)
|
|
91
|
-
}, {
|
|
92
|
-
:name => BigbluebuttonRails.configuration.metadata_user_name,
|
|
93
|
-
:content => Forgery(:name).full_name
|
|
94
|
-
}]
|
|
95
|
-
basic_metadata.each do |meta_params|
|
|
96
|
-
metadata = BigbluebuttonMetadata.create(meta_params)
|
|
97
|
-
metadata.owner = recording
|
|
98
|
-
metadata.save!
|
|
99
|
-
puts " - Creating recording metadata #{meta_params[:name]}"
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
# Recording metadata
|
|
103
|
-
3.times do |n_metadata|
|
|
84
|
+
# Recordings
|
|
85
|
+
2.times do |n3|
|
|
104
86
|
params = {
|
|
105
|
-
:
|
|
106
|
-
:
|
|
87
|
+
:recordid => "rec-#{n1}-#{n2}-#{n3}-" + SecureRandom.hex(26),
|
|
88
|
+
:meetingid => room.meetingid,
|
|
89
|
+
:name => "Rec-#{n1}-#{n2}-#{n3}",
|
|
90
|
+
:published => true,
|
|
91
|
+
:available => true,
|
|
92
|
+
:start_time => meeting.create_time,
|
|
93
|
+
:end_time => meeting.create_time + rand(5).hours
|
|
107
94
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
95
|
+
time = params[:start_time]
|
|
96
|
+
params[:description] = I18n.t('bigbluebutton_rails.recordings.default.description', :time => time)
|
|
97
|
+
puts " - Creating recording #{params[:name]}"
|
|
98
|
+
recording = BigbluebuttonRecording.create(params)
|
|
99
|
+
recording.server = server
|
|
100
|
+
recording.room = room
|
|
101
|
+
recording.save!
|
|
113
102
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
103
|
+
# Basic metadata the gem always adds and should always be there
|
|
104
|
+
basic_metadata =
|
|
105
|
+
[{
|
|
106
|
+
:name => BigbluebuttonRails.configuration.metadata_user_id,
|
|
107
|
+
:content => Forgery(:basic).number(:at_most => 1000)
|
|
108
|
+
}, {
|
|
109
|
+
:name => BigbluebuttonRails.configuration.metadata_user_name,
|
|
110
|
+
:content => Forgery(:name).full_name
|
|
111
|
+
}]
|
|
112
|
+
basic_metadata.each do |meta_params|
|
|
113
|
+
metadata = BigbluebuttonMetadata.create(meta_params)
|
|
114
|
+
metadata.owner = recording
|
|
115
|
+
metadata.save!
|
|
116
|
+
puts " - Creating recording metadata #{meta_params[:name]}"
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Recording metadata
|
|
120
|
+
3.times do |n_metadata|
|
|
121
|
+
params = {
|
|
122
|
+
:name => "#{Forgery(:name).first_name.downcase}-#{n_metadata}",
|
|
123
|
+
:content => Forgery(:name).full_name
|
|
124
|
+
}
|
|
125
|
+
puts " - Creating recording metadata #{params[:name]}"
|
|
126
|
+
metadata = BigbluebuttonMetadata.create(params)
|
|
127
|
+
metadata.owner = recording
|
|
128
|
+
metadata.save!
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Recording playback formats
|
|
132
|
+
playback_types = [1,2,3]
|
|
133
|
+
3.times do |n_format|
|
|
134
|
+
params = {
|
|
135
|
+
:url => "http://" + Forgery(:internet).domain_name + "/playback",
|
|
136
|
+
:length => Forgery(:basic).number
|
|
137
|
+
}
|
|
138
|
+
puts " - Creating playback format #{params[:format_type]}"
|
|
139
|
+
format = BigbluebuttonPlaybackFormat.create(params)
|
|
140
|
+
format.recording = recording
|
|
141
|
+
id = playback_types[rand(playback_types.length)]
|
|
142
|
+
playback_types.delete(id)
|
|
143
|
+
format.playback_type = BigbluebuttonPlaybackType.find(id)
|
|
144
|
+
format.save!
|
|
145
|
+
end
|
|
128
146
|
end
|
|
129
147
|
|
|
130
148
|
end
|
|
@@ -11,7 +11,7 @@ def mock_server_and_api
|
|
|
11
11
|
# when testing rooms
|
|
12
12
|
if defined?(room) and not room.nil?
|
|
13
13
|
room.stub(:select_server) { @server_mock }
|
|
14
|
-
BigbluebuttonRoom.stub(:
|
|
14
|
+
BigbluebuttonRoom.stub(:find_by) { room }
|
|
15
15
|
BigbluebuttonRoom.stub(:find) { room }
|
|
16
16
|
end
|
|
17
17
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe BigbluebuttonFinishMeetingsWorker do
|
|
4
4
|
|
|
5
5
|
it "runs BigbluebuttonRails::BackgroundTasks.finish_meetings" do
|
|
6
6
|
expect(BigbluebuttonRails::BackgroundTasks).to receive(:finish_meetings).once
|
|
7
|
-
|
|
7
|
+
BigbluebuttonFinishMeetingsWorker.perform
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "uses the queue :bigbluebutton_rails" do
|
|
11
|
-
|
|
11
|
+
BigbluebuttonFinishMeetingsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
end
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe BigbluebuttonMeetingUpdaterWorker do
|
|
4
4
|
|
|
5
5
|
it "uses the queue :bigbluebutton_rails" do
|
|
6
|
-
|
|
6
|
+
BigbluebuttonMeetingUpdaterWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
describe "#perform" do
|
|
10
10
|
let!(:api) { double(BigBlueButton::BigBlueButtonApi) }
|
|
11
|
+
let!(:server) { FactoryGirl.create(:bigbluebutton_server) }
|
|
11
12
|
|
|
12
13
|
it "waits the amount of time specified before starting"
|
|
13
14
|
|
|
@@ -18,7 +19,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
|
18
19
|
expect(BigbluebuttonRoom).to receive(:find).with(room.id).and_return(room)
|
|
19
20
|
expect(room).to receive(:fetch_meeting_info).once
|
|
20
21
|
}
|
|
21
|
-
it {
|
|
22
|
+
it { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }
|
|
22
23
|
end
|
|
23
24
|
|
|
24
25
|
context "calls finish_meetings if an exception 'notFound' is raised" do
|
|
@@ -35,7 +36,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
|
35
36
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
|
36
37
|
expect(room).to receive(:finish_meetings).once
|
|
37
38
|
}
|
|
38
|
-
it { expect {
|
|
39
|
+
it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
context "calls finish_meetings if an exception other than 'notFound' is raised" do
|
|
@@ -52,7 +53,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
|
52
53
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
|
53
54
|
expect(room).to receive(:finish_meetings)
|
|
54
55
|
}
|
|
55
|
-
it { expect {
|
|
56
|
+
it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
|
|
56
57
|
end
|
|
57
58
|
|
|
58
59
|
context "calls finish_meetings if an exception with a blank key is raised" do
|
|
@@ -69,7 +70,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
|
69
70
|
expect(api).to receive(:get_meeting_info).once { raise exception }
|
|
70
71
|
expect(room).to receive(:finish_meetings)
|
|
71
72
|
}
|
|
72
|
-
it { expect {
|
|
73
|
+
it { expect { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }.not_to raise_exception }
|
|
73
74
|
end
|
|
74
75
|
|
|
75
76
|
context "doesn't break if the room is not found" do
|
|
@@ -84,7 +85,7 @@ describe BigbluebuttonMeetingUpdater do
|
|
|
84
85
|
expect(room).not_to receive(:fetch_meeting_info)
|
|
85
86
|
expect(room).not_to receive(:finish_meetings)
|
|
86
87
|
}
|
|
87
|
-
it {
|
|
88
|
+
it { BigbluebuttonMeetingUpdaterWorker.perform(room.id) }
|
|
88
89
|
end
|
|
89
90
|
end
|
|
90
91
|
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
|
|
3
|
+
describe BigbluebuttonRecordingsForRoomWorker do
|
|
4
|
+
|
|
5
|
+
it "uses the queue :bigbluebutton_rails" do
|
|
6
|
+
BigbluebuttonRecordingsForRoomWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
describe "#perform" do
|
|
10
|
+
let!(:room) { FactoryGirl.create(:bigbluebutton_room) }
|
|
11
|
+
|
|
12
|
+
context "calls #fetch_recordings on the room" do
|
|
13
|
+
before {
|
|
14
|
+
BigbluebuttonRoom.stub(:find).and_return(room)
|
|
15
|
+
expect(room).to receive(:fetch_recordings).once
|
|
16
|
+
}
|
|
17
|
+
it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
context "if there are still tries left" do
|
|
21
|
+
before {
|
|
22
|
+
BigbluebuttonRoom.stub(:find).and_return(room)
|
|
23
|
+
room.stub(:fetch_recordings)
|
|
24
|
+
expect(Resque).to receive(:enqueue_in)
|
|
25
|
+
.with(5.minutes, ::BigbluebuttonRecordingsForRoomWorker, room.id, 0)
|
|
26
|
+
.once
|
|
27
|
+
}
|
|
28
|
+
it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 1) }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context "if there are no more tries left" do
|
|
32
|
+
before {
|
|
33
|
+
BigbluebuttonRoom.stub(:find).and_return(room)
|
|
34
|
+
room.stub(:fetch_recordings)
|
|
35
|
+
expect(Resque).not_to receive(:enqueue_in)
|
|
36
|
+
}
|
|
37
|
+
it { BigbluebuttonRecordingsForRoomWorker.perform(room.id, 0) }
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
context "if the room id is not found" do
|
|
41
|
+
before {
|
|
42
|
+
BigbluebuttonRoom.stub(:find).and_return(nil)
|
|
43
|
+
expect(room).not_to receive(:fetch_recordings)
|
|
44
|
+
expect(Resque).not_to receive(:enqueue_in)
|
|
45
|
+
}
|
|
46
|
+
it { BigbluebuttonRecordingsForRoomWorker.perform(room.id) }
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe BigbluebuttonUpdateRecordingsWorker do
|
|
4
4
|
|
|
5
5
|
it "runs BigbluebuttonRails::BackgroundTasks.finish_meetings" do
|
|
6
6
|
expect(BigbluebuttonRails::BackgroundTasks).to receive(:update_recordings).once
|
|
7
|
-
|
|
7
|
+
BigbluebuttonUpdateRecordingsWorker.perform
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
it "uses the queue :bigbluebutton_rails" do
|
|
11
|
-
|
|
11
|
+
BigbluebuttonUpdateRecordingsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
end
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe BigbluebuttonUpdateServerConfigsWorker do
|
|
4
4
|
|
|
5
5
|
it "uses the queue :bigbluebutton_rails" do
|
|
6
|
-
|
|
6
|
+
BigbluebuttonUpdateServerConfigsWorker.instance_variable_get(:@queue).should eql(:bigbluebutton_rails)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
describe "#perform" do
|
|
@@ -23,7 +23,7 @@ describe BigbluebuttonUpdateServerConfigs do
|
|
|
23
23
|
expect(servers[1]).to receive(:update_config).once
|
|
24
24
|
expect(servers[2]).to receive(:update_config).once
|
|
25
25
|
}
|
|
26
|
-
it {
|
|
26
|
+
it { BigbluebuttonUpdateServerConfigsWorker.perform }
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
context "updates the version of each server" do
|
|
@@ -36,7 +36,7 @@ describe BigbluebuttonUpdateServerConfigs do
|
|
|
36
36
|
expect(servers[0]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
|
|
37
37
|
expect(servers[1]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
|
|
38
38
|
expect(servers[2]).to receive(:set_api_version_from_server).at_least(:once).and_return(new_version)
|
|
39
|
-
|
|
39
|
+
BigbluebuttonUpdateServerConfigsWorker.perform
|
|
40
40
|
}
|
|
41
41
|
it { servers[0].version.should eql(new_version) }
|
|
42
42
|
it { servers[1].version.should eql(new_version) }
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bigbluebutton_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mconf
|
|
@@ -81,6 +81,20 @@ dependencies:
|
|
|
81
81
|
- - "~>"
|
|
82
82
|
- !ruby/object:Gem::Version
|
|
83
83
|
version: 0.8.0
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: activerecord-import
|
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '1.0'
|
|
91
|
+
type: :runtime
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - "~>"
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '1.0'
|
|
84
98
|
description: Allows access and use of BigBlueButton from a Ruby on Rails application
|
|
85
99
|
email:
|
|
86
100
|
- contact@mconf.org
|
|
@@ -95,6 +109,7 @@ files:
|
|
|
95
109
|
- ".rvmrc"
|
|
96
110
|
- ".travis.yml"
|
|
97
111
|
- CHANGELOG.md
|
|
112
|
+
- Dockerfile
|
|
98
113
|
- Gemfile
|
|
99
114
|
- Gemfile.lock
|
|
100
115
|
- LICENSE
|
|
@@ -106,11 +121,13 @@ files:
|
|
|
106
121
|
- app/assets/images/badges/google_play_en.png
|
|
107
122
|
- app/assets/images/badges/google_play_pt-br.png
|
|
108
123
|
- app/assets/stylesheets/bigbluebutton_rails.css
|
|
124
|
+
- app/controllers/bigbluebutton/api/rooms_controller.rb
|
|
109
125
|
- app/controllers/bigbluebutton/playback_types_controller.rb
|
|
110
126
|
- app/controllers/bigbluebutton/recordings_controller.rb
|
|
111
127
|
- app/controllers/bigbluebutton/rooms_controller.rb
|
|
112
128
|
- app/controllers/bigbluebutton/servers_controller.rb
|
|
113
129
|
- app/helpers/bigbluebutton_rails_helper.rb
|
|
130
|
+
- app/models/bigbluebutton_attendee.rb
|
|
114
131
|
- app/models/bigbluebutton_meeting.rb
|
|
115
132
|
- app/models/bigbluebutton_metadata.rb
|
|
116
133
|
- app/models/bigbluebutton_playback_format.rb
|
|
@@ -120,10 +137,15 @@ files:
|
|
|
120
137
|
- app/models/bigbluebutton_room_options.rb
|
|
121
138
|
- app/models/bigbluebutton_server.rb
|
|
122
139
|
- app/models/bigbluebutton_server_config.rb
|
|
140
|
+
- app/views/bigbluebutton/api/error.rabl
|
|
141
|
+
- app/views/bigbluebutton/api/rooms/index.rabl
|
|
142
|
+
- app/views/bigbluebutton/api/rooms/join.rabl
|
|
143
|
+
- app/views/bigbluebutton/api/rooms/running.rabl
|
|
123
144
|
- app/views/bigbluebutton/recordings/_form.html.erb
|
|
124
145
|
- app/views/bigbluebutton/recordings/_recordings.html.erb
|
|
125
146
|
- app/views/bigbluebutton/recordings/edit.html.erb
|
|
126
147
|
- app/views/bigbluebutton/recordings/index.html.erb
|
|
148
|
+
- app/views/bigbluebutton/recordings/play.html.erb
|
|
127
149
|
- app/views/bigbluebutton/recordings/show.html.erb
|
|
128
150
|
- app/views/bigbluebutton/rooms/_form.html.erb
|
|
129
151
|
- app/views/bigbluebutton/rooms/_rooms.html.erb
|
|
@@ -144,16 +166,20 @@ files:
|
|
|
144
166
|
- app/views/bigbluebutton/servers/recordings.html.erb
|
|
145
167
|
- app/views/bigbluebutton/servers/rooms.html.erb
|
|
146
168
|
- app/views/bigbluebutton/servers/show.html.erb
|
|
147
|
-
- app/workers/
|
|
148
|
-
- app/workers/
|
|
149
|
-
- app/workers/
|
|
150
|
-
- app/workers/
|
|
169
|
+
- app/workers/bigbluebutton_finish_meetings_worker.rb
|
|
170
|
+
- app/workers/bigbluebutton_meeting_updater_worker.rb
|
|
171
|
+
- app/workers/bigbluebutton_recordings_for_room_worker.rb
|
|
172
|
+
- app/workers/bigbluebutton_update_recordings_worker.rb
|
|
173
|
+
- app/workers/bigbluebutton_update_server_configs_worker.rb
|
|
151
174
|
- bigbluebutton_rails.gemspec
|
|
152
175
|
- config/locales/en.yml
|
|
153
176
|
- config/locales/pt-br.yml
|
|
154
177
|
- config/resque/resque.rake
|
|
155
178
|
- config/resque/workers_schedule.yml
|
|
179
|
+
- docker-compose.yml
|
|
180
|
+
- dumb-init_1.2.0
|
|
156
181
|
- lib/bigbluebutton_rails.rb
|
|
182
|
+
- lib/bigbluebutton_rails/api_controller_methods.rb
|
|
157
183
|
- lib/bigbluebutton_rails/background_tasks.rb
|
|
158
184
|
- lib/bigbluebutton_rails/configuration.rb
|
|
159
185
|
- lib/bigbluebutton_rails/controller_methods.rb
|
|
@@ -164,7 +190,6 @@ files:
|
|
|
164
190
|
- lib/bigbluebutton_rails/rails/routes.rb
|
|
165
191
|
- lib/bigbluebutton_rails/utils.rb
|
|
166
192
|
- lib/bigbluebutton_rails/version.rb
|
|
167
|
-
- lib/classes/bigbluebutton_attendee.rb
|
|
168
193
|
- lib/generators/bigbluebutton_rails/install_generator.rb
|
|
169
194
|
- lib/generators/bigbluebutton_rails/templates/migration.rb
|
|
170
195
|
- lib/generators/bigbluebutton_rails/templates/migration_0_0_4.rb
|
|
@@ -175,20 +200,20 @@ files:
|
|
|
175
200
|
- lib/generators/bigbluebutton_rails/templates/migration_2_0_0.rb
|
|
176
201
|
- lib/generators/bigbluebutton_rails/templates/migration_2_1_0.rb
|
|
177
202
|
- lib/generators/bigbluebutton_rails/templates/migration_2_2_0.rb
|
|
203
|
+
- lib/generators/bigbluebutton_rails/templates/migration_2_2_0_b.rb
|
|
204
|
+
- lib/generators/bigbluebutton_rails/templates/migration_2_3_0.rb
|
|
178
205
|
- lib/generators/bigbluebutton_rails/views_generator.rb
|
|
179
206
|
- lib/tasks/bigbluebutton_rails/meetings.rake
|
|
180
207
|
- lib/tasks/bigbluebutton_rails/recordings.rake
|
|
181
208
|
- lib/tasks/bigbluebutton_rails/server_configs.rake
|
|
182
209
|
- spec/bigbluebutton_rails_spec.rb
|
|
183
|
-
- spec/
|
|
210
|
+
- spec/controllers/bigbluebutton/api/rooms_controller_spec.rb
|
|
184
211
|
- spec/controllers/bigbluebutton/playback_types_controller_spec.rb
|
|
185
|
-
- spec/controllers/bigbluebutton/recordings_controller_json_responses_spec.rb
|
|
186
212
|
- spec/controllers/bigbluebutton/recordings_controller_spec.rb
|
|
187
213
|
- spec/controllers/bigbluebutton/rooms_controller_exception_handling_spec.rb
|
|
188
|
-
- spec/controllers/bigbluebutton/rooms_controller_json_responses_spec.rb
|
|
189
214
|
- spec/controllers/bigbluebutton/rooms_controller_spec.rb
|
|
190
|
-
- spec/controllers/bigbluebutton/servers_controller_json_responses_spec.rb
|
|
191
215
|
- spec/controllers/bigbluebutton/servers_controller_spec.rb
|
|
216
|
+
- spec/factories/bigbluebutton_attendee.rb
|
|
192
217
|
- spec/factories/bigbluebutton_meeting.rb
|
|
193
218
|
- spec/factories/bigbluebutton_metadata.rb
|
|
194
219
|
- spec/factories/bigbluebutton_playback_format.rb
|
|
@@ -207,6 +232,7 @@ files:
|
|
|
207
232
|
- spec/lib/bigbluebutton_rails/utils_spec.rb
|
|
208
233
|
- spec/lib/tasks/meetings_rake_spec.rb
|
|
209
234
|
- spec/lib/tasks/recordings_rake_spec.rb
|
|
235
|
+
- spec/models/bigbluebutton_attendee_spec.rb
|
|
210
236
|
- spec/models/bigbluebutton_meeting_db_spec.rb
|
|
211
237
|
- spec/models/bigbluebutton_meeting_spec.rb
|
|
212
238
|
- spec/models/bigbluebutton_metadata_db_spec.rb
|
|
@@ -256,6 +282,7 @@ files:
|
|
|
256
282
|
- spec/rails_app/config/initializers/inflections.rb
|
|
257
283
|
- spec/rails_app/config/initializers/mime_types.rb
|
|
258
284
|
- spec/rails_app/config/initializers/rack_hotfix.rb
|
|
285
|
+
- spec/rails_app/config/initializers/resque.rb
|
|
259
286
|
- spec/rails_app/config/initializers/secret_token.rb
|
|
260
287
|
- spec/rails_app/config/initializers/session_store.rb
|
|
261
288
|
- spec/rails_app/config/locales/en.yml
|
|
@@ -333,10 +360,11 @@ files:
|
|
|
333
360
|
- spec/support/mocked_server.rb
|
|
334
361
|
- spec/support/models/user.rb
|
|
335
362
|
- spec/support/shared_contexts/rake.rb
|
|
336
|
-
- spec/workers/
|
|
337
|
-
- spec/workers/
|
|
338
|
-
- spec/workers/
|
|
339
|
-
- spec/workers/
|
|
363
|
+
- spec/workers/bigbluebutton_finish_meetings_worker_spec.rb
|
|
364
|
+
- spec/workers/bigbluebutton_meeting_updater_worker_spec.rb
|
|
365
|
+
- spec/workers/bigbluebutton_recordings_for_room_worker_spec.rb
|
|
366
|
+
- spec/workers/bigbluebutton_update_recordings_worker_spec.rb
|
|
367
|
+
- spec/workers/bigbluebutton_update_server_configs_worker_spec.rb
|
|
340
368
|
homepage: http://github.com/mconf/bigbluebutton_rails
|
|
341
369
|
licenses:
|
|
342
370
|
- MIT
|