netdef.Engines package¶
Abstract baseclass¶
Expressions¶
Expression¶
-
class
netdef.Engines.expression.Expression.
Argument
(source_instance, instigator, frozen_value=None)[source]¶ Bases:
object
A wrapper for source instances.
Parameters: - source_instance (BaseSource) – An source instance
- instigator (boolean) – True if given source instance triggered the execution
-
controller
¶ Returns the controller attribute from source instance
-
create_interface
(value=None)[source]¶ Wrap given value into the source interface. (See
interface
attr ofnetdef.Sources.BaseSource.BaseSource
)Parameters: value (object) – value to be wrapped Returns: An interface instance Return type: netdef.Interfaces.DefaultInterface
-
get
¶ Returns the value from source instance. NB! this is not a frozen copy of the value. It may change if the controller updates the value.
-
instance
¶ reference to the source instance
-
key
¶ Returns the key attribute from source instance
-
new
¶ Returns True if source triggered the expression and this is the first value. (StatusCode.INITIAL)
-
set
¶ Write a new value to the source. This will trigger a WRITE_SOURCE message to the controller.
-
status_ok
¶ Returns True if value is StatusCode.GOOD or StatusCode.INITIAL
-
update
¶ Returns True if source triggered the expression. (StatusCode.GOOD or INVALID)
-
value
¶ a frozen copy of the value in self.instance.get
-
class
netdef.Engines.expression.Expression.
Expression
(expression, filename)[source]¶ Bases:
object
A class containing a reference to the expression-function and references to the source-instances that will become arguments to the expression function
Parameters: - expression (callable) – A reference to the actual function
- filename (str) – Filename of the module where the function is found
-
add_kwarg
(keyword, arg)[source]¶ This could be anything. This function exist for you to extend arguments for the expressions. netdef itself do not use this
-
disable
()[source]¶ If there is problems with the expression it can be automaticly disabled by calling this function
Collector¶
-
class
netdef.Engines.expression.Collector.
Collector
(fn, wait, mode)[source]¶ Bases:
object
Takes a function but does not call it right away. After the given wait time has elapsed the function is called based on the given mode.
Parameters: - fn (callable) – a function or callable
- wait (float) – seconds to wait
- mode (Mode) – how to call the callable
-
class
netdef.Engines.expression.Collector.
Mode
[source]¶ Bases:
enum.Enum
collector modes
-
FIRST
= 1¶ Use arguments from the first call
-
FIRST_WITH_EVENT
= 4¶ Use arguments from the first call and an additional argument called event
-
LAST
= 2¶ Use arguments from the last call
-
LAST_WITH_EVENT
= 5¶ Use arguments from the last call and an additional argument called event
-
LIST_ALL
= 3¶ Convert arguments to lists with every call
-
Built-in engine modules¶
ThreadedEngine¶
ThreadedWebGuiEngine¶
-
class
netdef.Engines.ThreadedWebGuiEngine.
ThreadedWebGuiEngine
(shared)[source]¶ Bases:
netdef.Engines.ThreadedEngine.ThreadedEngine
Integrates a simple werkzeug webserver to serve flask_admin webpages
-
get_flask_app
()[source]¶ Returns the main flask app.
Common use case is to integrate an existing flask app.
main.py Example:
def init_app(app): @app.route('/') def hello_world(): return 'Hello, World!' return app def main(): ... engine = ThreadedWebGuiEngine.ThreadedWebGuiEngine(shared) # here we go init_app(engine.get_flask_app()) engine.add_controller_classes(controllers) engine.add_source_classes(sources) engine.add_rule_classes(rules) engine.load([__package__, 'netdef']) engine.init() engine.start() engine.block() # until ctrl-c or SIG_TERM engine.stop() ...
-
NginxWebGuiReverseProxy¶
-
class
netdef.Engines.NginxWebGuiReverseProxy.
NginxReverseProxy
(shared)[source]¶ Bases:
netdef.Engines.ThreadedWebGuiEngine.ThreadedWebGuiEngine
Webadmin¶
AdminIndex¶
-
class
netdef.Engines.webadmin.AdminIndex.
LoginForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
login
= <UnboundField(StringField, (), {'validators': [<wtforms.validators.Required object>]})>¶
-
password
= <UnboundField(PasswordField, (), {'validators': [<wtforms.validators.Required object>]})>¶
-
-
class
netdef.Engines.webadmin.AdminIndex.
MyAdminIndexView
(name=None, category=None, endpoint=None, url=None, template='admin/index.html', menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.base.AdminIndexView
-
restarting
= 0¶
-
shuttingdown
= 0¶
-
ExpressionsView¶
-
class
netdef.Engines.webadmin.ExpressionsView.
ExpressionsModel
(expression)[source]¶ Bases:
object
-
function_arguments
¶
-
function_name
¶
-
module_filename
¶
-
-
class
netdef.Engines.webadmin.ExpressionsView.
ExpressionsModelForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
function_arguments
= <UnboundField(StringField, ('function_arguments',), {})>¶
-
function_name
= <UnboundField(StringField, ('function_name',), {})>¶
-
module_filename
= <UnboundField(StringField, ('module_filename',), {})>¶
-
-
class
netdef.Engines.webadmin.ExpressionsView.
ExpressionsModelView
(model, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
,flask_admin.model.base.BaseModelView
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
can_create
= False¶
-
can_delete
= False¶
-
can_edit
= False¶
-
column_list
= ('module_filename', 'function_name', 'function_arguments')¶
-
column_searchable_list
= ('module_filename', 'function_name', 'function_arguments')¶
-
column_sortable_list
= ()¶
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export
(export_type)¶
-
form
¶ alias of
ExpressionsModelForm
-
get_list
(page, sort_field, sort_desc, search, filters, page_size=None)[source]¶ Return a paginated and sorted list of models from the data source.
Must be implemented in the child class.
Parameters: - page – Page number, 0 based. Can be set to None if it is first page.
- sort_field – Sort column name or None.
- sort_desc – If set to True, sorting is in descending order.
- search – Search query
- filters – List of filter tuples. First value in a tuple is a search index, second value is a search value.
- page_size – Number of results. Defaults to ModelView’s page_size. Can be overriden to change the page_size limit. Removing the page_size limit requires setting page_size to 0 or False.
-
index_view
()¶ List view
-
init_search
()[source]¶ Initialize search. If data provider does not support search,
init_search
will returnFalse
.
-
FileModel¶
-
class
netdef.Engines.webadmin.FileModel.
Files
(base_path, *args, **kwargs)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
,flask_admin.contrib.fileadmin.FileAdmin
-
action_view
()¶
-
allowed_extensions
= ('txt', 'conf', 'csv', 'der', 'pam', 'key', 'zip', 'gz', '7z', 'py', 'ini', 'yaml')¶
-
can_download
= True¶
-
delete
()¶ Delete view method
-
download
(path=None)¶ Download view method.
Parameters: path – File path.
-
edit
()¶ Edit view method
-
edit_template
= 'admin/fileedit.html'¶
-
editable_extensions
= ('txt', 'conf', 'csv', 'py', 'ini', 'yaml')¶
-
get_edit_form
()[source]¶ Create form class for file editing view.
Override to implement customized behavior.
-
index
(path=None)¶
-
index_view
(path=None)¶ Index view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
is_accessible
()[source]¶ Override this method to add permission checks.
Flask-Admin does not make any assumptions about the authentication system used in your application, so it is up to you to implement it.
By default, it will allow access for everyone.
-
is_accessible_path
(path)[source]¶ Verify if the provided path is accessible for the current user.
Override to customize behavior.
Parameters: path – Relative path to the root
-
list_template
= 'admin/filelist.html'¶
-
mkdir
(path=None)¶ Directory creation view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
rename
()¶ Rename view method
-
upload
(path=None)¶ Upload view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
-
class
netdef.Engines.webadmin.FileModel.
InstallationRepo
(base_path, *args, **kwargs)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
,flask_admin.contrib.fileadmin.FileAdmin
-
action_view
()¶
-
allowed_extensions
= ('zip', 'whl', 'gz')¶
-
can_download
= True¶
-
can_rename
= False¶
-
delete
()¶ Delete view method
-
download
(path=None)¶ Download view method.
Parameters: path – File path.
-
edit
()¶ Edit view method
-
index
(path=None)¶
-
index_view
(path=None)¶ Index view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
is_accessible
()[source]¶ Override this method to add permission checks.
Flask-Admin does not make any assumptions about the authentication system used in your application, so it is up to you to implement it.
By default, it will allow access for everyone.
-
list_template
= 'admin/filelist.html'¶
-
mkdir
(path=None)¶ Directory creation view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
rename
()¶ Rename view method
-
upload
(path=None)¶ Upload view method
Parameters: path – Optional directory path. If not provided, will use the base directory
-
MyBaseView¶
-
class
netdef.Engines.webadmin.MyBaseView.
MyBaseView
(name=None, category=None, endpoint=None, url=None, static_folder=None, static_url_path=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
flask_admin.base.BaseView
SettingsModel¶
-
class
netdef.Engines.webadmin.SettingsModel.
SettingsModel
(section, key, value)[source]¶ Bases:
object
-
key
¶
-
section
¶
-
value
¶
-
-
class
netdef.Engines.webadmin.SettingsModel.
SettingsModelForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
key
= <UnboundField(StringField, ('key',), {})>¶
-
section
= <UnboundField(StringField, ('section',), {})>¶
-
value
= <UnboundField(StringField, ('value',), {})>¶
-
-
class
netdef.Engines.webadmin.SettingsModel.
SettingsModelView
(model, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
,flask_admin.model.base.BaseModelView
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
can_create
= False¶
-
can_delete
= False¶
-
can_edit
= False¶
-
column_list
= ('section', 'key', 'value')¶
-
column_searchable_list
= 'key'¶
-
column_sortable_list
= ()¶
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export
(export_type)¶
-
form
¶ alias of
SettingsModelForm
-
get_list
(page, sort_field, sort_desc, search, filters, page_size=None)[source]¶ Return a paginated and sorted list of models from the data source.
Must be implemented in the child class.
Parameters: - page – Page number, 0 based. Can be set to None if it is first page.
- sort_field – Sort column name or None.
- sort_desc – If set to True, sorting is in descending order.
- search – Search query
- filters – List of filter tuples. First value in a tuple is a search index, second value is a search value.
- page_size – Number of results. Defaults to ModelView’s page_size. Can be overriden to change the page_size limit. Removing the page_size limit requires setting page_size to 0 or False.
-
index_view
()¶ List view
-
init_search
()[source]¶ Initialize search. If data provider does not support search,
init_search
will returnFalse
.
-
SourcesModel¶
-
class
netdef.Engines.webadmin.SourcesModel.
SourcesModelForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
key
= <UnboundField(StringField, ('key',), {'render_kw': {'readonly': True}})>¶
-
process
(*args, **kwargs)[source]¶ Take form, object data, and keyword arg input and have the fields process them.
Parameters: - formdata – Used to pass data coming from the enduser, usually
request.POST
or equivalent. - obj – If
formdata
is empty or not provided, this object is checked for attributes matching form field names, which will be used for field values. - data – If provided, must be a dictionary of data. This is only used if
formdata
is empty or not provided andobj
does not contain an attribute named the same as the field. - **kwargs – If
formdata
is empty or not provided andobj
does not contain an attribute named the same as a field, form will assign the value of a matching keyword argument to the field, if one exists.
- formdata – Used to pass data coming from the enduser, usually
-
set_origin
= <UnboundField(StringField, ('set_origin',), {'render_kw': {'readonly': True}})>¶
-
set_source_time
= <UnboundField(StringField, ('set_source_time',), {'render_kw': {'readonly': True}})>¶
-
set_status_code
= <UnboundField(StringField, ('set_status_code',), {'render_kw': {'readonly': True}})>¶
-
set_value
= <UnboundField(StringField, ('set_value',), {'render_kw': {'readonly': True}})>¶
-
source
= <UnboundField(StringField, ('source',), {'render_kw': {'readonly': True}})>¶
-
source_datatype
= <UnboundField(StringField, ('source_datatype',), {'render_kw': {'readonly': True}})>¶
-
-
class
netdef.Engines.webadmin.SourcesModel.
SourcesModelView
(model, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
,flask_admin.model.base.BaseModelView
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
can_create
= False¶
-
can_delete
= False¶
-
can_edit
= True¶
-
can_view_details
= True¶
-
column_details_list
= ('key', 'rule', 'source', 'controller', 'value_as_string', 'status_code', 'source_time', 'source_datatype', 'get_value', 'get_source_time', 'get_status_code', 'get_origin', 'set_value', 'set_source_time', 'set_status_code', 'set_origin')¶
-
column_list
= ('key', 'rule', 'source', 'controller', 'value_as_string', 'status_code', 'source_time')¶
-
column_searchable_list
= ('key', 'rule', 'source', 'controller', 'value')¶
-
column_sortable_list
= ()¶
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export
(export_type)¶
-
form
¶ alias of
SourcesModelForm
-
get_list
(page, sort_field, sort_desc, search, filters, page_size=None)[source]¶ Return a paginated and sorted list of models from the data source.
Must be implemented in the child class.
Parameters: - page – Page number, 0 based. Can be set to None if it is first page.
- sort_field – Sort column name or None.
- sort_desc – If set to True, sorting is in descending order.
- search – Search query
- filters – List of filter tuples. First value in a tuple is a search index, second value is a search value.
- page_size – Number of results. Defaults to ModelView’s page_size. Can be overriden to change the page_size limit. Removing the page_size limit requires setting page_size to 0 or False.
-
get_one
(ref)[source]¶ Return one model by its id.
Must be implemented in the child class.
Parameters: id – Model id
-
index_view
()¶ List view
-
init_search
()[source]¶ Initialize search. If data provider does not support search,
init_search
will returnFalse
.
-
StatisticsModel¶
-
class
netdef.Engines.webadmin.StatisticsModel.
StatisticsModel
(key, value)[source]¶ Bases:
object
-
key
¶
-
value
¶
-
-
class
netdef.Engines.webadmin.StatisticsModel.
StatisticsModelForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
key
= <UnboundField(StringField, ('key',), {})>¶
-
value
= <UnboundField(StringField, ('value',), {})>¶
-
-
class
netdef.Engines.webadmin.StatisticsModel.
StatisticsModelView
(model, name=None, category=None, endpoint=None, url=None, static_folder=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
netdef.Engines.webadmin.SourcesModel.SourcesModelView
-
action_view
()¶ Mass-model action view.
-
ajax_lookup
()¶
-
ajax_update
()¶ Edits a single column of a record in list view.
-
can_create
= False¶
-
can_delete
= False¶
-
can_edit
= False¶
-
can_view_details
= False¶
-
column_list
= ('key', 'value')¶
-
column_searchable_list
= 'key'¶
-
column_sortable_list
= ()¶
-
create_view
()¶ Create model view
-
delete_view
()¶ Delete model view. Only POST method is allowed.
-
details_view
()¶ Details model view
-
edit_view
()¶ Edit model view
-
export
(export_type)¶
-
form
¶ alias of
StatisticsModelForm
-
get_list
(page, sort_field, sort_desc, search, filters, page_size=None)[source]¶ Return a paginated and sorted list of models from the data source.
Must be implemented in the child class.
Parameters: - page – Page number, 0 based. Can be set to None if it is first page.
- sort_field – Sort column name or None.
- sort_desc – If set to True, sorting is in descending order.
- search – Search query
- filters – List of filter tuples. First value in a tuple is a search index, second value is a search value.
- page_size – Number of results. Defaults to ModelView’s page_size. Can be overriden to change the page_size limit. Removing the page_size limit requires setting page_size to 0 or False.
-
index_view
()¶ List view
-
Tools¶
-
class
netdef.Engines.webadmin.Tools.
Tools
(name=None, category=None, endpoint=None, url=None, static_folder=None, static_url_path=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶
SecurityWebadminView¶
-
class
netdef.Engines.webadmin.SecurityWebadminView.
BasicSecurityForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
netdef.Engines.webadmin.SecurityWebadminView.SecurityForm
-
new_flask_secret
= <UnboundField(SelectField, ('Renew session cookie',), {'choices': [('yes', 'Yes'), ('no', 'No')]})>¶
-
old_password
= None¶
-
validate_password
= None¶
-
-
class
netdef.Engines.webadmin.SecurityWebadminView.
SecurityForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
confirm
= <UnboundField(PasswordField, ('Repeat Password',), {})>¶
-
login
= <UnboundField(StringField, ('Login', [<wtforms.validators.Required object>]), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'webadmin', 'users.admin.user', fallback='admin')})>¶
-
new_flask_secret
= <UnboundField(SelectField, ('Renew session cookie',), {'choices': [('no', 'No'), ('yes', 'Yes')]})>¶
-
old_password
= <UnboundField(PasswordField, ('Current password',), {})>¶
-
password
= <UnboundField(PasswordField, ('New Password',), {})>¶
-
ssl_certificate
= <UnboundField(SelectField, ('SSL Certificate',), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'webadmin', 'ssl_certificate', fallback=''), 'choices': []})>¶
-
ssl_certificate_key
= <UnboundField(SelectField, ('SSL Key',), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'webadmin', 'ssl_certificate_key', fallback=''), 'choices': []})>¶
-
ssl_on
= <UnboundField(SelectField, ('HTTPS On',), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'webadmin', 'ssl_on', fallback='0'), 'choices': [('0', 'Off'), ('1', 'On')]})>¶
-
update_on
= <UnboundField(SelectField, ('Package upgrade',), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'auto_update', 'on', fallback=0), 'choices': [('0', 'Disable'), ('1', 'Enable')]})>¶
-
update_pre_release
= <UnboundField(SelectField, ('Accept pre-releases',), {'default': functools.partial(<bound method RawConfigParser.get of <configparser.ConfigParser object>>, 'auto_update', 'pre_release', fallback=0), 'choices': [('0', 'No'), ('1', 'Yes')]})>¶
-
-
class
netdef.Engines.webadmin.SecurityWebadminView.
SecurityWebadminView
(name=None, category=None, endpoint=None, url=None, static_folder=None, static_url_path=None, menu_class_name=None, menu_icon_type=None, menu_icon_value=None)[source]¶ Bases:
netdef.Engines.webadmin.MyBaseView.MyBaseView
-
choices_crts
= [('', 'None')]¶
-
choices_keys
= [('', 'None')]¶
-
SecurityCertificatesView¶
-
class
netdef.Engines.webadmin.SecurityCertificatesView.
SecurityCertificatesForm
(formdata=None, obj=None, prefix='', data=None, meta=None, **kwargs)[source]¶ Bases:
wtforms.form.Form
-
basicConstraints
= <UnboundField(StringField, ('basicConstraints',), {'default': 'CA:TRUE', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
cn
= <UnboundField(StringField, ('Common name',), {'default': 'build-14281606-project-477358-netdef', 'validators': [<wtforms.validators.Regexp object>], 'render_kw': {'placeholder': 'Hostname, DNS, IP-address or leave it blank'}})>¶
-
current_password
= <UnboundField(PasswordField, ('Current password',), {})>¶
-
days
= <UnboundField(IntegerField, ('Days valid',), {'default': 7300})>¶
-
dns_1
= <UnboundField(StringField, ('DNS.1',), {'default': 'build-14281606-project-477358-netdef', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
dns_2
= <UnboundField(StringField, ('DNS.2',), {'default': '', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
dns_3
= <UnboundField(StringField, ('DNS.3',), {'default': '', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
extendedKeyUsage
= <UnboundField(StringField, ('extendedKeyUsage',), {'default': 'critical, serverAuth', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
form_opts
= <flask_admin.form.FormOpts object>¶
-
gen_opcua
= <UnboundField(SelectField, ('OpcUa certificate',), {'default': '1', 'choices': [('0', 'No change'), ('1', 'Generate new')], 'description': 'Following files will be overwritten:<ul><li>ssl/certs/opcua_certificate.pem</li><li>ssl/private/opcua_certificate.pem.key</li><li>ssl/certs/opcua_certificate.der</li><li>ssl/private/opcua_certificate.der.key</li></ul>'})>¶
-
gen_webadmin
= <UnboundField(SelectField, ('Webadmin certificate',), {'default': '1', 'choices': [('0', 'No change'), ('1', 'Generate new')], 'description': 'Following files will be overwritten:<ul><li>ssl/certs/webadmin_certificate.pem</li><li>ssl/private/webadmin_certificate.pem.key</li><li>ssl/certs/webadmin_certificate.der</li><li>ssl/private/webadmin_certificate.der.key</li></ul>'})>¶
-
ip_1
= <UnboundField(StringField, ('IP.1',), {'default': '127.0.0.1', 'validators': [<wtforms.validators.Optional object>, <wtforms.validators.IPAddress object>]})>¶
-
ip_2
= <UnboundField(StringField, ('IP.2',), {'default': '172.17.0.2', 'validators': [<wtforms.validators.Optional object>, <wtforms.validators.IPAddress object>]})>¶
-
ip_3
= <UnboundField(StringField, ('IP.3',), {'default': '', 'validators': [<wtforms.validators.Optional object>, <wtforms.validators.IPAddress object>]})>¶
-
ip_4
= <UnboundField(StringField, ('IP.4',), {'default': '', 'validators': [<wtforms.validators.Optional object>, <wtforms.validators.IPAddress object>]})>¶
-
ip_5
= <UnboundField(StringField, ('IP.5',), {'default': '', 'validators': [<wtforms.validators.Optional object>, <wtforms.validators.IPAddress object>]})>¶
-
keyUsage
= <UnboundField(StringField, ('keyUsage',), {'default': 'critical, cRLSign, digitalSignature, keyCertSign', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
subjectAltName
= <UnboundField(HiddenField, ('subjectAltName:',), {})>¶
-
uri_1
= <UnboundField(StringField, ('URI.1',), {'default': <function get_uri>, 'validators': [<wtforms.validators.Regexp object>]})>¶
-
uri_2
= <UnboundField(StringField, ('URI.2',), {'default': '', 'validators': [<wtforms.validators.Regexp object>]})>¶
-
uri_3
= <UnboundField(StringField, ('URI.3',), {'default': '', 'validators': [<wtforms.validators.Regexp object>]})>¶
-