def saveas(savetype):
    logger.info('Save Type : {0:s} - {1:s}'.format(str(savetype),
                                                   str(request.method)))
    logger.debug('JSON     : {0:s}'.format(str(request.json)))
    if request.method == 'POST':
        try:
            if savetype == 'template':
                filename = '{0!s:s}.json'.format(request.json['title'].replace(
                    ' ', '_').lower())
                template_type = request.json['template_type']
                if len(template_type.strip()) == 0:
                    fullpath = os.path.abspath(
                        os.path.join(bp.static_folder, 'templates',
                                     'uncategorised', filename))
                else:
                    typedir = os.path.abspath(
                        os.path.join(
                            bp.static_folder, 'templates',
                            template_type.strip().replace(' ', '_').lower()))
                    if not os.path.exists(typedir):
                        os.makedirs(typedir)
                    fullpath = os.path.abspath(os.path.join(typedir, filename))
                logger.info('Template File Name : {0!s:s}'.format(filename))
                logger.info('>>>>>> Path to file {0!s:s}'.format(fullpath))
                writeJsonFile(request.json, fullpath)
                return filename
        except Exception as e:
            logger.exception(e)
            return str(e), 500
def processWorkflow(args):
    logger.info(args)
    if args["input"] != None:
        cd3_parser = OkitCd3ExcelParser()
        result = cd3_parser.parse(args["input"])
        writeJsonFile(result["okit_json"], args["output"])
    return
Exemple #3
0
def dropdownData(profile):
    dropdown_dir = os.path.abspath(
        os.path.join(bp.static_folder, 'json', 'dropdown'))
    shipped_dropdown_file = os.path.abspath(
        os.path.join(dropdown_dir, 'dropdown.json'))
    # shipped_dropdown_file = os.path.abspath(os.path.join(bp.static_folder, 'json', 'dropdown', 'dropdown.json'))
    profile_dropdown_dir = os.path.abspath(
        os.path.join(dropdown_dir, 'profiles'))
    profile_dropdown_file = os.path.abspath(
        os.path.join(profile_dropdown_dir, f'{profile}.json'))
    # Check if profile specific dropdown file exists if not use the default
    if request.method == 'GET':
        if os.path.exists(profile_dropdown_file):
            dropdown_file = profile_dropdown_file
            logger.info(f'Loading Dropdown file {dropdown_file}')
            dropdown_json = readJsonFile(dropdown_file)
        else:
            dropdown_file = shipped_dropdown_file
            logger.info(f'Loading Dropdown file {dropdown_file}')
            dropdown_json = readJsonFile(dropdown_file)
            dropdown_json["shipped"] = True
            dropdown_json["default"] = True
        return dropdown_json
    elif request.method == 'POST':
        logger.info(f'Saving Dropdown file {profile_dropdown_file}')
        writeJsonFile(request.json, profile_dropdown_file)
        return request.json
    else:
        return 'Unknown Method', 500
Exemple #4
0
def template_save():
    if request.method == 'POST':
        instance_path = current_app.instance_path
        root_dir = request.json["root_dir"].strip('/')
        template_filename = request.json["template_file"].strip('/')
        okit_json = request.json["okit_json"]
        git = request.json.get('git', False)
        git_commit_msg = request.json.get('git_commit_msg', '')
        logger.info(f'Save Template : {root_dir}')

        template_dir = os.path.dirname(template_filename)
        full_dir = os.path.join(instance_path, root_dir, template_dir)
        full_filename = os.path.join(full_dir,
                                     os.path.basename(template_filename))
        full_filename = os.path.join(instance_path, root_dir,
                                     template_filename)
        if not os.path.exists(full_dir):
            os.makedirs(full_dir, exist_ok=True)
        writeJsonFile(okit_json, full_filename)
        if git:
            top_dir = os.path.normpath(
                os.path.dirname(template_filename)).split(os.sep)
            git_repo_dir = os.path.join(instance_path, root_dir, top_dir[0],
                                        top_dir[1])
            # while top_dir != '':
            #     git_repo_dir = os.path.join(instance_path, root_dir, top_dir)
            #     logger.info(f'Top Dir : {top_dir}')
            #     top_dir = os.path.dirname(top_dir)
            logger.info(f'Git Root Dir : {git_repo_dir}')
            repo = Repo(git_repo_dir)
            repo.index.add(full_filename)
            repo.index.commit("commit changes from okit:" + git_commit_msg)
            repo.remotes.origin.pull()
            repo.remotes.origin.push()
        return template_filename
def dropdownData():
    dropdown_file = os.path.abspath(os.path.join(bp.static_folder, 'json', 'dropdown.json'))
    if request.method == 'GET':
        dropdown_json = readJsonFile(dropdown_file)
        return dropdown_json
    elif request.method == 'POST':
        writeJsonFile(request.json, dropdown_file)
        return request.json
    else:
        return 'Unknown Method', 500
Exemple #6
0
def saveas(savetype):
    logger.info('Save Type : {0:s} - {1:s}'.format(str(savetype), str(request.method)))
    logger.debug('JSON     : {0:s}'.format(str(request.json)))
    if request.method == 'POST':
        try:
            filename = '{0!s:s}.json'.format(request.json['title'].replace(' ', '_').lower())
            if savetype == 'template':
                template_type = request.json['template_type']
                if len(template_type.strip()) == 0:
                    fullpath = os.path.abspath(os.path.join(bp.static_folder, 'templates', 'uncategorised', filename))
                else:
                    typedir = os.path.abspath(os.path.join(bp.static_folder, 'templates', template_type.strip().replace(' ', '_').lower()))
                    if not os.path.exists(typedir):
                        os.makedirs(typedir, exist_ok=True)
                    fullpath = os.path.abspath(os.path.join(typedir, filename))
                logger.info('Template File Name : {0!s:s}'.format(filename))
                logger.info('>>>>>> Path to file {0!s:s}'.format(fullpath))
                writeJsonFile(request.json, fullpath)
                return filename
            elif savetype == 'git':
                git_url, git_branch = request.json['git_repository'].split('*')
                git_commit_msg = request.json['git_repository_commitmsg']
                if request.json['git_repository_filename'] != '':
                    filename = request.json['git_repository_filename'].replace(' ', '_').lower()
                    if not filename.endswith('.json'):
                        filename = '{0!s:s}.json'.format(filename)
                if request.json['git_repository_directory'] != '':
                    filename = os.path.join(request.json['git_repository_directory'], filename)
                parsed_git_url = giturlparse.parse(git_url)
                template_git_dir = os.path.abspath(os.path.join(bp.static_folder, 'templates', 'git'))
                if not os.path.exists(template_git_dir):
                    os.makedirs(template_git_dir, exist_ok=True)
                git_repo_dir = os.path.abspath(os.path.join(template_git_dir, parsed_git_url.name))
                if os.path.exists(git_repo_dir):
                    repo = Repo(git_repo_dir)
                    repo.remotes.origin.pull()
                else:
                    repo = Repo.clone_from(git_url, git_repo_dir, branch=git_branch, no_single_branch=True)
                    repo.remotes.origin.pull()
                fullpath = os.path.abspath(os.path.join(git_repo_dir, filename))
                # Remove git info
                del request.json['git_repository']
                del request.json['git_repository_directory']
                del request.json['git_repository_filename']
                del request.json['git_repository_commitmsg']
                writeJsonFile(request.json, fullpath)
                repo.index.add(fullpath)
                repo.index.commit("commit changes from okit:" + git_commit_msg)
                repo.remotes.origin.push(git_branch)
                return filename
        except Exception as e:
            logger.exception(e)
            return str(e), 500