Exemple #1
0
    def post(self, request, modelname, version, oformat):
        """
        Updates model documentation
        """
        documentation = request.POST.get('documentation')

        # print(type(documentation))
        if oformat == 'JSON':
            flame_status = manage.action_documentation(modelname,
                                                       version,
                                                       documentation,
                                                       oformat='JSONS')
            if flame_status[0]:
                return Response(flame_status[1], status=status.HTTP_200_OK)
            else:
                return JsonResponse({'error': flame_status[1]},
                                    status=status.HTTP_404_NOT_FOUND)
        elif oformat == 'YAML':
            flame_status = manage.action_documentation(modelname,
                                                       version,
                                                       documentation,
                                                       oformat='YAMLS')
            if flame_status[0]:
                return Response(flame_status[1], status=status.HTTP_200_OK)
            else:
                return JsonResponse({'error': flame_status[1]},
                                    status=status.HTTP_404_NOT_FOUND)
        else:
            return JsonResponse({'error': 'unknown format'},
                                status=status.HTTP_404_NOT_FOUND)
Exemple #2
0
 def get(self, request, modelname, version, oformat):
     """
     Retrieves model documentation
     """
     if oformat == 'JSON':
         flame_status = manage.action_documentation(modelname,
                                                    version,
                                                    oformat='JSON')
         if flame_status[0]:
             return Response(json.loads(flame_status[1].dumpJSON()),
                             status=status.HTTP_200_OK)
         else:
             return JsonResponse({'error': flame_status[1]},
                                 status=status.HTTP_404_NOT_FOUND)
     elif oformat == 'YAML':
         flame_status = manage.action_documentation(modelname,
                                                    version,
                                                    oformat='JSON')
         if flame_status[0]:
             return Response(flame_status[1].dumpYAML(),
                             status=status.HTTP_200_OK)
         else:
             return JsonResponse({'error': flame_status[1]},
                                 status=status.HTTP_404_NOT_FOUND)
     else:
         return JsonResponse({'error': 'unknown format'},
                             status=status.HTTP_404_NOT_FOUND)
Exemple #3
0
 def post(self, request, modelname, version):
     """
     Updates model documentation
     """
     documentation = request.POST.get('documentation')
     flame_status = manage.action_documentation(modelname,
                                                version,
                                                documentation,
                                                oformat='JSONS')
     if flame_status[0]:
         return Response(flame_status[0], status=status.HTTP_200_OK)
     else:
         return JsonResponse({'error': flame_status[1]},
                             status=status.HTTP_404_NOT_FOUND)
Exemple #4
0
def manage_cmd(args):
    '''
    Calls diverse model or space maintenance commands
    '''

    version = utils.intver(args.version)

    if args.space is not None or 'searches' in args.action :
    
        import flame.smanage as smanage
    
        if args.action == 'new':
            success, results = smanage.action_new(args.space)
        elif args.action == 'kill':
            success, results = smanage.action_kill(args.space)
        elif args.action == 'remove':
            success, results = smanage.action_remove(args.space, version)
        elif args.action == 'publish':
            success, results = smanage.action_publish(args.space)
        elif args.action == 'list':
            success, results = smanage.action_list(args.space)
        elif args.action == 'parameters':
            success, results = smanage.action_parameters(args.space, version)
        elif args.action == 'info':
            success, results = smanage.action_info(args.space, version)
        elif args.action == 'dir':
            success, results = smanage.action_dir()
        elif args.action == 'searches_result':
            success, results = smanage.action_searches_result(args.label)
        else: 
            success = False
            results = "Specified manage action is not defined"
    else: 

        import flame.manage as manage

        if args.action == 'new':
            success, results = manage.action_new(args.endpoint)
        elif args.action == 'kill':
            success, results = manage.action_kill(args.endpoint)
        elif args.action == 'remove':
            success, results = manage.action_remove(args.endpoint, version)
        elif args.action == 'publish':
            success, results = manage.action_publish(args.endpoint)
        elif args.action == 'list':
            success, results = manage.action_list(args.endpoint)
        elif args.action == 'export':
            success, results = manage.action_export(args.endpoint)
        elif args.action == 'info':
            success, results = manage.action_info(args.endpoint, version)
        elif args.action == 'refresh':
            if args.version == None:
                version = None
            success, results = manage.action_refresh(args.endpoint, version)
        elif args.action == 'series':
            success, results = manage.action_series(args.endpoint, version)         
        elif args.action == 'results':
            success, results = manage.action_results(args.endpoint, version)
        elif args.action == 'parameters':
            success, results = manage.action_parameters(args.endpoint, version)
        elif args.action == 'documentation':
            success, results = manage.action_documentation(args.endpoint,
            version, args.documentation_file)
        elif args.action == 'model_template':
            success, results = manage.action_model_template(args.endpoint, 
            version,  args.documentation_file)
        elif args.action == 'prediction_template':
            success, results = manage.action_prediction_template(args.endpoint, version)
        elif args.action == 'import':
            success, results = manage.action_import(args.infile)
        elif args.action == 'dir':
            success, results = manage.action_dir()
        elif args.action == 'report':
            success, results = manage.action_report()
        elif args.action == 'list':
            success, results = manage.action_list(args.endpoint)
        elif args.action == 'predictions':
            success, results = manage.action_predictions_list()
        elif args.action == 'predictions_result':
            success, results = manage.action_predictions_result(args.label)
        elif args.action == 'predictions_remove':
            success, results = manage.action_predictions_remove(args.label)
        elif args.action == 'label':
            success, results = manage.action_label(args.endpoint, version, args.label)
        else: 
            success = False
            results = "Specified manage action is not defined"

    return success, results
Exemple #5
0
    def get(self, request, modelname, version, oformat):
        """
        Retrieves model documentation
        """
        if oformat == 'WORD':
            current_path = os.getcwd()

            # create a temp directory to copy the word file with the documentation
            # and make it the current directory
            temp_dir = tempfile.mkdtemp(prefix="documentation_", dir=None)
            os.chdir(temp_dir)

            success, results = manage.action_documentation(modelname,
                                                           version,
                                                           oformat='WORD')
            if success:
                file = open(results, 'rb')
                response = HttpResponse(
                    FileWrapper(file),
                    status=status.HTTP_200_OK,
                    content_type=
                    'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
                )
                response[
                    'Content-Disposition'] = f'attachment; filename={results}'

                # return to original directory and remove the temp dir
                os.chdir(current_path)
                shutil.rmtree(temp_dir)
                return response
            else:
                # retur not original directory
                os.chdir(current_path)
                return JsonResponse({'error': results},
                                    status=status.HTTP_404_NOT_FOUND)

        if oformat == 'EXCEL':
            current_path = os.getcwd()

            # create a temp directory to copy the excel file with the documentation
            # and make it the current directory
            temp_dir = tempfile.mkdtemp(prefix="documentation_", dir=None)
            os.chdir(temp_dir)

            success, results = manage.action_documentation(modelname,
                                                           version,
                                                           oformat='EXCEL')

            if success:
                file = open(results, 'rb')
                response = HttpResponse(
                    FileWrapper(file),
                    status=status.HTTP_200_OK,
                    # content_type='application/vnd.ms-excel')
                    content_type=
                    'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
                )

                response[
                    'Content-Disposition'] = f'attachment; filename={results}'

                # return to original directory and remove the temp dir
                os.chdir(current_path)
                shutil.rmtree(temp_dir)
                return response
            else:
                # retur not original directory
                os.chdir(current_path)
                return JsonResponse({'error': results},
                                    status=status.HTTP_404_NOT_FOUND)

        # for JSON or YAML
        success, results = manage.action_documentation(modelname,
                                                       version,
                                                       oformat='JSON')

        if not success:
            return JsonResponse({'error': results},
                                status=status.HTTP_404_NOT_FOUND)

        if oformat == 'JSON':
            return Response(json.loads(results.dumpJSON()),
                            status=status.HTTP_200_OK)
        elif oformat == 'YAML':
            yamllist = results.dumpYAML()
            yamltext = ''
            for iyaml in yamllist:
                yamltext += iyaml + '\n'
            return Response(yamltext, status=status.HTTP_200_OK)
        else:
            return JsonResponse({'error': 'unknown format'},
                                status=status.HTTP_404_NOT_FOUND)