Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Dynamic Exposure
rabotnik
rcom
Commits
4d62da2f
Commit
4d62da2f
authored
Apr 19, 2021
by
Felix Delattre
Browse files
Introduced payload_argument
parent
08401e16
Pipeline
#22002
passed with stage
in 1 minute and 9 seconds
Changes
4
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
rcli/argument_base.py
View file @
4d62da2f
...
...
@@ -25,6 +25,7 @@ class ArgumentBase:
def
__init__
(
self
):
self
.
argument
=
None
self
.
rabotnik_message
=
None
self
.
payload_argument
=
None
self
.
help_text
=
None
def
add_argument_to_parser
(
self
,
parser
:
ArgumentParser
):
...
...
rcli/arguments/building_id.py
View file @
4d62da2f
...
...
@@ -26,6 +26,7 @@ class ArgumentBuildingId(ArgumentBase):
def
__init__
(
self
):
self
.
argument
=
"--building-id"
self
.
rabotnik_message
=
"building"
self
.
payload_argument
=
"building_id"
self
.
help_text
=
"Single `building_id` as integer"
async
def
execute
(
self
,
message_bus
,
argument
,
value
):
...
...
@@ -33,4 +34,6 @@ class ArgumentBuildingId(ArgumentBase):
logger
.
info
(
"Dispatching `%s` with `%s` on `%s`."
,
argument
,
value
,
self
.
rabotnik_message
)
await
message_bus
.
send
(
message
=
self
.
rabotnik_message
,
payload
=
{
argument
:
value
})
await
message_bus
.
send
(
message
=
self
.
rabotnik_message
,
payload
=
{
self
.
payload_argument
:
value
}
)
rcli/arguments/building_ids_file.py
View file @
4d62da2f
...
...
@@ -27,16 +27,23 @@ class ArgumentBuildingIdsFile(ArgumentBase):
def
__init__
(
self
):
self
.
argument
=
"--building-ids-file"
self
.
rabotnik_message
=
"building"
self
.
payload_argument
=
"building_id"
self
.
help_text
=
"File with many `building_id` in every new line"
async
def
execute
(
self
,
message_bus
,
argument
,
filename
):
with
open
(
filename
)
as
f
:
data
=
f
.
read
()
data
=
f
.
read
lines
()
for
line
in
data
:
value
=
line
.
strip
()
logger
.
info
(
"Dispatching `%s` with `%s` on `%s`."
,
argument
,
value
,
self
.
rabotnik_message
)
await
message_bus
.
send
(
message
=
self
.
rabotnik_message
,
payload
=
{
argument
:
value
})
if
value
!=
""
:
logger
.
info
(
"Dispatching `%s` with `%s` on `%s`."
,
argument
,
value
,
self
.
rabotnik_message
,
)
await
message_bus
.
send
(
message
=
self
.
rabotnik_message
,
payload
=
{
self
.
payload_argument
:
value
}
)
rcli/rcli.py
View file @
4d62da2f
...
...
@@ -21,7 +21,7 @@ import sys
import
asyncio
import
logging
from
rabotnik.bus
import
MessageBus
,
PASSWORD
,
USERNAME
,
URL
from
rabotnik.bus
import
MessageBus
from
.argument_factory
import
ArgumentFactory
...
...
@@ -56,7 +56,7 @@ class RCLI:
# Find the argument to be put on the message bus
for
key
,
value
in
args
.
items
():
if
key
in
self
.
arguments
.
arguments
:
if
value
is
not
None
and
key
in
self
.
arguments
.
arguments
:
rabotnik_argument
=
key
rabotnik_value
=
value
...
...
@@ -83,6 +83,8 @@ def main(args: list = None, message_bus: MessageBus = None):
"""
logging
.
basicConfig
(
level
=
logging
.
INFO
)
loop
=
asyncio
.
get_event_loop
()
args
=
args
or
sys
.
argv
[
1
:]
parser
=
argparse
.
ArgumentParser
()
...
...
@@ -91,20 +93,16 @@ def main(args: list = None, message_bus: MessageBus = None):
group
=
parser
.
add_argument_group
(
"message bus"
)
group
.
add_argument
(
"--hostname"
,
type
=
str
,
default
=
URL
,
help
=
f
"set message bus hostname. Default:
{
URL
}
"
)
group
.
add_argument
(
"--hostname"
,
type
=
str
,
help
=
"Set message bus hostname."
)
group
.
add_argument
(
"--username"
,
type
=
str
,
default
=
USERNAME
,
help
=
f
"set message bus username. Default:
{
USERNAME
}
"
,
help
=
"Set message bus username."
,
)
group
.
add_argument
(
"--password"
,
type
=
str
,
default
=
PASSWORD
,
help
=
f
"set message bus password. Default:
{
PASSWORD
}
"
,
help
=
"Set message bus password."
,
)
parser
.
add_argument
(
"-v"
,
"--verbose"
,
action
=
"store_true"
,
help
=
"verbose mode"
,
dest
=
"verbose"
...
...
@@ -117,8 +115,11 @@ def main(args: list = None, message_bus: MessageBus = None):
logger
.
setLevel
(
logging
.
DEBUG
)
if
message_bus
is
None
:
message_bus
=
MessageBus
(
url
=
args
.
hostname
,
username
=
args
.
username
,
password
=
args
.
password
message_bus
=
MessageBus
()
loop
.
create_task
(
message_bus
.
connect
(
host
=
args
.
hostname
,
username
=
args
.
username
,
password
=
args
.
password
)
)
rcli
.
set_message_bus
(
message_bus
)
...
...
@@ -126,5 +127,4 @@ def main(args: list = None, message_bus: MessageBus = None):
# Parse `args` to dictionary.
args_dict
=
vars
(
args
)
loop
=
asyncio
.
get_event_loop
()
loop
.
run_until_complete
(
rcli
.
execute
(
args_dict
))
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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