Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)