from uaclient import messages from uaclient.api.api import APIEndpoint from uaclient.api.data_types import AdditionalInfo from uaclient.api.errors import APIError from uaclient.config import UAConfig from uaclient.data_types import DataObject, Field, StringDataValue from uaclient.version import get_version class VersionError(APIError): _formatted_msg = messages.E_API_VERSION_ERROR class VersionResult(DataObject, AdditionalInfo): fields = [ Field("installed_version", StringDataValue), ] def __init__(self, *, installed_version: str): self.installed_version = installed_version def version() -> VersionResult: return _version(UAConfig()) def _version(cfg: UAConfig) -> VersionResult: try: version = get_version() except Exception as e: raise VersionError(error_msg=str(e)) return VersionResult(installed_version=version) endpoint = APIEndpoint( version="v1", name="Version", fn=_version, options_cls=None, )