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