예제 #1
0
def create_project():
    data = {
        'projectName': request.json['projectName'],
        'type': request.json['type'],
        'gitAddress': request.json['gitAddress']
    }
    type_id = BionicDBProjectsType().get_project_type_id(data['type'])
    project_id = BionicProjects().create_project(project_name=data['projectName']
                                                 , project_type=type_id, git_address=data['gitAddress'])
    path = 'projects/{}'.format(project_id)
    BionicProjects().update_project_path(project_id, path)
    project_path = path + '/project'
    reports_path = path + '/reports'
    if not os.path.exists(project_path) and not os.path.exists(reports_path):
        try:
            os.makedirs(project_path)
            os.makedirs(reports_path)
        except IOError:
            BionicProjects().update_project_deleted(project_id, 1)
            return jsonify(bionic_resp_module.set_resp(False, {'projectName': None}, 'failed to create project'))
        return jsonify(bionic_resp_module.set_resp(True, {'projectId': project_id
            , 'projectName': data['projectName'], 'type': data['type'], 'gitAddress': data['gitAddress']}, 'success'))
    else:
        BionicProjects().update_project_deleted(project_id, 1)
        return jsonify(bionic_resp_module.set_resp(False, {'projectName': None}, 'already found one'))
예제 #2
0
def clear_project():
    data = {
        'projectId': request.json['projectId']
    }
    if os.path.exists('projects/{}/project'.format(data['projectId'])):
        shutil.rmtree('projects/{}/project'.format(data['projectId']))
    else:
        return jsonify(bionic_resp_module.set_resp(False, None, "repo doesn't exist"))
    return jsonify(bionic_resp_module.set_resp(True, None, 'cleared successfully'))
예제 #3
0
def delete_project():
    data = {
        'projectId': request.json['projectId']
    }
    if os.path.exists('projects/{}'.format(data['projectId'])):
        shutil.rmtree('projects/{}'.format(data['projectId']))
        BionicProjects().update_project_deleted(data['projectId'], 1)
    else:
        return jsonify(bionic_resp_module.set_resp(False, None, "project doesn't exist"))
    return jsonify(bionic_resp_module.set_resp(True, None, 'deleted successfully'))
예제 #4
0
def git_clone():
    data = {
        'projectId': request.json['projectId']
    }
    git_address = BionicProjects().get_project_git_address(data['projectId'])
    try:
        Repo.clone_from(git_address, 'projects/{}/project'.format(data['projectId']))
        return jsonify(bionic_resp_module.set_resp(True, None, 'success'))
    except IOError:
        return jsonify(bionic_resp_module.set_resp(False, None, 'failed to clone to local repo'))
예제 #5
0
def get_cases():
    data = {
        'projectId': request.json['projectId']
    }
    path = BionicProjects().get_full_path(data['projectId'])
    try:
        suite = TestData(source=path + '/project/.')
    except DataError:
        return jsonify(bionic_resp_module.set_resp(False, None, 'Data source does not exist.'))
    case_list = _parse_robot_suite(suite)
    if len(case_list) > 0:
        return jsonify(bionic_resp_module.set_resp(True, case_list, 'success'))
    else:
        return jsonify(bionic_resp_module.set_resp(True, None, 'success'))
예제 #6
0
def run_cases():
    data = {
        'projectId': request.json['projectId'],
        'processes': request.json['processes'],
        'cases': request.json['cases']
    }
    gevent.spawn(_run_cases, data['projectId'], data['processes'], data['cases'])
    return jsonify(bionic_resp_module.set_resp(True, None, 'success'))
예제 #7
0
def list_project():
    data = {
        'page': request.json['page']
    }
    project_list = []
    result = BionicProjects().list_projects(data['page'])
    for x in range(len(result)):
        project = {
            'id': result[x].id,
            'projectType': result[x].project_type,
            'projectName': result[x].project_name,
            'fullPath': result[x].full_path,
            'gitAddress': result[x].git_address
        }
        project_list.append(project)
    return jsonify(bionic_resp_module.set_resp(True, {'projects': project_list}, 'success'))
예제 #8
0
def get_project_count():
    page_count = BionicProjects().get_page_count()
    if page_count > 0:
        return jsonify(bionic_resp_module.set_resp(True, {'pageCount': page_count}, 'success'))
    else:
        return jsonify(bionic_resp_module.set_resp(True, {'pageCount': 0}, 'success'))