Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rest: retreive workspace disk usage from db models #334

Merged
merged 1 commit into from
Sep 24, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Authors
The list of contributors in alphabetical order:

- `Adelina Lintuluoto <https://orcid.org/0000-0002-0726-1452>`_
- `Audrius Mecionis <https://orcid.org/0000-0002-3759-1663>`_
- `Anton Khodak <https://orcid.org/0000-0003-3263-4553>`_
- `Diego Rodriguez <https://orcid.org/0000-0003-0649-2002>`_
- `Dinos Kousidis <https://orcid.org/0000-0002-4914-4289>`_
Expand Down
22 changes: 7 additions & 15 deletions reana_workflow_controller/rest/workflows.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,13 @@
import json
from uuid import uuid4

import fs
from flask import Blueprint, jsonify, request
from reana_commons.utils import get_workspace_disk_usage
from reana_db.database import Session
from reana_db.models import User, Workflow
from reana_db.utils import _get_workflow_with_uuid_or_name

from reana_workflow_controller.config import (
DEFAULT_NAME_FOR_WORKFLOWS,
SHARED_VOLUME_PATH,
WORKFLOW_TIME_FORMAT,
)
from reana_workflow_controller.errors import (
Expand Down Expand Up @@ -207,18 +204,13 @@ def get_workflows(paginate=None): # noqa
workflow_response["session_type"] = workflow.interactive_session_type
workflow_response["session_uri"] = workflow.interactive_session
if verbose:
reana_fs = fs.open_fs(SHARED_VOLUME_PATH)
if reana_fs.exists(workflow.workspace_path):
absolute_workspace_path = reana_fs.getospath(
workflow.workspace_path
)
disk_usage_info = get_workspace_disk_usage(
absolute_workspace_path, block_size=block_size
)
if disk_usage_info:
workflow_response["size"] = disk_usage_info[-1]["size"]
else:
workflow_response["size"] = "0K"
disk_usage_info = workflow.get_workspace_disk_usage(
audrium marked this conversation as resolved.
Show resolved Hide resolved
summarize=True, block_size=block_size
)
if disk_usage_info:
workflow_response["size"] = disk_usage_info[0]["size"]
else:
workflow_response["size"] = "0K"
workflows.append(workflow_response)
pagination_dict["items"] = workflows
return jsonify(pagination_dict), 200
Expand Down
4 changes: 2 additions & 2 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ python-dateutil==2.8.1 # via alembic, bravado, bravado-core, kubernetes
python-editor==1.0.4 # via alembic
pytz==2020.1 # via bravado-core, fs
pyyaml==5.3.1 # via bravado, bravado-core, kubernetes, reana-commons, swagger-spec-validator
reana-commons[kubernetes]==0.7.0a4 # via reana-db, reana-workflow-controller (setup.py)
reana-db==0.7.0a6 # via reana-workflow-controller (setup.py)
reana-commons[kubernetes]==0.8.0a1 # via reana-db, reana-workflow-controller (setup.py)
reana-db==0.8.0a1 # via reana-workflow-controller (setup.py)
requests-oauthlib==1.3.0 # via kubernetes
requests==2.20.0 # via bravado, kubernetes, reana-workflow-controller (setup.py), requests-oauthlib
rfc3987==1.3.8 # via jsonschema
Expand Down
5 changes: 2 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,12 @@
install_requires = [
"Flask>=0.12",
"werkzeug>=0.16.1,<0.17",
"fs>=2.0",
"gitpython>=2.1",
"jsonpickle>=0.9.6",
"marshmallow>2.13.0,<=2.20.1",
"packaging>=18.0",
"reana-commons[kubernetes]>=0.7.0a4,<0.8.0",
"reana-db>=0.7.0a6,<0.8.0",
"reana-commons[kubernetes]>=0.8.0a1,<0.9.0",
"reana-db>=0.8.0a1,<0.9.0",
"requests==2.20.0",
"sqlalchemy-utils>=0.31.0",
"uwsgi-tools>=1.1.1",
Expand Down