Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Communications Backbone System
communications-backbone
Commits
f0a6a868
Unverified
Commit
f0a6a868
authored
2 years ago
by
Dan Jones
Browse files
Options
Download
Email Patches
Plain Diff
fix: correct get_queue_status
Still need to think about the API response structure
parent
12feaceb
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
20 deletions
+20
-20
endpoints/queues.py
endpoints/queues.py
+13
-14
rmq.py
rmq.py
+7
-6
No files found.
endpoints/queues.py
View file @
f0a6a868
import
logging
from
flask_restful
import
Resource
,
abort
,
request
from
flask_restful
import
request
from
endpoints.auth_resource
import
AuthResource
from
models.client_model
import
ClientModel
from
rmq
import
get_queue_s
ize
from
rmq
import
get_queue_s
tatus
class
QueueList
(
Resource
):
class
QueueList
(
Auth
Resource
):
def
__init__
(
self
):
self
.
clients_file
=
ClientModel
()
def
get
(
self
):
# return list of clients with secret property removed
return
{
client_id
:
{
"inbox"
:
get_queue_size
(
f
"
{
client_id
}
-inbox"
),
"outbox"
:
get_queue_size
(
f
"
{
client_id
}
-outbox"
),
"broadcast"
:
get_queue_size
(
f
"
{
client_id
}
-broadcast"
),
allow
=
self
.
auth
(
request
)
if
allow
:
return
{
client_id
:
{
"inbox"
:
get_queue_status
(
f
"
{
client_id
}
-inbox"
)[
"size"
],
"outbox"
:
get_queue_status
(
f
"
{
client_id
}
-outbox"
)[
"size"
],
"broadcast"
:
get_queue_status
(
f
"
{
client_id
}
-broadcast"
)[
"size"
],
}
for
client_id
in
self
.
clients_file
.
get
().
keys
()
}
for
client_id
in
self
.
clients_file
.
get
().
keys
()
}
This diff is collapsed.
Click to expand it.
rmq.py
View file @
f0a6a868
...
...
@@ -223,11 +223,12 @@ def listen(queue_name, callback):
channel
.
start_consuming
()
def
get_queue_s
ize
(
queue_name
):
def
get_queue_s
tatus
(
queue_name
):
_
,
channel
=
pika_connect
(
host
=
host
)
response
=
channel
.
queue_declare
(
queue
=
queue_name
,
passive
=
True
)
logging
.
info
(
str
(
vars
(
response
.
method
)))
# queue_size = vars(response.method)['method_count']
# queue_size = response.method.method_count
# logging.debug(f"Queue: {queue_name} contains {queue_size} messages")
return
0
# queue_size
queue_status
=
{
"size"
:
response
.
method
.
message_count
,
"has_consumer"
:
response
.
method
.
consumer_count
>
0
,
}
logging
.
debug
(
f
"Queue:
{
queue_name
}
contains
{
queue_status
[
'size'
]
}
messages"
)
return
queue_status
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment