mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-24 17:28:08 +00:00
Add low disk space warning when creating a new project.
This commit is contained in:
parent
135c529d4b
commit
9afe756462
@ -16,9 +16,14 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
|
import psutil
|
||||||
|
import platform
|
||||||
from .project import Project
|
from .project import Project
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
|
import logging
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ProjectManager:
|
class ProjectManager:
|
||||||
|
|
||||||
@ -70,6 +75,26 @@ class ProjectManager:
|
|||||||
raise aiohttp.web.HTTPNotFound(text="Project ID {} doesn't exist".format(project_id))
|
raise aiohttp.web.HTTPNotFound(text="Project ID {} doesn't exist".format(project_id))
|
||||||
return self._projects[project_id]
|
return self._projects[project_id]
|
||||||
|
|
||||||
|
def _check_available_disk_space(self, project):
|
||||||
|
"""
|
||||||
|
Sends a warning notification if disk space is getting low.
|
||||||
|
|
||||||
|
:param project: project instance
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
used_disk_space = psutil.disk_usage(project.path).percent
|
||||||
|
except FileNotFoundError:
|
||||||
|
log.warning('Could not find "{}" when checking for used disk space'.format(project.path))
|
||||||
|
return
|
||||||
|
# send a warning if used disk space is >= 90%
|
||||||
|
if used_disk_space >= 90:
|
||||||
|
message = 'Only {}% or less of disk space detected in "{}" on "{}"'.format(used_disk_space,
|
||||||
|
project.path,
|
||||||
|
platform.node())
|
||||||
|
log.warning(message)
|
||||||
|
project.emit("log.warning", {"message": message})
|
||||||
|
|
||||||
def create_project(self, name=None, project_id=None, path=None):
|
def create_project(self, name=None, project_id=None, path=None):
|
||||||
"""
|
"""
|
||||||
Create a project and keep a references to it in project manager.
|
Create a project and keep a references to it in project manager.
|
||||||
@ -80,6 +105,7 @@ class ProjectManager:
|
|||||||
if project_id is not None and project_id in self._projects:
|
if project_id is not None and project_id in self._projects:
|
||||||
return self._projects[project_id]
|
return self._projects[project_id]
|
||||||
project = Project(name=name, project_id=project_id, path=path)
|
project = Project(name=name, project_id=project_id, path=path)
|
||||||
|
self._check_available_disk_space(project)
|
||||||
self._projects[project.id] = project
|
self._projects[project.id] = project
|
||||||
return project
|
return project
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user