Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
d487c932
Unverified
Commit
d487c932
authored
Jan 08, 2025
by
Jakob Görgen
Browse files
symphony/client: added client provider
parent
6eedf111
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
0 deletions
+71
-0
symphony/client/simbricks/client/provider.py
symphony/client/simbricks/client/provider.py
+68
-0
symphony/client/simbricks/client/settings.py
symphony/client/simbricks/client/settings.py
+3
-0
No files found.
symphony/client/simbricks/client/provider.py
0 → 100644
View file @
d487c932
# Copyright 2024 Max Planck Institute for Software Systems, and
# National University of Singapore
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
from
.client
import
BaseClient
,
AdminClient
,
NSClient
,
SimBricksClient
,
RunnerClient
from
.settings
import
client_settings
class
ClientProvider
:
def
__init__
(
self
,
namespace
:
str
=
client_settings
().
namespace
,
runner_id
:
int
=
client_settings
().
runner_id
):
self
.
namespace
=
namespace
self
.
runner_id
:
int
=
runner_id
self
.
_base_client
:
BaseClient
|
None
=
None
self
.
_admin_client
:
AdminClient
=
None
self
.
_ns_client
:
NSClient
|
None
=
None
self
.
_simbricks_client
:
SimBricksClient
|
None
=
None
self
.
_runner_client
:
RunnerClient
|
None
=
None
@
property
def
base_client
(
self
):
if
self
.
_base_client
is
None
:
self
.
_base_client
=
BaseClient
()
return
self
.
_base_client
@
property
def
admin_client
(
self
):
if
self
.
_admin_client
is
None
:
self
.
_admin_client
=
AdminClient
(
base_client
=
self
.
base_client
)
return
self
.
_admin_client
@
property
def
ns_client
(
self
):
if
self
.
_ns_client
is
None
:
self
.
_ns_client
=
NSClient
(
base_client
=
self
.
base_client
,
namespace
=
self
.
namespace
)
return
self
.
_ns_client
@
property
def
simbricks_client
(
self
):
if
self
.
_simbricks_client
is
None
:
self
.
_simbricks_client
=
SimBricksClient
(
self
.
ns_client
)
return
self
.
_simbricks_client
@
property
def
runner_client
(
self
):
if
self
.
_runner_client
is
None
:
self
.
_runner_client
=
RunnerClient
(
self
.
ns_client
,
id
=
self
.
runner_id
)
return
self
.
_runner_client
client_provider
=
ClientProvider
()
symphony/client/simbricks/client/settings.py
View file @
d487c932
...
@@ -30,6 +30,9 @@ class ClientSettings(BaseSettings):
...
@@ -30,6 +30,9 @@ class ClientSettings(BaseSettings):
auth_token_url
:
str
=
"https://auth.simbricks.io/realms/SimBricks/protocol/openid-connect/token"
auth_token_url
:
str
=
"https://auth.simbricks.io/realms/SimBricks/protocol/openid-connect/token"
auth_dev_url
:
str
=
"https://auth.simbricks.io/realms/SimBricks/protocol/openid-connect/auth/device"
auth_dev_url
:
str
=
"https://auth.simbricks.io/realms/SimBricks/protocol/openid-connect/auth/device"
namespace
:
str
=
""
runner_id
:
int
=
-
1
@
lru_cache
@
lru_cache
def
client_settings
()
->
ClientSettings
:
def
client_settings
()
->
ClientSettings
:
return
ClientSettings
(
_env_file
=
"internal.env"
,
_env_file_encoding
=
"utf-8"
)
return
ClientSettings
(
_env_file
=
"internal.env"
,
_env_file_encoding
=
"utf-8"
)
\ No newline at end of file
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