Unverified Commit d8e62b44 authored by Peter Stanko's avatar Peter Stanko
Browse files

Celery

parent 96cf8746
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ name = "pypi"
[packages]
flask = "*"
flask-sqlalchemy = "*"
pytest = "*"
marshmallow = "*"
flask-jwt-extended = "*"
marshmallow-enum = "*"
@@ -27,6 +26,7 @@ celery = {extras = ["auth", "yaml", "msgpack", "redis"]}
[dev-packages]
pytest-cov = "*"
pylint = "*"
pytest = "*"

[requires]
python_version = "3.6"
+2 −2
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ from flask.cli import AppGroup, run_command
import portal.logging as logging_config
from management.data import DataManagement
from portal import create_app, db
from portal.async import celery

logging_config.load_config()

@@ -43,7 +42,6 @@ def cli_run_devel(ctx, port):
    ctx.forward(run_command, port)



#
# Data related commands
#
@@ -87,11 +85,13 @@ def cli_users_delete_user(name):
    manager.delete_user(name)
    log.info(f"[CMD] User deleted: {name}")


@users_cli.command('list', help='List all users')
def cli_users_list():
    log.info(f'[CMD] Listing users')
    manager.list_users()


#
# Courses related commands
#
+8 −3
Original line number Diff line number Diff line
@@ -111,12 +111,15 @@ class DataFactory(object):
                                    ip_address=ip_addr, notes=notes, type=component_type)

    def create_course(self, codename, name=None, token=None) -> Course:
        course = self.__create_entity(Course, codename=codename, name=name)
        name = name or codename
        desc = name + "'s description"
        course = self.__create_entity(Course, codename=codename, name=name, description=desc)
        course.notes_access_token = token or f"{codename}_token"
        return course

    def create_group(self, course: Course, name: str) -> Group:
        return self.__create_entity(Group, course=course, name=name)
        desc = name + "'s description"
        return self.__create_entity(Group, course=course, name=name, description=desc)

    def create_role(self, course: Course, name: str,
                    permissions: dict = None, desc: str = None) -> Role:
@@ -129,8 +132,10 @@ class DataFactory(object):
    def create_project(self, course, name, test_files_source=None, config=None) -> Project:
        test_files_source = test_files_source or f"git://{name}.repo"
        config = config or {}
        desc = name + "'s description"
        project = self.__create_entity(Project, course=course, name=name,
                                       test_files_source=test_files_source)
                                       test_files_source=test_files_source,
                                       description=desc)
        project.set_config(**config)
        return project

+38 −0
Original line number Diff line number Diff line
"""empty message

Revision ID: c30ed4861044
Revises: f2cb9f5ed836
Create Date: 2018-06-05 17:59:10.388727

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = 'c30ed4861044'
down_revision = 'f2cb9f5ed836'
branch_labels = None
depends_on = None


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.add_column('course', sa.Column('description', sa.Text(), nullable=True))
    op.add_column('group', sa.Column('description', sa.Text(), nullable=True))
    op.add_column('project', sa.Column('assignment_url', sa.Text(), nullable=True))
    op.add_column('projectConfig', sa.Column('submissions_cancellation_period', sa.Integer(), nullable=True))
    op.add_column('submission', sa.Column('process_task_id', sa.String(length=36), nullable=True))
    op.add_column('submission', sa.Column('storage_task_id', sa.String(length=36), nullable=True))
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.drop_column('submission', 'storage_task_id')
    op.drop_column('submission', 'process_task_id')
    op.drop_column('projectConfig', 'submissions_cancellation_period')
    op.drop_column('project', 'assignment_url')
    op.drop_column('group', 'description')
    op.drop_column('course', 'description')
    # ### end Alembic commands ###
+1 −1
Original line number Diff line number Diff line
@@ -27,6 +27,6 @@ def clone_submission_files(source_id: str, target_id: str):


@celery.task(name='start-processing-submission')
def start_processing_submission(submission_id: str):
def start_processing_submission(submission_id: str, submission_params):
    submission = find_submission(submission_id)
    log.info(f"[ASYNC] Processing submission: {submission}")
Loading