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'))
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'))
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'))
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'))
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'))
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'))
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'))
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'))