1
0
mirror of https://github.com/dkmstr/openuds.git synced 2025-10-19 07:33:39 +03:00

Fixing up LSP on REST classes

This commit is contained in:
Adolfo Gómez García
2023-11-03 04:18:53 +01:00
parent 85e20f1152
commit d4ea0ad8c6
30 changed files with 463 additions and 303 deletions

View File

@@ -40,8 +40,7 @@ from uds import models
from uds.core import exceptions, types
import uds.core.types.permissions
from uds.core.util import log
from uds.core.util import permissions
from uds.core.util import log, permissions, ensure
from uds.core.util.model import processUuid
from uds.core.environment import Environment
from uds.core.consts.images import DEFAULT_THUMB_BASE64
@@ -54,7 +53,7 @@ from uds.REST import NotFound, ResponseError, RequestError, AccessDenied
# Not imported at runtime, just for type checking
if typing.TYPE_CHECKING:
from uds.models import Provider
from django.db.models import Model
logger = logging.getLogger(__name__)
@@ -118,7 +117,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
return retVal
def getItems(self, parent: 'Provider', item: typing.Optional[str]):
def getItems(self, parent: 'Model', item: typing.Optional[str]):
parent = ensure.is_instance(parent, models.Provider)
# Check what kind of access do we have to parent provider
perm = permissions.getEffectivePermission(self._user, parent)
try:
@@ -131,7 +131,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
logger.error('Error getting services for %s: %s', parent, e)
raise self.invalidItemException() from e
def getRowStyle(self, parent: 'Provider') -> typing.Dict[str, typing.Any]:
def getRowStyle(self, parent: 'Model') -> typing.Dict[str, typing.Any]:
parent = ensure.is_instance(parent, models.Provider)
return {'field': 'maintenance_mode', 'prefix': 'row-maintenance-'}
def _deleteIncompleteService(
@@ -147,7 +148,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
except Exception: # nosec: This is a delete, we don't care about exceptions
pass
def saveItem(self, parent: 'Provider', item: typing.Optional[str]) -> None:
def saveItem(self, parent: 'Model', item: typing.Optional[str]) -> None:
parent = ensure.is_instance(parent, models.Provider)
# Extract item db fields
# We need this fields for all
logger.debug('Saving service for %s / %s', parent, item)
@@ -210,7 +212,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
logger.exception('Saving Service')
raise RequestError('incorrect invocation to PUT: {0}'.format(e)) from e
def deleteItem(self, parent: 'Provider', item: str) -> None:
def deleteItem(self, parent: 'Model', item: str) -> None:
parent = ensure.is_instance(parent, models.Provider)
try:
service = parent.services.get(uuid=processUuid(item))
if service.deployedServices.count() == 0:
@@ -222,13 +225,14 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
raise RequestError('Item has associated deployed services')
def getTitle(self, parent: 'Provider') -> str:
def getTitle(self, parent: 'Model') -> str:
parent = ensure.is_instance(parent, models.Provider)
try:
return _('Services of {}').format(parent.name)
except Exception:
return _('Current services')
def getFields(self, parent: 'Provider') -> typing.List[typing.Any]:
def getFields(self, parent: 'Model') -> typing.List[typing.Any]:
return [
{'name': {'title': _('Service name'), 'visible': True, 'type': 'iconType'}},
{'comments': {'title': _('Comments')}},
@@ -251,8 +255,9 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
]
def getTypes(
self, parent: 'Provider', forType: typing.Optional[str]
self, parent: 'Model', forType: typing.Optional[str]
) -> typing.Iterable[typing.Dict[str, typing.Any]]:
parent = ensure.is_instance(parent, models.Provider)
logger.debug('getTypes parameters: %s, %s', parent, forType)
offers: typing.List[typing.Dict[str, typing.Any]] = []
if forType is None:
@@ -282,7 +287,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
return offers # Default is that details do not have types
def getGui(self, parent: 'Provider', forType: str) -> typing.Iterable[typing.Any]:
def getGui(self, parent: 'Model', forType: str) -> typing.Iterable[typing.Any]:
parent = ensure.is_instance(parent, models.Provider)
try:
logger.debug('getGui parameters: %s, %s', parent, forType)
parentInstance = parent.getInstance()
@@ -320,7 +326,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
logger.exception('getGui')
raise ResponseError(str(e)) from e
def getLogs(self, parent: 'Provider', item: str) -> typing.List[typing.Any]:
def getLogs(self, parent: 'Model', item: str) -> typing.List[typing.Any]:
parent = ensure.is_instance(parent, models.Provider)
try:
service = parent.services.get(uuid=processUuid(item))
logger.debug('Getting logs for %s', item)
@@ -328,7 +335,8 @@ class Services(DetailHandler): # pylint: disable=too-many-public-methods
except Exception:
raise self.invalidItemException() from None
def servicesPools(self, parent: 'Provider', item: str) -> typing.Any:
def servicesPools(self, parent: 'Model', item: str) -> typing.Any:
parent = ensure.is_instance(parent, models.Provider)
service = parent.services.get(uuid=processUuid(item))
logger.debug('Got parameters for servicepools: %s, %s', parent, item)
res = []