Пример #1
0
def service_point_watcher_service_point_watcher_page_form():
    form = GenericFormTemplate()
    sp_watcher = SPWatcher.get_instance()
    text=util.get_text(module_path(), config.language)

    if form.validate_on_submit():
        print(form.submit.data)
        sp_watcher.set_value('edge_url', form.edge_url.data)
        sp_watcher.set_value('edge_client_id', form.edge_client_id.data)
        sp_watcher.set_value('edge_secret', form.edge_secret.data)
        sp_watcher.set_value('execution_interval', int(form.execution_interval.data))
        sp_watcher.set_value('timeout', int(form.timeout.data))

        sp_watcher.save()
        g.user.logger.info('SAVED')
        flash(text['saved_message'], 'succeed')
        sp_watcher.register_job()
        return redirect(url_for('service_point_watcherservice_point_watcher_service_point_watcher_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'service_point_watcher_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
Пример #2
0
def mist_importer_mist_importer_page_form():
    form = GenericFormTemplate()
    text = util.get_text(module_path(), config.language)
    if form.validate_on_submit():
        mist_importer = MistImporter.get_instance()
        mist_importer.set_value('org_id', form.org_id.data)
        mist_importer.set_value('api_token', form.api_token.data)
        mist_importer.set_value('site_name', form.site_name.data)
        mist_importer.set_value('include_matches', form.include_matches.data)
        mist_importer.set_value('include_ipam_only',
                                form.include_ipam_only.data)
        mist_importer.save()

        configuration = get_configuration()
        mist_importer.import_clients(configuration)
        mist_importer.collect_clients(configuration)

        # Put form processing code here
        g.user.logger.info('SUCCESS')
        flash(text['imported_message'], 'succeed')
        return redirect(
            url_for('mist_importermist_importer_mist_importer_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'mist_importer_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def sonar_importer_sonar_importer_page_form():
    form = GenericFormTemplate()
    text = util.get_text(module_path(), config.language)
    if form.validate_on_submit():
        sonar_importer = SonarImporter.get_instance()
        sonar_importer.set_value('kompira_url', form.kompira_url.data)
        sonar_importer.set_value('api_token', form.api_token.data)
        sonar_importer.set_value('network_name', form.network_name.data)
        sonar_importer.set_value('include_matches', form.include_matches.data)
        sonar_importer.set_value('include_ipam_only',
                                 form.include_ipam_only.data)
        sonar_importer.save()

        configuration = get_configuration()
        sonar_importer.import_nodes(configuration)
        sonar_importer.collect_nodes(configuration)

        # Put form processing code here
        g.user.logger.info('SUCCESS')
        flash(text['imported_message'], 'succeed')
        return redirect(
            url_for('sonar_importersonar_importer_sonar_importer_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'sonar_importer_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def tanium_importer_tanium_importer_page_form():
    form = GenericFormTemplate()
    text=util.get_text(module_path(), config.language)
    if form.validate_on_submit():
        tanium_importer = TaniumImporter.get_instance()
        tanium_importer.set_value('server_addr', form.server_addr.data)
        tanium_importer.set_value('user_id', form.user_id.data)
        if form.password.data != '':
            tanium_importer.set_value('password', form.password.data)
        tanium_importer.set_value('target_networks', form.target_networks.data)
        value = form.retry_count.data if form.retry_count.data is not None else 0
        tanium_importer.set_value('retry_count', value)
        value = form.interval.data if form.interval.data is not None else 0
        tanium_importer.set_value('interval', value)
        tanium_importer.set_value('include_discovery', form.include_discovery.data)
        tanium_importer.set_value('include_matches', form.include_matches.data)
        tanium_importer.set_value('include_ipam_only', form.include_ipam_only.data)
        tanium_importer.save()
        
        configuration = get_configuration()
        tanium_importer.import_clients(configuration)
        tanium_importer.collect_clients(configuration)
        
        # Put form processing code here
        g.user.logger.info('SUCCESS')
        flash(text['imported_message'], 'succeed')
        return redirect(url_for('tanium_importertanium_importer_tanium_importer_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'tanium_importer_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def update_alias_record_update_alias_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations()
    if form.validate_on_submit():
        try:
            # Retrieve form attributes and declare variables
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form["view"])

            # Retrieve alias record
            alias_record = view.get_alias_record(request.form["alias_record"] +
                                                 "." + request.form["zone"])

            # Update the alias record's name and linkedRecordName
            alias_record.set_name(form.alias_name.data)
            alias_record.set_property(
                "linkedRecordName",
                request.form["linked_record"] + "." +
                request.form["linked_record_zone"],
            )
            alias_record.update()

            # Put form processing code here
            g.user.logger.info(
                "Success - Alias Record Modified - Object ID: " +
                str(alias_record.get_id()))
            flash(
                "Success - Alias Record Modified - Object ID: " +
                str(alias_record.get_id()),
                "succeed",
            )
            return redirect(
                url_for(
                    "update_alias_recordupdate_alias_record_update_alias_record_page"
                ))
        except Exception as e:
            flash(str(e))
            # Log error and render workflow page
            g.user.logger.warning(f"EXCEPTION THROWN: {e}")
            return render_template(
                "update_alias_record_page.html",
                form=form,
                text=util.get_text(module_path(), config.language),
                options=g.user.get_options(),
            )
    else:
        g.user.logger.info("Form data was not valid.")
        return render_template(
            "update_alias_record_page.html",
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
Пример #6
0
def query_logger_query_logger_page_form():
    form = GenericFormTemplate()
    if form.validate_on_submit():
        text=util.get_text(module_path(), config.language)
        query_logger = QueryLogger.get_instance(debug=True)

        query_logger.set_value('edge', 'url', form.edge_url.data)
        query_logger.set_value('edge', 'token', form.edge_token.data)
        query_logger.set_value('datalog', 'server', form.syslog_server.data)
        query_logger.set_value('poll', 'interval', int(form.poll_interval.data))

        query_logger.save()
        query_logger.register_job()

        # Put form processing code here
        g.user.logger.info('SAVED')
        flash(text['saved_message'], 'succeed')

        return redirect(url_for('query_loggerquery_logger_query_logger_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'query_logger_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
Пример #7
0
def cmdb_configuration_cmdb_configuration_page_form():
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration

    if form.validate_on_submit():
        # Check Gateway Secret file and path
        secret_ok = os.path.isfile(os.path.join("bluecat_portal", (form.servicenow_secret_file.data)))

        if not secret_ok:
            g.user.logger.info('Form data was not valid.')
            app.logger.exception(
                "The secret file or path: {} doesn\'t exist on the server".format(os.path.join("bluecat_portal", (form.servicenow_secret_file.data))))
            flash('The secret file or path ' + os.path.join("bluecat_portal", (form.servicenow_secret_file.data)) + ' doesn\'t exist on the server')
            return render_template(
                'configure_service_requests_page.html',
                form=form,
                text=util.get_text(module_path(), config.language),
                options=g.user.get_options(),
            )

        with open(os.path.join('bluecat_portal', 'workflows', 'ServiceNow CMDB', 'cmdb_configuration', 'cmdb_config.py'), 'r') as config_file:
            content = config_file.read()

        config_data = dict(request.form.items())
        data_to_log = dict((key, value) for key, value in config_data.items())
        g.user.logger.info('The following changes are about to be written to mail and db config file: %s' % data_to_log)

        user_config = importlib.import_module('bluecat_portal.workflows.ServiceNow CMDB.cmdb_configuration.cmdb_config')

        for key, value in config_data.items():
            if not hasattr(cmdb_config, key):
                continue
            setattr(cmdb_config, key, value)
            if type(value).__name__ == 'str':
                value_string = '{}'.format([value])
                replace_string = '{} = {}'.format(key, value_string[1:-1])
            else:
                replace_string = "%s = %s" % (key, value)

            if hasattr(user_config, key):
                content = re.sub("^%s = .+$" % key, replace_string, content, flags=re.MULTILINE)
            else:
                content = content + replace_string + '\n'

        with open(os.path.join('bluecat_portal', 'workflows', 'ServiceNow CMDB', 'cmdb_configuration', 'cmdb_config.py'), 'w') as config_file:
            config_file.write(content)

        g.user.logger.info('SUCCESS')
        flash('success', 'succeed')

        return redirect(url_for('cmdb_configurationcmdb_configuration_cmdb_configuration_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'cmdb_configuration_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def update_text_record_update_text_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            text_record = g.user.get_api().get_entity_by_id(
                request.form["txt_list"])

            # Set text record attributes
            text_record.set_name(form.name.data)
            text_record.set_property("txt", form.text.data)
            text_record.update()

            # Put form processing code here
            g.user.logger.info("Success - Text Record Modified - Object ID: " +
                               str(text_record.get_id()))
            flash(
                "Success - Text Record Modified - Object ID: " +
                str(text_record.get_id()),
                "succeed",
            )
            return redirect(
                url_for(
                    "update_text_recordupdate_text_record_update_text_record_page"
                ))

        except Exception as e:
            flash(str(e))
            # Log error and render workflow page
            g.user.logger.warning(f"EXCEPTION THROWN: {e}")
            form.txt_filter.data = ""
            form.name.data = ""
            form.text.data = ""
            return render_template(
                "update_text_record_page.html",
                form=form,
                text=util.get_text(module_path(), config.language),
                options=g.user.get_options(),
            )

    else:
        g.user.logger.info("Form data was not valid.")
        form.txt_filter.data = ""
        form.name.data = ""
        form.text.data = ""
        return render_template(
            "update_text_record_page.html",
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def add_dhcp_ip4_address_add_dhcp_ip4_address_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form.get('view', ''))
            hostinfo = "%s.%s,%s,true,false" % (form.hostname.data,
                                                request.form.get(
                                                    'zone', ''), view.get_id())
            properties = 'name=' + form.description.data

            # Assign DHCP reserved IP4 object
            ip4_object = configuration.assign_ip4_address(
                util.safe_str(request.form.get('ip4_address', '')),
                util.safe_str(form.mac_address.data), hostinfo,
                IPAssignmentActionValues.MAKE_DHCP_RESERVED, properties)

            # Put form processing code here
            g.user.logger.info(
                'Success-DHCP Reserved IP4 Address ' +
                util.safe_str(request.form.get('ip4_address', '')) +
                ' Assigned with Object ID: ' +
                util.safe_str(ip4_object.get_id()))
            flash(
                'Success - DHCP Reserved IP4 Address ' +
                util.safe_str(request.form.get('ip4_address', '')) +
                ' Assigned with Object ID: ' +
                util.safe_str(ip4_object.get_id()), 'succeed')
            return redirect(
                url_for(
                    'add_dhcp_ip4_addressadd_dhcp_ip4_address_add_dhcp_ip4_address_page'
                ))
        except APIException as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('add_dhcp_ip4_address_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('add_dhcp_ip4_address_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
Пример #10
0
def delete_host_record_delete_host_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(form.configuration.data)

            view = configuration.get_view(request.form['view'])

            # Retrieve host record
            host_record = view.get_host_record(request.form['host_record'] + '.' + request.form['parent_zone'])

            # Retrieve host record attributes for flash message
            host_record_name = host_record.get_property('absoluteName')
            host_record_id = util.safe_str(host_record.get_id())

            # Delete host record
            host_record.delete()

            # Put form processing code here
            g.user.logger.info('Success - Host  (A) Record ' + host_record_name + ' Deleted with Object ID: ' +
                               host_record_id)
            flash('Success - Host  (A) Record ' + host_record_name + ' Deleted with Object ID: ' +
                  host_record_id, 'succeed')

            # Perform Selective Deployment (RELATED Scope) on host record if checkbox is checked
            if form.deploy_now.data:
                entity_id_list = [host_record.get_id()]
                deploy_token = g.user.get_api().selective_deploy(entity_id_list)
                return render_template('delete_host_record_page.html',
                                       form=form,
                                       status_token=deploy_token,
                                       text=util.get_text(module_path(), config.language),
                                       options=g.user.get_options())
            return redirect(url_for('delete_host_recorddelete_host_record_delete_host_record_page'))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e), msg_type=g.user.logger.EXCEPTION)
            return render_template('delete_host_record_page.html',
                                   form=form,
                                   text=util.get_text(module_path(), config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('delete_host_record_page.html',
                               form=form,
                               text=util.get_text(module_path(), config.language),
                               options=g.user.get_options())
def update_alias_record_update_alias_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations()
    if form.validate_on_submit():
        try:
            # Retrieve form attributes and declare variables
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form['view'])

            # Retrieve alias record
            alias_record = view.get_alias_record(request.form['alias_record'] +
                                                 '.' + request.form['zone'])

            # Update the alias record's name and linkedRecordName
            alias_record.set_name(form.alias_name.data)
            alias_record.set_property(
                'linkedRecordName', request.form['linked_record'] + '.' +
                request.form['linked_record_zone'])
            alias_record.update()

            # Put form processing code here
            g.user.logger.info(
                'Success - Alias Record Modified - Object ID: ' +
                util.safe_str(alias_record.get_id()))
            flash(
                'Success - Alias Record Modified - Object ID: ' +
                util.safe_str(alias_record.get_id()), 'succeed')
            return redirect(
                url_for(
                    'update_alias_recordupdate_alias_record_update_alias_record_page'
                ))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('update_alias_record_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('update_alias_record_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
def update_text_record_update_text_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            text_record = g.user.get_api().get_entity_by_id(
                request.form['txt_list'])

            # Set text record attributes
            text_record.set_name(form.name.data)
            text_record.set_property('txt', form.text.data)
            text_record.update()

            # Put form processing code here
            g.user.logger.info('Success - Text Record Modified - Object ID: ' +
                               util.safe_str(text_record.get_id()))
            flash(
                'Success - Text Record Modified - Object ID: ' +
                util.safe_str(text_record.get_id()), 'succeed')
            return redirect(
                url_for(
                    'update_text_record_exampleupdate_text_record_update_text_record_page'
                ))

        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            form.txt_filter.data = ''
            form.name.data = ''
            form.text.data = ''
            return render_template('update_text_record_example_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())

    else:
        g.user.logger.info('Form data was not valid.')
        form.txt_filter.data = ''
        form.name.data = ''
        form.text.data = ''
        return render_template('update_text_record_example_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
def delete_alias_record_delete_alias_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes and declare variables
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form["view"])

            # Retrieve alias record
            alias_record = view.get_alias_record(request.form["alias_record"] +
                                                 "." + request.form["zone"])

            # Retrieve alias_record attributes for flash message
            alias_name = alias_record.get_name()
            alias_id = str(alias_record.get_id())

            # Delete alias record
            alias_record.delete()

            # Put form processing code here
            g.user.logger.info("Success - Alias Record " + alias_name +
                               " Deleted with Object ID: " + alias_id)
            flash(
                "Success - Alias Record " + alias_name +
                " Deleted with Object ID: " + alias_id,
                "succeed",
            )
            return redirect(
                url_for(
                    "delete_alias_recorddelete_alias_record_delete_alias_record_page"
                ))
        except Exception as e:
            flash(str(e))
            g.user.logger.warning(f"EXCEPTION THROWN: {e}")
            return render_template(
                "delete_alias_record_page.html",
                form=form,
                text=util.get_text(module_path(), config.language),
                options=g.user.get_options(),
            )
    else:
        g.user.logger.info("Form data was not valid.")
        return render_template(
            "delete_alias_record_page.html",
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
Пример #14
0
def add_static_ip4_address_example_add_static_ip4_address_example_page_form():
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            selected_view = request.form.get('view', '')
            selected_hostname = request.form.get('hostname', '')
            hostinfo = ''
            if selected_view != '' and selected_hostname != '':
                view = configuration.get_view(selected_view)
                hostinfo = util.safe_str(
                    selected_hostname) + '.' + util.safe_str(
                        request.form.get('zone', '')) + ',' + util.safe_str(
                            view.get_id()) + ',' + 'true' + ',' + 'false'
            properties = 'name=' + form.description.data

            # Assign ip4 object
            ip4_object = configuration.assign_ip4_address(
                request.form.get('ip4_address', ''), form.mac_address.data,
                hostinfo, 'MAKE_STATIC', properties)

            # Put form processing code here
            g.user.logger.info('Success - Static IP4 Address ' +
                               ip4_object.get_property('address') +
                               ' Added with Object ID: ' +
                               util.safe_str(ip4_object.get_id()))
            flash(
                'Success - Static IP4 Address ' +
                ip4_object.get_property('address') +
                ' Added with Object ID: ' + util.safe_str(ip4_object.get_id()),
                'succeed')
            return redirect(
                url_for(
                    'add_static_ip4_address_exampleadd_static_ip4_address_example_add_static_ip4_address_example_page'
                ))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('add_static_ip4_address_example_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('add_static_ip4_address_example_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
Пример #15
0
def delete_alias_record_delete_alias_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes and declare variables
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form['view'])

            # Retrieve alias record
            alias_record = view.get_alias_record(request.form['alias_record'] +
                                                 '.' + request.form['zone'])

            # Retrieve alias_record attributes for flash message
            alias_name = alias_record.get_name()
            alias_id = util.safe_str(alias_record.get_id())

            # Delete alias record
            alias_record.delete()

            # Put form processing code here
            g.user.logger.info('Success - Alias Record ' + alias_name +
                               ' Deleted with Object ID: ' + alias_id)
            flash(
                'Success - Alias Record ' + alias_name +
                ' Deleted with Object ID: ' + alias_id, 'succeed')
            return redirect(
                url_for(
                    'delete_alias_recorddelete_alias_record_delete_alias_record_page'
                ))
        except Exception as e:
            flash(util.safe_str(e))
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('delete_alias_record_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('delete_alias_record_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
def delete_ip4_address_delete_ip4_address_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)

            # Retrieve IP4 Object
            ip4_object = configuration.get_ip4_address(
                util.safe_str(request.form.get('ip4_address', '')))

            # Retrieve alias_record attributes for flash message
            ip4_address = util.safe_str(ip4_object.get_property('address'))
            ip4_id = util.safe_str(ip4_object.get_id())

            # Delete IP4 Object
            ip4_object.delete()

            # Put form processing code here
            g.user.logger.info('Success - IP4 Object ' + ip4_address +
                               ' Deleted with Object ID: ' + ip4_id)
            flash(
                'Success - IP4 Object ' + ip4_address +
                ' Deleted with Object ID: ' + ip4_id, 'succeed')
            return redirect(
                url_for(
                    'delete_ip4_addressdelete_ip4_address_delete_ip4_address_page'
                ))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('delete_ip4_address_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('delete_ip4_address_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
Пример #17
0
def trouble_shooting_ui_trouble_shooting_ui_page():
    if request.method == 'POST':
        data = request.form
        server_str, configuration_name, configuration_id = common.get_bam_data(data)
        return render_template(
            'trouble_shooting_ui_page.html',
            text=util.get_text(module_path(), config.language), server_str=server_str,
            configuration_name=configuration_name, configuration_id=configuration_id)
    if request.method == 'GET':
        return render_template(
            'trouble_shooting_ui_page.html',
            text=util.get_text(module_path(), config.language))
def add_host_record_example_add_host_record_example_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    form.configuration.choices = util.get_configurations(default_val=True)

    if form.validate_on_submit():
        ip4_address_list = []
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(form.configuration.data)
            view = configuration.get_view(request.form['view'])
            absolute_name = form.hostname.data + '.' + request.form['zone']
            ip4_address = request.form['ip4_address']
            ip4_address_list.append(ip4_address)

            # Add host Record
            host_record = view.add_host_record(absolute_name, ip4_address_list)

            # Put form processing code here
            g.user.logger.info('Success - Host (A) Record ' + host_record.get_property('absoluteName') +
                               ' added with Object ID: ' + util.safe_str(host_record.get_id()))
            flash('Success - Host (A) Record ' + host_record.get_property('absoluteName') + ' added with Object ID: ' +
                  util.safe_str(host_record.get_id()), 'succeed')

            # Perform Selective Deployment (RELATED Scope) on host record if checkbox is checked
            if form.deploy_now.data:
                entity_id_list = [host_record.get_id()]
                deploy_token = g.user.get_api().selective_deploy(entity_id_list)
                return render_template('add_host_record_example_page.html',
                                       form=form,
                                       status_token=deploy_token,
                                       text=util.get_text(module_path(), config.language),
                                       options=g.user.get_options())
            return redirect(url_for('add_host_record_exampleadd_host_record_example_add_host_record_example_page'))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e), msg_type=g.user.logger.EXCEPTION)
            return render_template('add_host_record_example_page.html',
                                   form=form,
                                   text=util.get_text(module_path(), config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('add_host_record_example_page.html',
                               form=form,
                               text=util.get_text(module_path(), config.language),
                               options=g.user.get_options())
def add_text_record_add_text_record_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    # pylint: disable=broad-except
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve configuration, view, and absolute name
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)
            view = configuration.get_view(request.form['view'])
            absolute_name = form.name.data + '.' + request.form.get('zone', '')

            # Attempt to add the text record
            text_record = view.add_text_record(absolute_name, form.text.data)

            g.user.logger.info('Success-Text Record ' +
                               text_record.get_property('absoluteName') +
                               ' Added with Object ID: ' +
                               util.safe_str(text_record.get_id()))
            flash(
                'Success - Text Record ' +
                text_record.get_property('absoluteName') +
                ' Added with Object ID: ' +
                util.safe_str(text_record.get_id()), 'succeed')
            return redirect(
                url_for(
                    'add_text_record_exampleadd_text_record_add_text_record_page'
                ))

        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('add_text_record_example_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('add_text_record_example_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
def delete_host_record_example_delete_host_record_example_page_form():
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)

            view = configuration.get_view(request.form['view'])

            # Retrieve host record
            host_record = view.get_host_record(request.form['host_record'] +
                                               '.' +
                                               request.form['parent_zone'])

            # Retrieve host record attributes for flash message
            host_record_name = host_record.get_property('absoluteName')
            host_record_id = util.safe_str(host_record.get_id())

            # Delete host record
            host_record.delete()

            # Put form processing code here
            g.user.logger.info('Success - Host  (A) Record ' +
                               host_record_name + ' Deleted with Object ID: ' +
                               host_record_id)
            flash(
                'Success - Host  (A) Record ' + host_record_name +
                ' Deleted with Object ID: ' + host_record_id, 'succeed')
            return redirect(
                url_for(
                    'delete_host_record_exampledelete_host_record_example_delete_host_record_example_page'
                ))
        except Exception as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('delete_host_record_example_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('delete_host_record_example_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
Пример #21
0
def absorbaroo_absorbaroo_page_form():
    form = GenericFormTemplate()
    absorbaroo = Absorbaroo.get_instance()
    text = util.get_text(module_path(), config.language)

    if form.validate_on_submit():
        absorbaroo.set_value('o365_instance', form.o365_instance.data)
        absorbaroo.set_value('o365_client_id', form.o365_client_id.data)

        absorbaroo.set_value('edge_url', form.edge_url.data)
        absorbaroo.set_value('edge_client_id', form.edge_client_id.data)
        absorbaroo.set_value('edge_secret', form.edge_secret.data)

        domainlist = absorbaroo.get_value('edge_domainlist')
        if domainlist['name'] != form.edge_domainlist.data:
            domainlist['name'] = form.edge_domainlist.data
            domainlist['edge_id'] = ''
            absorbaroo.set_value('edge_domainlist', domainlist)

        absorbaroo.set_value('sdwan_key', form.sdwan_key.data)
        absorbaroo.set_value('sdwan_orgname', form.sdwan_orgname.data)
        absorbaroo.set_value('sdwan_tmpname', form.sdwan_tmpname.data)
        absorbaroo.set_value('sdwan_delimit_key', form.sdwan_delimit_key.data)

        absorbaroo.set_value('execution_interval',
                             int(form.execution_interval.data))

        if form.submit.data:
            absorbaroo.save()
            g.user.logger.info('SAVED')
            flash(text['saved_message'], 'succeed')
        elif form.execute_now.data:
            if absorbaroo.force_synchronize_endpoints():
                flash(text['sychronized_message'], 'succeed')
            else:
                flash(text['failed_message'], 'failed')
        elif form.clear.data:
            if absorbaroo.clear_endpoints():
                flash(text['clear_message'], 'succeed')
            else:
                flash(text['failed_message'], 'failed')
        absorbaroo.register_synchronize_job()
        return redirect(url_for('absorbarooabsorbaroo_absorbaroo_page'))
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'absorbaroo_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )
def update_ip4_address_update_ip4_address_page_form():
    """
    Processes the final form after the user has input all the required data.

    :return:
    """
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if form.validate_on_submit():
        try:
            # Retrieve form attributes
            configuration = g.user.get_api().get_entity_by_id(
                form.configuration.data)

            # Retrieve the IP4 address object
            ip4_address = configuration.get_ip4_address(
                request.form.get('ip4_address', ''))

            # Update the form name and mac address properties
            ip4_address.set_name(form.description.data)
            ip4_address.set_property('macAddress', form.mac_address.data)
            ip4_address.update()

            # Put form processing code here
            g.user.logger.info('Success - IP4 Address Modified - Object ID: ' +
                               util.safe_str(ip4_address.get_id()))
            flash(
                'Success - IP4 Address Modified - Object ID: ' +
                util.safe_str(ip4_address.get_id()), 'succeed')
            return redirect(
                url_for(
                    'update_ip4_addressupdate_ip4_address_update_ip4_address_page'
                ))
        except APIException as e:
            flash(util.safe_str(e))
            # Log error and render workflow page
            g.user.logger.warning('%s' % util.safe_str(e),
                                  msg_type=g.user.logger.EXCEPTION)
            return render_template('update_ip4_address_page.html',
                                   form=form,
                                   text=util.get_text(module_path(),
                                                      config.language),
                                   options=g.user.get_options())
    else:
        g.user.logger.info('Form data was not valid.')
        return render_template('update_ip4_address_page.html',
                               form=form,
                               text=util.get_text(module_path(),
                                                  config.language),
                               options=g.user.get_options())
Пример #23
0
def unit_tests_example_unit_tests_example_page_form():
    form = GenericFormTemplate()
    # Remove this line if your workflow does not need to select a configuration
    form.configuration.choices = util.get_configurations(default_val=True)
    if not form.validate_on_submit():
        g.user.logger.info('Form data was not valid.')
        return render_template(
            'unit_tests_example_page.html',
            form=form,
            text=util.get_text(module_path(), config.language),
            options=g.user.get_options(),
        )

    print(form.configuration.data)
    print(form.email.data)
    print(form.password.data)
    print(form.mac_address.data)
    print(form.ip_address.data)
    print(form.url.data)
    print(form.file.data)
    print(form.boolean_checked.data)
    print(form.boolean_unchecked.data)
    print(form.date_time.data)
    print(form.submit.data)

    # Put form processing logic here
    g.user.logger.info('SUCCESS')
    flash('success', 'succeed')
    return redirect(
        url_for(
            'unit_tests_exampleunit_tests_example_unit_tests_example_page'))
def sonar_importer_sonar_importer_page():
    form = GenericFormTemplate()

    sonar_importer = SonarImporter.get_instance(debug=True)

    value = sonar_importer.get_value('kompira_url')
    if value is not None:
        form.kompira_url.data = value
    value = sonar_importer.get_value('api_token')
    if value is not None:
        form.api_token.data = value
    value = sonar_importer.get_value('network_name')
    if value is not None:
        form.network_name.data = value
    value = sonar_importer.get_value('include_matches')
    if value is not None:
        form.include_matches.data = value
    value = sonar_importer.get_value('include_ipam_only')
    if value is not None:
        form.include_ipam_only.data = value

    return render_template(
        'sonar_importer_page.html',
        form=form,
        text=util.get_text(module_path(), config.language),
        options=g.user.get_options(),
    )
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'sonar_importer'
    workflow_permission = 'sonar_importer_page'

    text = util.get_text(module_path(), config.language)
    invalid_url_message = text['invalid_url_message']
    require_message = text['require_message']

    kompira_url = StringField(label=text['label_kompira_url'],
                              validators=[URL(message=invalid_url_message)],
                              render_kw={
                                  "placeholder":
                                  "https://<Kompira Instance>.cloud.kompira.jp"
                              })
    api_token = StringField(label=text['label_api_token'],
                            validators=[DataRequired(message=require_message)])
    network_name = StringField(
        label=text['label_network_name'],
        validators=[DataRequired(message=require_message)])

    include_matches = BooleanField(label='', default='checked')

    include_ipam_only = BooleanField(label='', default='checked')

    submit = SubmitField(label=text['label_submit'])
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'service_point_watcher'
    workflow_permission = 'service_point_watcher_page'

    text = util.get_text(module_path(), config.language)
    invalid_url_message = text['invalid_url_message']
    require_message = text['require_message']

    # DNS Edge Pane
    edge_url = StringField(
        label=text['label_config_url'],
        validators=[URL(message=invalid_url_message)],
        render_kw={"placeholder": "https://api-<Edge Instance>.bluec.at"})
    edge_key_file = FileField(text['label_config_key_file'])
    edge_client_id = StringField(
        label=text['label_config_client_id'],
        validators=[DataRequired(message=require_message)])
    edge_secret = StringField(
        label=text['label_config_secret'],
        validators=[DataRequired(message=require_message)])
    execution_interval = StringField(
        label=text['label_config_interval'],
        validators=[DataRequired(message=require_message)])
    timeout = StringField(label=text['label_config_timeout'],
                          validators=[DataRequired(message=require_message)])

    submit = SubmitField(label=text['label_submit'])
def meraki_importer_meraki_importer_page():
    form = GenericFormTemplate()
    
    meraki_importer = MerakiImporter.get_instance(debug=True)
    
    value = meraki_importer.get_value('api_key')
    if value is not None:
        form.api_key.data = value
    value = meraki_importer.get_value('org_name')
    if value is not None:
        form.org_name.data = value
    value = meraki_importer.get_value('network_name')
    if value is not None:
        form.network_name.data = value
    value = meraki_importer.get_value('dashboard_url')
    if value is not None:
        form.dashboard_url.data = value
    value = meraki_importer.get_value('include_matches')
    if value is not None:
        form.include_matches.data = value
    value = meraki_importer.get_value('include_ipam_only')
    if value is not None:
        form.include_ipam_only.data = value
    
    return render_template(
        'meraki_importer_page.html',
        form=form,
        text=util.get_text(module_path(), config.language),
        options=g.user.get_options(),
    )
Пример #28
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'mist_importer'
    workflow_permission = 'mist_importer_page'

    text = util.get_text(module_path(), config.language)
    require_message = text['require_message']

    org_id = StringField(label=text['label_org_id'],
                         validators=[DataRequired(message=require_message)])
    api_token = StringField(label=text['label_api_token'],
                            validators=[DataRequired(message=require_message)])
    site_name = StringField(label=text['label_site_name'],
                            validators=[DataRequired(message=require_message)])

    include_matches = BooleanField(label='', default='checked')

    include_ipam_only = BooleanField(label='', default='checked')

    submit = SubmitField(label=text['label_submit'])
Пример #29
0
def mist_importer_mist_importer_page():
    form = GenericFormTemplate()

    mist_importer = MistImporter.get_instance(debug=True)

    value = mist_importer.get_value('org_id')
    if value is not None:
        form.org_id.data = value
    value = mist_importer.get_value('api_token')
    if value is not None:
        form.api_token.data = value
    value = mist_importer.get_value('site_name')
    if value is not None:
        form.site_name.data = value
    value = mist_importer.get_value('include_matches')
    if value is not None:
        form.include_matches.data = value
    value = mist_importer.get_value('include_ipam_only')
    if value is not None:
        form.include_ipam_only.data = value

    return render_template(
        'mist_importer_page.html',
        form=form,
        text=util.get_text(module_path(), config.language),
        options=g.user.get_options(),
    )
Пример #30
0
def service_point_watcher_service_point_watcher_page():
    form = GenericFormTemplate()
    sp_watcher = SPWatcher.get_instance()

    value = sp_watcher.get_value('edge_url')
    if value is not None:
        form.edge_url.data = value
    value = sp_watcher.get_value('edge_client_id')
    if value is not None:
        form.edge_client_id.data = value
    value = sp_watcher.get_value('edge_secret')
    if value is not None:
        form.edge_secret.data = value
    value = sp_watcher.get_value('execution_interval')
    if value is not None:
        form.execution_interval.data = str(value)
    value = sp_watcher.get_value('timeout')
    if value is not None:
        form.timeout.data = str(value)

    return render_template(
        'service_point_watcher_page.html',
        form=form,
        text=util.get_text(module_path(), config.language),
        options=g.user.get_options(),
    )