# Python X2Go (Client) API Documentation (v0.6.1.3)

## x2go.backends.info.plain module

X2GoServerSessionList and X2GoServerSessionInfo classes - data handling for X2Go server sessions.

This backend handles X2Go server implementations that respond with session infos via server-side PLAIN text output.

class `x2go.backends.info.plain.``X2GoServerSessionInfo`

  Bases: `object`

  `x2go.backends.info.plain.X2GoServerSessionInfo` is used to store all information that is retrieved from the connected X2Go server on `X2GoTerminalSession.start()` resp. `X2GoTerminalSession.resume()`.

  `clear`()

    Clear all properties of a `x2go.backends.info.plain.X2GoServerSessionInfo` object.

  `get_session_type`()

    Get the session type (i.e. ‘D’, ‘K’, ‘R’, ‘S’ or ‘P’).

    Returns: | session type
    Return type: | `str` or `None` (if not initialized)

  `get_share_mode`()

    Get the share mode of a shadow session.

    Returns: | share mode (0: view-only, 1: full access), `None` when used for non-desktop-sharing sessions
    Return type: | `str` or `None` (if not initialized)

  `get_status`()

    Retrieve the session’s status from this session info data structure.

    Returns: | session status
    Return type: | `str` or `None` (if not initalized)

  `initialize`(x2go_output, username='', hostname='', local_container='', remote_container='')

    Setup a a session info data block, includes parsing of X2Go server’s `x2gostartagent` stdout values.

    Parameters:

    - x2go_output (str) – X2Go server’s `x2gostartagent` command output, each value separated by a newline character.
    - username (str) – session user name (Default value = ‘’)
    - hostname (str) – hostname of X2Go server (Default value = ‘’)
    - local_container (str) – X2Go client session directory for config files, cache and session logs (Default value = ‘’)
    - remote_container (str) – X2Go server session directory for config files, cache and session logs (Default value = ‘’)

  `is_desktop_session`()

    Is this session a desktop session?

    Returns: | `True` if this session is a desktop session, `False` otherwise
    Return type: | `bool` or `None` (if not initialized)

  `is_initialized`()

    Check if this session info data structure has been initialized.

  `is_kdrive_session`()

    Is this session a KDrive based desktop session?

    Returns: | `True` if this session is a KDrive based desktop session, `False` otherwise
    Return type: | `bool`

  `is_nx3_session`()

    Is this session an NXv3 based desktop/rootless session?

    Returns: | `True` if this session is a NXv3 based desktop/rootless session, `False` otherwise
    Return type: | `bool`

  `is_protected`()

    Check if this session info data structure is Write-protected.

  `is_published_applications_provider`()

    Detect from session info if this session is a published applications provider.

    Returns: | returns `True` if this session is a published applications provider
    Return type: | `bool` or `None` (if not initialized)

  `is_running`()

    Is this session running?

    Returns: | `True` if the session is running, `False` otherwise
    Return type: | `bool` or `None` (if not initialized)

  `is_suspended`()

    Is this session suspended?

    Returns: | `True` if the session is suspended, `False` otherwise
    Return type: | `bool` or `None` (if not initialized)

  `protect`()

    Write-protect this session info data structure.

  `unprotect`()

    Remove write-protection from this session info data structure.

  `update`(session_info)

    Update all properties of a `x2go.backends.info.plain.X2GoServerSessionInfo` object.

    Parameters: | session_info (`X2GoServerSessionInfo*`) – a provided session info data structure

class `x2go.backends.info.plain.``X2GoServerSessionList`(x2go_output=None, info_backend=<class 'x2go.backends.info.plain.X2GoServerSessionInfo'>)

  Bases: `object`

  `x2go.backends.info.plain.X2GoServerSessionList` is used to store all information that is retrieved from a connected X2Go server on a `X2GoControlSession.list_sessions()` call.

  `get_session_info`(session_name)

    Retrieve the session information for `<session_name>`.

    Parameters: | session_name (`str`) – the queried session name
    Returns: | the session info of `<session_name>`
    Return type: | `X2GoServerSessionInfo*` or `None`

  `get_session_with`(property_name, value, hostname=None)

    Find session with a given display number on a given host.

    Parameters:

    - property_name (`str`) – match a session based on this property name
    - value (`str`) – the resulting session has to match this value for `<property_name>`
    - hostname (`str`) – the result has to match this hostname (Default value = None)

  `get_sessions`()

    Get the complete sessions property.

    Returns: | get this instance’s dictionary of sessions
    Return type: | `dict`

  `set_sessions`(sessions)

    Set the sessions property directly by parsing a complete data structure.

    Parameters: | sessions (`dict`) – set this instance’s list of sessions directly