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(), )
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(), )
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(), )
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())
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(), )
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())
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())
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())
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())
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(), )
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'])
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(), )
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(), )