Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
perxis-python
Manage
Activity
Members
Labels
Plan
Issues
3
Issue boards
Milestones
Wiki
Custom issue tracker
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
perxis
perxis-python
Commits
26a74b61
Commit
26a74b61
authored
1 year ago
by
Podosochnyy Maxim
Browse files
Options
Downloads
Patches
Plain Diff
Добавлено логгирование запросов
parent
59f9d25d
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!39
Добавлено логгирование запросов
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
examples/extension_service/server.py
+13
-0
13 additions, 0 deletions
examples/extension_service/server.py
perxis/extensions/extension_service.py
+233
-60
233 additions, 60 deletions
perxis/extensions/extension_service.py
setup.py
+1
-1
1 addition, 1 deletion
setup.py
with
247 additions
and
61 deletions
examples/extension_service/server.py
+
13
−
0
View file @
26a74b61
import
grpc
import
logging
from
concurrent
import
futures
from
perxis.collections
import
collections_pb2_grpc
...
...
@@ -11,10 +12,16 @@ from perxis.interceptors import header_adder_interceptor
from
servicer
import
Servicer
from
constants.extension
import
get_extension_descriptor
logging
.
basicConfig
(
level
=
logging
.
INFO
)
logger
=
logging
.
getLogger
(
__name__
)
def
main
():
my_extension_descriptor
=
get_extension_descriptor
(
host
=
"
demo-ext-backend:50051
"
)
logger
.
info
(
f
"
Инициализация сервиса расширения
{
my_extension_descriptor
.
extension
}
"
)
interceptor
=
header_adder_interceptor
(
'
x-perxis-access
'
,
'
system
'
)
...
...
@@ -34,10 +41,16 @@ def main():
)
)
logger
.
info
(
f
"
Изменилась версия расширения
{
my_extension_descriptor
.
extension
}
(
{
ext
.
version
}
->
{
my_extension_descriptor
.
version
}
)
"
)
ext_manager_stub
.
RegisterExtensions
(
manager_pb2
.
RegisterExtensionsRequest
(
extensions
=
[
my_extension_descriptor
]
))
logger
.
info
(
f
"
Расширение
{
my_extension_descriptor
.
extension
}
зарегистрировано в perxis
"
)
with
grpc
.
insecure_channel
(
"
content:9020
"
)
as
content_channel
:
intercepted_content_channel
=
grpc
.
intercept_channel
(
content_channel
,
interceptor
)
...
...
This diff is collapsed.
Click to expand it.
perxis/extensions/extension_service.py
+
233
−
60
View file @
26a74b61
import
grpc
import
logging
from
perxis.extensions
import
extension_pb2
,
extension_pb2_grpc
from
perxis.roles
import
roles_pb2_grpc
,
roles_pb2
...
...
@@ -20,6 +21,7 @@ class ExtensionService(extension_pb2_grpc.ExtensionServicer):
roles_service
:
roles_pb2_grpc
.
RolesStub
,
clients_service
:
clients_pb2_grpc
.
ClientsStub
,
):
self
.
logger
=
logging
.
getLogger
(
__name__
)
self
.
collections_service
=
collections_service
self
.
environments_service
=
environments_service
self
.
roles_service
=
roles_service
...
...
@@ -40,85 +42,256 @@ class ExtensionService(extension_pb2_grpc.ExtensionServicer):
self
.
extension_setup
.
add_client
(
client
)
def
Install
(
self
,
request
:
extension_pb2
.
InstallRequest
,
context
):
errors_list
=
self
.
extension_setup
.
install
(
request
.
space_id
,
request
.
env_id
,
request
.
force
self
.
logger
.
info
(
"
Установка расширения %s для окружения %s пространства %s. %s force
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
"
С
"
if
request
.
force
else
"
Без
"
)
)
if
errors_list
:
try
:
errors_list
=
self
.
extension_setup
.
install
(
request
.
space_id
,
request
.
env_id
,
request
.
force
)
if
errors_list
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
response
=
extension_pb2
.
InstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
)
except
Exception
as
e
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
return
extension_pb2
.
InstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
context
.
set_details
(
str
(
e
))
response
=
extension_pb2
.
InstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
,
error
=
str
(
e
),
msg
=
None
)]
)
if
response
.
results
[
0
].
state
==
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
:
log_func
=
self
.
logger
.
info
else
:
log_func
=
self
.
logger
.
error
log_func
(
"
Результат установки расширения %s для окружения %s пространства %s:
\r\n
"
"
State: %s
\r\n
"
"
Msg: %s
\r\n
"
"
Error: %s
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
response
.
results
[
0
].
state
,
response
.
results
[
0
].
msg
,
response
.
results
[
0
].
error
)
)
return
response
def
Update
(
self
,
request
:
extension_pb2
.
UpdateRequest
,
context
):
errors_list
=
self
.
extension_setup
.
update
(
request
.
space_id
,
request
.
env_id
,
request
.
force
self
.
logger
.
info
(
"
Обновление расширения %s для окружения %s пространства %s. %s force
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
"
С
"
if
request
.
force
else
"
Без
"
)
)
if
errors_list
:
try
:
errors_list
=
self
.
extension_setup
.
update
(
request
.
space_id
,
request
.
env_id
,
request
.
force
)
if
errors_list
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
response
=
extension_pb2
.
UpdateResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
)
except
Exception
as
e
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
return
extension_pb2
.
UpdateResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
context
.
set_details
(
str
(
e
))
response
=
extension_pb2
.
UpdateResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
,
error
=
str
(
e
),
msg
=
None
)]
)
if
response
.
results
[
0
].
state
==
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
:
log_func
=
self
.
logger
.
info
else
:
log_func
=
self
.
logger
.
error
log_func
(
"
Результат обновления расширения %s для окружения %s пространства %s:
\r\n
"
"
State: %s
\r\n
"
"
Msg: %s
\r\n
"
"
Error: %s
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
response
.
results
[
0
].
state
,
response
.
results
[
0
].
msg
,
response
.
results
[
0
].
error
)
)
return
response
def
Uninstall
(
self
,
request
:
extension_pb2
.
UninstallRequest
,
context
):
errors_list
:
list
[
str
]
=
self
.
extension_setup
.
uninstall
(
request
.
space_id
,
request
.
env_id
,
request
.
remove
)
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
return
extension_pb2
.
UninstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
self
.
logger
.
info
(
"
Удаление расширения %s для окружения %s пространства %s. %s remove
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
"
С
"
if
request
.
remove
else
"
Без
"
)
)
try
:
errors_list
:
list
[
str
]
=
self
.
extension_setup
.
uninstall
(
request
.
space_id
,
request
.
env_id
,
request
.
remove
)
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
response
=
extension_pb2
.
UninstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
)
except
Exception
as
e
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
str
(
e
))
response
=
extension_pb2
.
UninstallResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
,
error
=
str
(
e
),
msg
=
None
)]
)
if
response
.
results
[
0
].
state
==
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
:
log_func
=
self
.
logger
.
info
else
:
log_func
=
self
.
logger
.
error
log_func
(
"
Результат удаления расширения %s для окружения %s пространства %s:
\r\n
"
"
State: %s
\r\n
"
"
Msg: %s
\r\n
"
"
Error: %s
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
response
.
results
[
0
].
state
,
response
.
results
[
0
].
msg
,
response
.
results
[
0
].
error
)
)
return
response
def
Check
(
self
,
request
:
extension_pb2
.
CheckRequest
,
context
):
errors_list
=
self
.
extension_setup
.
check
(
request
.
space_id
,
request
.
env_id
)
self
.
logger
.
info
(
"
Проверка расширения %s для окружения %s пространства %s
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
)
)
if
errors_list
:
try
:
errors_list
=
self
.
extension_setup
.
check
(
request
.
space_id
,
request
.
env_id
)
if
errors_list
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
response
=
extension_pb2
.
CheckResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
)
except
Exception
as
e
:
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
;
"
.
join
(
errors_list
))
response_state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
\
if
not
errors_list
\
else
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
return
extension_pb2
.
CheckResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
response_state
,
error
=
"
;
"
.
join
(
errors_list
)
if
errors_list
else
None
,
msg
=
"
Ok
"
if
not
errors_list
else
None
)]
context
.
set_details
(
str
(
e
))
response
=
extension_pb2
.
CheckResponse
(
results
=
[
extension_pb2
.
ExtensionRequestResult
(
extension
=
self
.
extension_id
,
state
=
extension_pb2
.
ExtensionRequestResult
.
State
.
ERROR
,
error
=
str
(
e
),
msg
=
None
)]
)
if
response
.
results
[
0
].
state
==
extension_pb2
.
ExtensionRequestResult
.
State
.
OK
:
log_func
=
self
.
logger
.
info
else
:
log_func
=
self
.
logger
.
error
log_func
(
"
Результат проверки расширения %s для окружения %s пространства %s:
\r\n
"
"
State: %s
\r\n
"
"
Msg: %s
\r\n
"
"
Error: %s
"
%
(
self
.
extension_id
,
request
.
env_id
,
request
.
space_id
,
response
.
results
[
0
].
state
,
response
.
results
[
0
].
msg
,
response
.
results
[
0
].
error
)
)
return
response
def
Action
(
self
,
request
:
extension_pb2
.
ActionRequest
,
context
):
context
.
set_code
(
grpc
.
StatusCode
.
UNKNOWN
)
context
.
set_details
(
"
Unknown action
"
)
...
...
This diff is collapsed.
Click to expand it.
setup.py
+
1
−
1
View file @
26a74b61
...
...
@@ -14,7 +14,7 @@ def load_requirements():
setup
(
name
=
'
perxis
'
,
version
=
'
0.0.1
7
'
,
version
=
'
0.0.1
8
'
,
description
=
'
Perxis python client
'
,
long_description
=
long_description
,
long_description_content_type
=
'
text/markdown
'
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment