diff --git a/src/middlewared/middlewared/plugins/apps/resources.py b/src/middlewared/middlewared/plugins/apps/resources.py index 728377478391f..4c833d170d3e5 100644 --- a/src/middlewared/middlewared/plugins/apps/resources.py +++ b/src/middlewared/middlewared/plugins/apps/resources.py @@ -5,6 +5,7 @@ from .ix_apps.utils import ContainerState from .resources_utils import get_normalized_gpu_choices +from .utils import IX_APPS_MOUNT_PATH class AppService(Service): @@ -112,6 +113,15 @@ async def ip_choices(self): for ip in await self.middleware.call('interface.ip_in_use', {'static': True, 'any': True}) } + @accepts(roles=['CATALOG_READ']) + @returns(Int()) + async def available_space(self): + """ + Returns space available in bytes in the configured apps pool which apps can consume + """ + await self.middleware.call('docker.state.validate') + return (await self.middleware.call('filesystem.statfs', IX_APPS_MOUNT_PATH))['avail_bytes'] + @accepts(roles=['APPS_READ']) @returns(Dict('gpu_choices', additional_attrs=True)) async def gpu_choices(self):