submit_session(public_api_client, target_id, session_name, timeout, session_mode=None, session_artifacts=None, session_parameters=None, ssh_public_key_id=None):
"""
Description
-----------
To submit a new session.
Args
----
public_api_client: QDC api client object.
target_id: Chipset on which session needs to be executed.
session_name: Name of the session user wanted to create.
timeout: Session timeout in minutes.
session_mode: Mode of the session (Application, AI mode etc.). for now, we have application mode support. Default mode is Application.
session_artifacts: List of uploaded test artifacts to be used for test execution.
session_parameters: (optional) device configurations, set this value according to different session_type, session_mode, target_id
ssh_public_key_id: Only need for Interactive SSH connection.
Returns
-------
long: Newly submitted session id.
None: In case of any failure.
Usages
------
session_device_target = "SM8650" # device target chipset
session_target_id = qdc_api.get_target_id(public_api_client, session_device_target)
session_id = qdc_api.submit_session(public_api_client=public_api_client,
target_id=session_target_id,
session_name="Example session",
timeout=600)
"""
if session_parameters is None:
session_parameters = []
if session_mode is None:
session_mode = SessionMode.APPLICATION
session_creation_payload = CreateSessionType0(target_id=target_id,
session_name=session_name,
session_mode=session_mode,
timeout_in_minutes=timeout,
session_artifacts=session_artifacts,
session_parameters=session_parameters,
ssh_public_key_id=ssh_public_key_id)
session_creation_response = post_sessions.sync_detailed(client=_get_client_with_new_trace_header(public_api_client),
body=session_creation_payload)
if session_creation_response.status_code == 200:
print(f"Submit session response: {session_creation_response.content.decode('utf-8')}")
session_id = session_creation_response.parsed.session_id
print(f"Session Id: {session_id}")
return session_id
else:
print(
f"Submit a session failed with error code {session_creation_response.status_code} {session_creation_response.content.decode('utf-8')}")
return None