def create_collection(): """Displays form to create collection (GET), and submits it (POST)""" form = CollectionForm() if form.validate_on_submit(): name = form.name.data info = form.info.data image = form.collection_image.data new_collection = Collection(name=name, info=info, user_id=current_user.id, image=image) db.session.add(new_collection) db.session.commit() flash(f"{name} collection created!", "success") return redirect(f"/user/{current_user.id}") else: return render_template("newcollection.html", form=form)
def edit_specimen(collection_id): """Displays form to edit collection info (GET) and submits it (POST)""" collection = Collection.query.filter_by(id=collection_id).first() form = CollectionForm(obj=collection) if current_user.id == collection.user_id: if form.validate_on_submit(): collection.name = form.name.data collection.info = form.info.data db.session.commit() flash(f"{collection.name} edited!", "success") return redirect(f"/collection/{collection.id}") else: return render_template("editcollection.html", form=form, collection=collection) else: return ("", 403)
def collect(): config['user_action'] = "collect" print_config("start collect stage") form = CollectionForm(assessname=config['assess_name'], filename=config['input_csv_file'], outputFolder=config['output_folder'], reportFormat=config['output_report_name'], assessType=config['assess_type'], dblist=config['db_list'], collectTime=config['collect_time'], tenantid=config['tenant_id'], subid=config['sub_id'], clientid=config['client_id']) if request.method == 'POST' and "azure_cost" in request.form: print("azure_cost sqldb: ", request.form['sqldb']) print("azure_cost sqlmi: ", request.form['sqlmi']) show_cost(request.form['sqldb'], request.form['sqlmi']) else: print("azure_cost is empty") if (config['db_list']): templist = config['db_list'].split(",") dblist = "'" for db in templist: dblist += ' "' + db.strip() + '"' dblist += "'" else: dblist = "" print("dblist: ", dblist) if form.validate_on_submit(): print("collect forms validated!!") if (config['assess_type'] == 'workload'): params = f"-AssessName {config['assess_name']} -InputFile {config['input_csv_file']} \ -OutputFolder {config['output_folder']} \ -AssessType {config['assess_type']} -WorkloadTime {config['collect_time']}" elif (config['assess_type'] == 'sku'): config['count_csv_file'] = config['input_csv_file'] #config['output_report_name'] = f"prices-{config['assess_name']}.html" if (dblist): params = f"-AssessName {config['assess_name']} -CountFile {config['count_csv_file']} \ -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} \ -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']} \ -DatabaseNames {dblist}" else: params = f"-AssessName {config['assess_name']} -CountFile {config['count_csv_file']} \ -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} \ -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']}" else: # workloadsku params = f"-AssessName {config['assess_name']} -InputFile {config['input_csv_file']} \ -OutputFolder {config['output_folder']} -AssessType {config['assess_type']} -WorkloadTime {config['collect_time']} \ -TenantId {config['tenant_id']} -SubscriptionId {config['sub_id']} -ClientId {config['client_id']}" error = '' result = str(execute_script("catas.ps1", params)) if result[0:5] == "Error": errorMessage = result if len(result) <= 200 else result[0:200] flash(errorMessage, 'danger') #raise CollectError('SQL server host connection Assess failed, please check host name and credentials.') if config['assess_type'] != 'workload': #flash(f"PowerShell script good {result}", 'success') #result = "prices-localhost.html prices-52.228.17.215.html prices-RHDBDV16.html prices-40.85.219.90.html" print("inside collect() result: ", result) error, linklist = get_html(config['assess_type']) if error: flash(error, 'danger') else: flash(f'Collection successful!', 'success') config['link_list'] = linklist form = CollectionForm(assessname=config['assess_name'], filename=config['input_csv_file'], outputFolder=config['output_folder'], reportFormat=config['output_report_name'], assessType=config['assess_type'], dblist=config['db_list'], collectTime=config['collect_time'], tenantid=config['tenant_id'], subid=config['sub_id'], clientid=config['client_id']) if error: return render_template('collect.html', title='Collect', form=form) else: return render_template( 'collect.html', title='Collect', form=form, sidebar=True, sidebar_title='Azure Recommendation', #sidebar_title='Manage', sidebar_statement= 'Click following recommendations and submit for details.') #return render_template('collect.html', title='Collect', form=form) print("collect no validation") return render_template('collect.html', title='Collect', form=form)