-
Notifications
You must be signed in to change notification settings - Fork 5.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor: Initial migration of bbb-web APIs #19918
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left some comments, did not try running yet.
Note [ to self ], this needs:
- packaging
- bbb-conf --setip/setsecret to set the salt in the config
- we should consider picking up overriding configs from
/etc/bigbluebutton/bbb-core-api-config.yml
or similar - Please try to include some README.MD in core-api and/or bbb-common-grpc explaining what we're looking at, how it's used, how to run as developer, some diagram you may have already.
Nice work so far!
...-bbb-apps/src/main/scala/org/bigbluebutton/core/apps/voice/UserLeftVoiceConfEvtMsgHdlr.scala
Show resolved
Hide resolved
akka-bbb-apps/src/main/scala/org/bigbluebutton/core/running/MeetingActor.scala
Show resolved
Hide resolved
...bbb-apps/src/main/scala/org/bigbluebutton/core2/message/handlers/GetMeetingInfoMsgHdlr.scala
Show resolved
Hide resolved
// Create a source using the returned collection of RunningMeetings. | ||
Source.future(runningMeetingsFuture).flatMapConcat { runningMeetings: VectorMap[String, RunningMeeting] => | ||
// Consumers of this API can pass an optional meetingId argument indicating that the stream should begin from the corresponding RunningMeeting. | ||
// Check if this argument has been provided. If not then use the entire collection of RunningMeetings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+++++++ Really appreciate the level of inline comments here! 👏
This pull request has conflicts ☹ |
|
This pull request has conflicts ☹ |
|
What does this PR do?
This PR makes it so that meeting state from
akka-apps
is used rather than the state frombbb-web
to construct responses forisMeetingRunning
,getMeetingInfo
, andgetMeetings
API requests. A new application,bbb-core-api
, has also been created that implements these endpoints and will implement otherbbb-web
endpoints such ascreate
in the future. Communication betweenbbb-core-api
andakka-apps
is done through gRPC.The Protobuf definitions can be found in
bbb-common-grpc
. Bothakka-apps
andbbb-core-api
extract these definitions frombbb-common-grpc
to generate the required Scala and Go code. Forakka-apps
this code is generated bysbt
using thecompile
task. Theproto-gen.sh
script found inbbb-core-api
will generate the required Go code. The Go code generation requiresprotobuf-compiler
,protoc-gen-go
, andproto-gen-go-grpc
all installed and available on thePATH
.Use the
run-dev.sh
script inbbb-core-api
to run the Go server.Motivation
Removal of application state from
bbb-web
is part of the ongoing process to consolidate application state inakka-apps
. Currently requests for information about meetings comes from the internal state ofbbb-web
when it should instead be coming fromakka-apps
This is the first step in the process of totally removing application state from
bbb-web
and migrating away from thebbb-web
Grails API.