grpc: removed set session metadata, now accomplished with start session
This commit is contained in:
parent
a217c2445c
commit
634341dd03
8 changed files with 7 additions and 94 deletions
|
@ -298,22 +298,6 @@ class CoreGrpcClient:
|
||||||
request = core_pb2.GetSessionRequest(session_id=session_id)
|
request = core_pb2.GetSessionRequest(session_id=session_id)
|
||||||
return self.stub.GetSession(request)
|
return self.stub.GetSession(request)
|
||||||
|
|
||||||
def set_session_metadata(
|
|
||||||
self, session_id: int, config: Dict[str, str]
|
|
||||||
) -> core_pb2.SetSessionMetadataResponse:
|
|
||||||
"""
|
|
||||||
Set metadata for a session.
|
|
||||||
|
|
||||||
:param session_id: id of session
|
|
||||||
:param config: configuration values to set
|
|
||||||
:return: response with result of success or failure
|
|
||||||
:raises grpc.RpcError: when session doesn't exist
|
|
||||||
"""
|
|
||||||
request = core_pb2.SetSessionMetadataRequest(
|
|
||||||
session_id=session_id, config=config
|
|
||||||
)
|
|
||||||
return self.stub.SetSessionMetadata(request)
|
|
||||||
|
|
||||||
def set_session_state(
|
def set_session_state(
|
||||||
self, session_id: int, state: core_pb2.SessionState
|
self, session_id: int, state: core_pb2.SessionState
|
||||||
) -> core_pb2.SetSessionStateResponse:
|
) -> core_pb2.SetSessionStateResponse:
|
||||||
|
|
|
@ -258,6 +258,7 @@ class CoreGrpcClient:
|
||||||
|
|
||||||
:param session: session to start
|
:param session: session to start
|
||||||
:param asymmetric_links: link configuration for asymmetric links
|
:param asymmetric_links: link configuration for asymmetric links
|
||||||
|
:param definition: True to only define session data, False to start session
|
||||||
:return: tuple of result and exception strings
|
:return: tuple of result and exception strings
|
||||||
"""
|
"""
|
||||||
nodes = [x.to_proto() for x in session.nodes.values()]
|
nodes = [x.to_proto() for x in session.nodes.values()]
|
||||||
|
@ -335,6 +336,7 @@ class CoreGrpcClient:
|
||||||
options=options,
|
options=options,
|
||||||
user=session.user,
|
user=session.user,
|
||||||
definition=definition,
|
definition=definition,
|
||||||
|
metadata=session.metadata,
|
||||||
)
|
)
|
||||||
response = self.stub.StartSession(request)
|
response = self.stub.StartSession(request)
|
||||||
return response.result, list(response.exceptions)
|
return response.result, list(response.exceptions)
|
||||||
|
@ -412,21 +414,6 @@ class CoreGrpcClient:
|
||||||
response = self.stub.GetSession(request)
|
response = self.stub.GetSession(request)
|
||||||
return wrappers.Session.from_proto(response.session)
|
return wrappers.Session.from_proto(response.session)
|
||||||
|
|
||||||
def set_session_metadata(self, session_id: int, config: Dict[str, str]) -> bool:
|
|
||||||
"""
|
|
||||||
Set metadata for a session.
|
|
||||||
|
|
||||||
:param session_id: id of session
|
|
||||||
:param config: configuration values to set
|
|
||||||
:return: True for success, False otherwise
|
|
||||||
:raises grpc.RpcError: when session doesn't exist
|
|
||||||
"""
|
|
||||||
request = core_pb2.SetSessionMetadataRequest(
|
|
||||||
session_id=session_id, config=config
|
|
||||||
)
|
|
||||||
response = self.stub.SetSessionMetadata(request)
|
|
||||||
return response.result
|
|
||||||
|
|
||||||
def set_session_state(self, session_id: int, state: wrappers.SessionState) -> bool:
|
def set_session_state(self, session_id: int, state: wrappers.SessionState) -> bool:
|
||||||
"""
|
"""
|
||||||
Set session state.
|
Set session state.
|
||||||
|
|
|
@ -235,6 +235,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
||||||
session.options.config_reset()
|
session.options.config_reset()
|
||||||
for key, value in request.options.items():
|
for key, value in request.options.items():
|
||||||
session.options.set_config(key, value)
|
session.options.set_config(key, value)
|
||||||
|
session.metadata = dict(request.metadata)
|
||||||
|
|
||||||
# location
|
# location
|
||||||
if request.HasField("location"):
|
if request.HasField("location"):
|
||||||
|
@ -419,21 +420,6 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
||||||
result = False
|
result = False
|
||||||
return core_pb2.SetSessionStateResponse(result=result)
|
return core_pb2.SetSessionStateResponse(result=result)
|
||||||
|
|
||||||
def SetSessionMetadata(
|
|
||||||
self, request: core_pb2.SetSessionMetadataRequest, context: ServicerContext
|
|
||||||
) -> core_pb2.SetSessionMetadataResponse:
|
|
||||||
"""
|
|
||||||
Update a session's metadata.
|
|
||||||
|
|
||||||
:param request: set metadata request
|
|
||||||
:param context: context object
|
|
||||||
:return: set metadata response
|
|
||||||
"""
|
|
||||||
logger.debug("set session metadata: %s", request)
|
|
||||||
session = self.get_session(request.session_id, context)
|
|
||||||
session.metadata = dict(request.config)
|
|
||||||
return core_pb2.SetSessionMetadataResponse(result=True)
|
|
||||||
|
|
||||||
def CheckSession(
|
def CheckSession(
|
||||||
self, request: core_pb2.GetSessionRequest, context: ServicerContext
|
self, request: core_pb2.GetSessionRequest, context: ServicerContext
|
||||||
) -> core_pb2.CheckSessionResponse:
|
) -> core_pb2.CheckSessionResponse:
|
||||||
|
|
|
@ -456,6 +456,7 @@ class CoreClient:
|
||||||
def start_session(self, definition: bool = False) -> Tuple[bool, List[str]]:
|
def start_session(self, definition: bool = False) -> Tuple[bool, List[str]]:
|
||||||
links, asym_links = self.get_links(definition)
|
links, asym_links = self.get_links(definition)
|
||||||
self.session.links = links
|
self.session.links = links
|
||||||
|
self.session.metadata = self.get_metadata()
|
||||||
result = False
|
result = False
|
||||||
exceptions = []
|
exceptions = []
|
||||||
try:
|
try:
|
||||||
|
@ -469,8 +470,6 @@ class CoreClient:
|
||||||
definition,
|
definition,
|
||||||
result,
|
result,
|
||||||
)
|
)
|
||||||
if result:
|
|
||||||
self.set_metadata()
|
|
||||||
except grpc.RpcError as e:
|
except grpc.RpcError as e:
|
||||||
self.app.show_grpc_exception("Start Session Error", e)
|
self.app.show_grpc_exception("Start Session Error", e)
|
||||||
return result, exceptions
|
return result, exceptions
|
||||||
|
@ -495,7 +494,7 @@ class CoreClient:
|
||||||
self.mobility_players[node.id] = mobility_player
|
self.mobility_players[node.id] = mobility_player
|
||||||
mobility_player.show()
|
mobility_player.show()
|
||||||
|
|
||||||
def set_metadata(self) -> None:
|
def get_metadata(self) -> Dict[str, str]:
|
||||||
# create canvas data
|
# create canvas data
|
||||||
canvas_config = self.app.manager.get_metadata()
|
canvas_config = self.app.manager.get_metadata()
|
||||||
canvas_config = json.dumps(canvas_config)
|
canvas_config = json.dumps(canvas_config)
|
||||||
|
@ -521,11 +520,9 @@ class CoreClient:
|
||||||
hidden = json.dumps(hidden)
|
hidden = json.dumps(hidden)
|
||||||
|
|
||||||
# save metadata
|
# save metadata
|
||||||
metadata = dict(
|
return dict(
|
||||||
canvas=canvas_config, shapes=shapes, edges=edges_config, hidden=hidden
|
canvas=canvas_config, shapes=shapes, edges=edges_config, hidden=hidden
|
||||||
)
|
)
|
||||||
response = self.client.set_session_metadata(self.session.id, metadata)
|
|
||||||
logger.debug("set session metadata %s, result: %s", metadata, response)
|
|
||||||
|
|
||||||
def launch_terminal(self, node_id: int) -> None:
|
def launch_terminal(self, node_id: int) -> None:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -306,7 +306,6 @@ class Toolbar(ttk.Frame):
|
||||||
def start_callback(self, result: bool, exceptions: List[str]) -> None:
|
def start_callback(self, result: bool, exceptions: List[str]) -> None:
|
||||||
if result:
|
if result:
|
||||||
self.set_runtime()
|
self.set_runtime()
|
||||||
self.app.core.set_metadata()
|
|
||||||
self.app.core.show_mobility_players()
|
self.app.core.show_mobility_players()
|
||||||
else:
|
else:
|
||||||
enable_buttons(self.design_frame, enabled=True)
|
enable_buttons(self.design_frame, enabled=True)
|
||||||
|
|
|
@ -25,8 +25,6 @@ service CoreApi {
|
||||||
}
|
}
|
||||||
rpc CheckSession (CheckSessionRequest) returns (CheckSessionResponse) {
|
rpc CheckSession (CheckSessionRequest) returns (CheckSessionResponse) {
|
||||||
}
|
}
|
||||||
rpc SetSessionMetadata (SetSessionMetadataRequest) returns (SetSessionMetadataResponse) {
|
|
||||||
}
|
|
||||||
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
rpc SetSessionState (SetSessionStateRequest) returns (SetSessionStateResponse) {
|
||||||
}
|
}
|
||||||
rpc AddSessionServer (AddSessionServerRequest) returns (AddSessionServerResponse) {
|
rpc AddSessionServer (AddSessionServerRequest) returns (AddSessionServerResponse) {
|
||||||
|
@ -179,6 +177,7 @@ message StartSessionRequest {
|
||||||
map<string, string> options = 14;
|
map<string, string> options = 14;
|
||||||
string user = 15;
|
string user = 15;
|
||||||
bool definition = 16;
|
bool definition = 16;
|
||||||
|
map<string, string> metadata = 17;
|
||||||
}
|
}
|
||||||
|
|
||||||
message StartSessionResponse {
|
message StartSessionResponse {
|
||||||
|
@ -234,15 +233,6 @@ message GetSessionResponse {
|
||||||
Session session = 1;
|
Session session = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
message SetSessionMetadataRequest {
|
|
||||||
int32 session_id = 1;
|
|
||||||
map<string, string> config = 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SetSessionMetadataResponse {
|
|
||||||
bool result = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
message SetSessionStateRequest {
|
message SetSessionStateRequest {
|
||||||
int32 session_id = 1;
|
int32 session_id = 1;
|
||||||
SessionState.Enum state = 2;
|
SessionState.Enum state = 2;
|
||||||
|
|
|
@ -236,21 +236,6 @@ class TestGrpc:
|
||||||
assert len(response.sessions) == 1
|
assert len(response.sessions) == 1
|
||||||
assert found_session is not None
|
assert found_session is not None
|
||||||
|
|
||||||
def test_set_session_metadata(self, grpc_server: CoreGrpcServer):
|
|
||||||
# given
|
|
||||||
client = CoreGrpcClient()
|
|
||||||
session = grpc_server.coreemu.create_session()
|
|
||||||
|
|
||||||
# then
|
|
||||||
key = "meta1"
|
|
||||||
value = "value1"
|
|
||||||
with client.context_connect():
|
|
||||||
response = client.set_session_metadata(session.id, {key: value})
|
|
||||||
|
|
||||||
# then
|
|
||||||
assert response.result is True
|
|
||||||
assert session.metadata[key] == value
|
|
||||||
|
|
||||||
def test_set_session_state(self, grpc_server: CoreGrpcServer):
|
def test_set_session_state(self, grpc_server: CoreGrpcServer):
|
||||||
# given
|
# given
|
||||||
client = CoreGrpcClient()
|
client = CoreGrpcClient()
|
||||||
|
|
|
@ -280,21 +280,6 @@ class TestGrpcw:
|
||||||
assert len(sessions) == 1
|
assert len(sessions) == 1
|
||||||
assert found_session is not None
|
assert found_session is not None
|
||||||
|
|
||||||
def test_set_session_metadata(self, grpc_server: CoreGrpcServer):
|
|
||||||
# given
|
|
||||||
client = CoreGrpcClient()
|
|
||||||
session = grpc_server.coreemu.create_session()
|
|
||||||
|
|
||||||
# then
|
|
||||||
key = "meta1"
|
|
||||||
value = "value1"
|
|
||||||
with client.context_connect():
|
|
||||||
result = client.set_session_metadata(session.id, {key: value})
|
|
||||||
|
|
||||||
# then
|
|
||||||
assert result is True
|
|
||||||
assert session.metadata[key] == value
|
|
||||||
|
|
||||||
def test_set_session_state(self, grpc_server: CoreGrpcServer):
|
def test_set_session_state(self, grpc_server: CoreGrpcServer):
|
||||||
# given
|
# given
|
||||||
client = CoreGrpcClient()
|
client = CoreGrpcClient()
|
||||||
|
|
Loading…
Add table
Reference in a new issue