Exemplo n.º 1
0
def fetch_synchronize_status():
    """
    Returns the synchronization status information for the currently opened
    project
    """
    r = Response()
    project = cd.project.get_internal_project()

    if not project:
        r.fail(
            code='NO_PROJECT',
            message='No open project on which to retrieve status'
        )
    else:
        with open(project.source_path, 'r') as f:
            definition = json.load(f)

        result = status.of_project(project)
        r.update(
            sync_time=sync_status.get('time', 0),
            source_directory=project.source_directory,
            remote_source_directory=project.remote_source_directory,
            status=result,
            definition=definition
        )

    return r.flask_serialize()
Exemplo n.º 2
0
def sync_create_project():
    """ """

    r = Response()
    args = arguments.from_request()

    name = args.get('name')
    remote_source_directory = args.get('source_directory')
    optional_args = args.get('args', {})

    if None in [name, remote_source_directory]:
        return r.fail(
            code='INVALID_ARGS',
            message='Invalid arguments. Unable to create project'
        ).response.flask_serialize()

    container_folder = tempfile.mkdtemp(prefix='cd-remote-project-')
    os.makedirs(os.path.join(container_folder, '__cauldron_shared_libs'))
    os.makedirs(os.path.join(container_folder, '__cauldron_downloads'))

    r.consume(create_command.execute(
        cli.make_command_context('create'),
        project_name=name,
        directory=container_folder,
        forget=True,
        **optional_args
    ))
    if r.failed:
        return r.flask_serialize()

    sync_status.update({}, time=-1, project=None)

    project = cd.project.get_internal_project()
    project.remote_source_directory = remote_source_directory

    with open(project.source_path, 'r') as f:
        definition = json.load(f)

    sync_status.update({}, time=-1, project=project)

    return r.update(
        source_directory=project.source_directory,
        remote_source_directory=remote_source_directory,
        definition=definition,
        project=project.kernel_serialize()
    ).notify(
        kind='SUCCESS',
        code='PROJECT_CREATED',
        message='Project created'
    ).response.flask_serialize()
Exemplo n.º 3
0
def sync_create_project():
    """ """

    r = Response()
    args = arguments.from_request()

    name = args.get('name')
    remote_source_directory = args.get('source_directory')
    optional_args = args.get('args', {})

    if None in [name, remote_source_directory]:
        return r.fail(code='INVALID_ARGS',
                      message='Invalid arguments. Unable to create project'
                      ).response.flask_serialize()

    container_folder = tempfile.mkdtemp(prefix='cd-remote-project-')
    os.makedirs(os.path.join(container_folder, '__cauldron_shared_libs'))
    os.makedirs(os.path.join(container_folder, '__cauldron_downloads'))

    r.consume(
        create_command.execute(cli.make_command_context('create'),
                               project_name=name,
                               directory=container_folder,
                               forget=True,
                               **optional_args))
    if r.failed:
        return r.flask_serialize()

    sync_status.update({}, time=-1, project=None)

    project = cd.project.get_internal_project()
    project.remote_source_directory = remote_source_directory

    with open(project.source_path, 'r') as f:
        definition = json.load(f)

    sync_status.update({}, time=-1, project=project)

    return r.update(source_directory=project.source_directory,
                    remote_source_directory=remote_source_directory,
                    definition=definition,
                    project=project.kernel_serialize()).notify(
                        kind='SUCCESS',
                        code='PROJECT_CREATED',
                        message='Project created').response.flask_serialize()
Exemplo n.º 4
0
def fetch_synchronize_status():
    """
    Returns the synchronization status information for the currently opened
    project
    """
    r = Response()
    project = cd.project.get_internal_project()

    if not project:
        r.fail(code='NO_PROJECT',
               message='No open project on which to retrieve status')
    else:
        with open(project.source_path, 'r') as f:
            definition = json.load(f)

        result = status.of_project(project)
        r.update(sync_time=sync_status.get('time', 0),
                 source_directory=project.source_directory,
                 remote_source_directory=project.remote_source_directory,
                 status=result,
                 definition=definition)

    return r.flask_serialize()