Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
perxis-python
Manage
Activity
Members
Plan
Custom issue tracker
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package registry
Operate
Terraform modules
Analyze
Contributor analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
perxis
perxis-python
Commits
ed513724
Commit
ed513724
authored
11 months ago
by
Podosochnyy Maxim
Browse files
Options
Downloads
Patches
Plain Diff
Исправлена ошибка с неверным указанием каналов
parent
dca43310
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
examples/extension_service/servicer.py
+70
-1
70 additions, 1 deletion
examples/extension_service/servicer.py
perxis/extensions/bootstrap.py
+29
-12
29 additions, 12 deletions
perxis/extensions/bootstrap.py
setup.py
+1
-1
1 addition, 1 deletion
setup.py
with
100 additions
and
14 deletions
examples/extension_service/servicer.py
+
70
−
1
View file @
ed513724
...
@@ -9,17 +9,25 @@ from perxis.extensions import extension_service_pb2
...
@@ -9,17 +9,25 @@ from perxis.extensions import extension_service_pb2
from
perxis.extensions.extension_service
import
ExtensionService
from
perxis.extensions.extension_service
import
ExtensionService
from
perxis.extensions
import
extension_pb2
from
perxis.extensions
import
extension_pb2
from
perxis.spaces
import
spaces_pb2
from
perxis.spaces
import
spaces_pb2
from
perxis.organizations
import
organizations_pb2
from
perxis.environments
import
environments_pb2
from
perxis.environments
import
environments_pb2
from
perxis.collections
import
helpers
as
collections_helpers
from
perxis.collections
import
helpers
as
collections_helpers
from
perxis.roles
import
roles_pb2
from
perxis.roles
import
roles_pb2
from
perxis.common
import
common_pb2
from
perxis.common
import
common_pb2
from
perxis.clients
import
clients_pb2
from
perxis.clients
import
clients_pb2
from
perxis.users
import
users_pb2
class
Servicer
(
ExtensionService
):
class
Servicer
(
ExtensionService
):
extension_id
=
extension
.
ID
extension_id
=
extension
.
ID
collections
=
collections_helpers
.
make_collection_instances
(
"
./schemes
"
,
extension_collections
.
schemes_mapping
)
collections
=
collections_helpers
.
make_collection_instances
(
"
./schemes
"
,
extension_collections
.
schemes_mapping
)
actions
=
[
actions
=
[
make_action_dict
(
extension_id
=
extension
.
ID
,
action_id
=
"
get_current_organization_and_users
"
,
name
=
"
Получить текущую организацию и пользователей
"
,
kind
=
extension_pb2
.
Action
.
Kind
.
ENVIRONMENT
,
),
make_action_dict
(
make_action_dict
(
extension_id
=
extension
.
ID
,
extension_id
=
extension
.
ID
,
action_id
=
"
demo-action-no-callback
"
,
action_id
=
"
demo-action-no-callback
"
,
...
@@ -68,6 +76,59 @@ class Servicer(ExtensionService):
...
@@ -68,6 +76,59 @@ class Servicer(ExtensionService):
)
)
]
]
async
def
action_get_current_organization_and_users
(
self
,
request
:
extension_pb2
.
ActionRequest
,
_
):
response_list
=
[]
message
=
await
self
.
spaces_service
.
Get
(
spaces_pb2
.
GetRequest
(
space_id
=
request
.
space_id
)
)
space
=
message
.
space
message
=
await
self
.
organizations_service
.
Get
(
organizations_pb2
.
GetRequest
(
org_id
=
space
.
org_id
)
)
organization
=
message
.
org
response_list
.
append
(
f
"
Организация
{
organization
.
name
}
, пространство
{
space
.
name
}
"
)
message
=
await
self
.
environments_service
.
Get
(
environments_pb2
.
GetRequest
(
space_id
=
request
.
space_id
,
env_id
=
request
.
env_id
,
)
)
environment
=
message
.
env
response_list
.
append
(
f
"
Окружение
{
'
,
'
.
join
(
environment
.
aliases
)
}
"
)
message
=
await
self
.
users_service
.
Find
(
users_pb2
.
FindRequest
()
)
for
user
in
message
.
users
:
response_list
.
append
(
f
"
Пользователь
{
user
.
name
}
(
{
user
.
id
}
)
"
)
return
extension_service_pb2
.
ActionResponse
(
state
=
extension_service_pb2
.
ActionResponse
.
State
.
DONE
,
title
=
"
Текущее окружение
"
,
msg
=
"
,
"
.
join
(
response_list
)
)
async
def
action_demo_action_items
(
async
def
action_demo_action_items
(
self
,
self
,
request
:
extension_pb2
.
ActionRequest
,
request
:
extension_pb2
.
ActionRequest
,
...
@@ -87,6 +148,14 @@ class Servicer(ExtensionService):
...
@@ -87,6 +148,14 @@ class Servicer(ExtensionService):
space
=
message
.
space
space
=
message
.
space
message
=
await
self
.
organizations_service
.
Get
(
organizations_pb2
.
GetRequest
(
org_id
=
space
.
org_id
)
)
organization
=
message
.
org
message
=
await
self
.
environments_service
.
Get
(
message
=
await
self
.
environments_service
.
Get
(
environments_pb2
.
GetRequest
(
environments_pb2
.
GetRequest
(
space_id
=
request
.
space_id
,
space_id
=
request
.
space_id
,
...
@@ -103,7 +172,7 @@ class Servicer(ExtensionService):
...
@@ -103,7 +172,7 @@ class Servicer(ExtensionService):
else
:
else
:
state
=
extension_service_pb2
.
ActionResponse
.
State
.
DONE
state
=
extension_service_pb2
.
ActionResponse
.
State
.
DONE
title
=
f
"
Действие над одним элементом в пространстве
{
space
.
name
}
и окружении
{
'
,
'
.
join
(
environment
.
aliases
)
}
"
title
=
f
"
Действие над одним элементом в
организации
{
organization
.
name
}
,
пространстве
{
space
.
name
}
и окружении
{
'
,
'
.
join
(
environment
.
aliases
)
}
"
return
extension_service_pb2
.
ActionResponse
(
return
extension_service_pb2
.
ActionResponse
(
state
=
state
,
state
=
state
,
...
...
This diff is collapsed.
Click to expand it.
perxis/extensions/bootstrap.py
+
29
−
12
View file @
ed513724
...
@@ -31,7 +31,10 @@ async def _main(
...
@@ -31,7 +31,10 @@ async def _main(
ext_descriptor
:
manager_service_pb2
.
ExtensionDescriptor
,
ext_descriptor
:
manager_service_pb2
.
ExtensionDescriptor
,
servicer_cls
:
extension_service_pb2_grpc
.
ExtensionServiceServicer
,
servicer_cls
:
extension_service_pb2_grpc
.
ExtensionServiceServicer
,
ext_manager_host
:
str
,
ext_manager_host
:
str
,
content_host
:
str
content_host
:
str
,
account_host
:
str
,
files_host
:
str
,
images_host
:
str
):
):
interceptor
=
header_adder_interceptor
(
interceptor
=
header_adder_interceptor
(
'
x-perxis-access
'
,
'
system
'
'
x-perxis-access
'
,
'
system
'
...
@@ -47,6 +50,10 @@ async def _main(
...
@@ -47,6 +50,10 @@ async def _main(
async
def
register_extension
():
async
def
register_extension
():
await
_register_extension
()
await
_register_extension
()
account_channel
=
grpc
.
aio
.
insecure_channel
(
account_host
,
interceptors
=
[
interceptor
])
files_channel
=
grpc
.
aio
.
insecure_channel
(
files_host
,
interceptors
=
[
interceptor
])
images_channel
=
grpc
.
aio
.
insecure_channel
(
images_host
,
interceptors
=
[
interceptor
])
async
with
grpc
.
aio
.
insecure_channel
(
ext_manager_host
,
interceptors
=
[
interceptor
])
as
extensions_manager_channel
:
async
with
grpc
.
aio
.
insecure_channel
(
ext_manager_host
,
interceptors
=
[
interceptor
])
as
extensions_manager_channel
:
ext_manager_stub
=
manager_service_pb2_grpc
.
ExtensionManagerServiceStub
(
extensions_manager_channel
)
ext_manager_stub
=
manager_service_pb2_grpc
.
ExtensionManagerServiceStub
(
extensions_manager_channel
)
...
@@ -80,12 +87,12 @@ async def _main(
...
@@ -80,12 +87,12 @@ async def _main(
environments_stub
=
environments_pb2_grpc
.
EnvironmentsStub
(
content_channel
)
environments_stub
=
environments_pb2_grpc
.
EnvironmentsStub
(
content_channel
)
items_stub
=
items_pb2_grpc
.
ItemsStub
(
content_channel
)
items_stub
=
items_pb2_grpc
.
ItemsStub
(
content_channel
)
spaces_stub
=
spaces_pb2_grpc
.
SpacesStub
(
content_channel
)
spaces_stub
=
spaces_pb2_grpc
.
SpacesStub
(
content_channel
)
files_stub
=
files_pb2_grpc
.
FilesStub
(
content
_channel
)
files_stub
=
files_pb2_grpc
.
FilesStub
(
files
_channel
)
images_stub
=
images_pb2_grpc
.
ImagesStub
(
content
_channel
)
images_stub
=
images_pb2_grpc
.
ImagesStub
(
images
_channel
)
references_stub
=
references_pb2_grpc
.
ReferencesStub
(
content_channel
)
references_stub
=
references_pb2_grpc
.
ReferencesStub
(
content_channel
)
users_stub
=
users_pb2_grpc
.
UsersStub
(
conte
nt_channel
)
users_stub
=
users_pb2_grpc
.
UsersStub
(
accou
nt_channel
)
organizations_stub
=
organizations_pb2_grpc
.
OrganizationsStub
(
conte
nt_channel
)
organizations_stub
=
organizations_pb2_grpc
.
OrganizationsStub
(
accou
nt_channel
)
members_stub
=
members_pb2_grpc
.
MembersStub
(
conte
nt_channel
)
members_stub
=
members_pb2_grpc
.
MembersStub
(
accou
nt_channel
)
locales_stub
=
locales_pb2_grpc
.
LocalesStub
(
content_channel
)
locales_stub
=
locales_pb2_grpc
.
LocalesStub
(
content_channel
)
invitations_stub
=
invitations_pb2_grpc
.
InvitationsStub
(
content_channel
)
invitations_stub
=
invitations_pb2_grpc
.
InvitationsStub
(
content_channel
)
collaborators_stub
=
collaborators_pb2_grpc
.
CollaboratorsStub
(
content_channel
)
collaborators_stub
=
collaborators_pb2_grpc
.
CollaboratorsStub
(
content_channel
)
...
@@ -118,12 +125,19 @@ async def _main(
...
@@ -118,12 +125,19 @@ async def _main(
await
server
.
start
()
await
server
.
start
()
await
server
.
wait_for_termination
()
await
server
.
wait_for_termination
()
await
account_channel
.
close
()
await
files_channel
.
close
()
await
images_channel
.
close
()
def
bootstrap
(
def
bootstrap
(
ext_descriptor
:
manager_service_pb2
.
ExtensionDescriptor
,
ext_descriptor
:
manager_service_pb2
.
ExtensionDescriptor
,
servicer_cls
:
extension_service_pb2_grpc
.
ExtensionServiceServicer
,
servicer_cls
:
extension_service_pb2_grpc
.
ExtensionServiceServicer
,
ext_manager_host
:
str
,
ext_manager_host
:
str
=
"
extension-manager:9030
"
,
content_host
:
str
,
content_host
:
str
=
"
content:9020
"
,
account_host
:
str
=
"
account:9010
"
,
files_host
:
str
=
"
files:8003
"
,
images_host
:
str
=
"
images:8005
"
):
):
logger
.
info
(
f
"
Инициализация сервиса расширения
{
ext_descriptor
.
extension
}
"
)
logger
.
info
(
f
"
Инициализация сервиса расширения
{
ext_descriptor
.
extension
}
"
)
...
@@ -133,10 +147,13 @@ def bootstrap(
...
@@ -133,10 +147,13 @@ def bootstrap(
try
:
try
:
loop
.
run_until_complete
(
loop
.
run_until_complete
(
_main
(
_main
(
ext_descriptor
,
ext_descriptor
=
ext_descriptor
,
servicer_cls
,
servicer_cls
=
servicer_cls
,
ext_manager_host
,
ext_manager_host
=
ext_manager_host
,
content_host
content_host
=
content_host
,
account_host
=
account_host
,
files_host
=
files_host
,
images_host
=
images_host
,
)
)
)
)
finally
:
finally
:
...
...
This diff is collapsed.
Click to expand it.
setup.py
+
1
−
1
View file @
ed513724
...
@@ -14,7 +14,7 @@ def load_requirements():
...
@@ -14,7 +14,7 @@ def load_requirements():
setup
(
setup
(
name
=
'
perxis
'
,
name
=
'
perxis
'
,
version
=
'
1.7.
1
'
,
version
=
'
1.7.
2
'
,
description
=
'
Perxis python client
'
,
description
=
'
Perxis python client
'
,
long_description
=
long_description
,
long_description
=
long_description
,
long_description_content_type
=
'
text/markdown
'
,
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