예제 #1
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

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

    name = CustomStringField(label='NAME',
                             is_disabled_on_start=False,
                             required=True,
                             validators=[DataRequired()])

    email = CustomStringField(label='Email',
                              is_disabled_on_start=False,
                              required=True,
                              default='*****@*****.**',
                              validators=[DataRequired(),
                                          Email()])

    file = FileField(label='File')

    submit = SubmitField(label='Submit')
예제 #2
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'configure_service_requests'
    workflow_permission = 'configure_service_requests_page'
    servicenow_url = CustomStringField(
        label='ServiceNow URL',
        default=service_requests_config.servicenow_url,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )

    servicenow_username = CustomStringField(
        label='ServiceNow User',
        default=service_requests_config.servicenow_username,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    servicenow_secret_file = CustomStringField(
        label='ServiceNow Secret file and path',
        default=service_requests_config.servicenow_secret_file,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    submit = CustomSubmitField(label='Save',
                               is_disabled_on_start=False,
                               is_disabled_on_error=False)
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'add_text_record_example'
    workflow_permission = 'add_text_record_example_page'
    configuration = Configuration(workflow_name=workflow_name,
                                  permissions=workflow_permission,
                                  label='Configuration',
                                  required=True,
                                  coerce=int,
                                  validators=[],
                                  is_disabled_on_start=False,
                                  on_complete=['call_view'],
                                  enable_on_complete=['view'])

    view = View(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='View',
                required=True,
                one_off=True,
                on_complete=['call_zone'],
                enable_on_complete=['zone'])

    zone = Zone(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='Zone',
                required=True,
                enable_on_complete=['name', 'text', 'submit'])

    name = CustomStringField(label='Name')

    text = CustomStringField(label='Text')

    submit = SubmitField(label='Submit')
예제 #4
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'vro_configuration'
    workflow_permission = 'vro_configuration_page'
    default_configuration = CustomStringField(
        label='Default Configuration',
        default=vro_config.default_configuration,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)
    default_view = CustomStringField(label='vRO Default DNS View',
                                     default=vro_config.default_view,
                                     is_disabled_on_start=False,
                                     is_disabled_on_error=False,
                                     required=True)
    default_zone = CustomStringField(label='vRO Default Zone',
                                     default=vro_config.default_zone,
                                     is_disabled_on_start=False,
                                     is_disabled_on_error=False,
                                     required=True)
    default_reverse_flag = CustomStringField(
        label='vRO Create PTR Record',
        default=vro_config.default_reverse_flag,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    submit = CustomSubmitField(label='Save',
                               is_disabled_on_start=False,
                               is_disabled_on_error=False)
예제 #5
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'edge_create_internal_ns'
    workflow_permission = 'edge_create_internal_ns_page'
    domainlist_name = CustomStringField(
        label='Domain List Name',
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    domainlist_desc = CustomStringField(
        label='Domain List Description',
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=False,
    )
    sourceType = CustomStringField(
        label='Domain List Type',
        default='user',
        is_disabled_on_start=True,
        is_disabled_on_error=True,
        required=True,
    )

    namespaces = EdgeNamespaces(label='Edge Namespaces',
                                is_disabled_on_start=False,
                                workflow_name=workflow_name,
                                permissions=workflow_permission)

    submit = CustomSubmitField(label='Submit', is_disabled_on_start=False)
class GenericFormTemplate(GatewayForm):
    """ Form to generate HTML and Javascript for the update_ip4_address_example workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'update_ip4_address_example'
    workflow_permission = 'update_ip4_address_example_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        enable_dependencies={'on_complete': ['ip4_address']},
        disable_dependencies={'on_change': ['ip4_address']},
        clear_dependencies={'on_change': ['ip4_address']})

    ip4_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Address',
        required=True,
        clear_below_on_change=False,
        inputs={
            'configuration': 'configuration',
            'address': 'ip4_address'
        },
        server_outputs={
            'on_validate': {
                'state': 'address_state',
                'mac_address': 'mac_address',
                'name': 'description'
            }
        },
        server_side_output_method=get_ip4_address_endpoint,
        result_decorator=filter_allocated,
        should_cascade_clear_on_change=True,
        should_cascade_disable_on_change=True,
        enable_dependencies={
            'on_complete':
            ['address_state', 'mac_address', 'description', 'submit']
        },
        disable_dependencies={
            'on_change':
            ['address_state', 'mac_address', 'description', 'submit']
        })

    line_break = PlainHTML('<hr>')

    address_state = CustomStringField(label='Address State', readonly=True)

    mac_address = CustomStringField(label='MAC Address')

    description = CustomStringField(label='Description')

    submit = SubmitField(label='Update')
class GenericFormTemplate(GatewayForm):
    """ Form to generate HTML and Javascript for the add_text_record workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'add_text_record'
    workflow_permission = 'add_text_record_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        on_complete=['call_view'],
        enable_dependencies={'on_complete': ['view']},
        disable_dependencies={'on_change': ['view']},
        clear_dependencies={'on_change': ['view']}
    )

    view = View(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='View',
        required=True,
        one_off=True,
        on_complete=['call_zone'],
        clear_below_on_change=False,
        enable_dependencies={'on_complete': ['zone']},
        disable_dependencies={'on_change': ['zone']},
        clear_dependencies={'on_change': ['zone']},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True
    )

    zone = Zone(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Zone',
        required=True,
        clear_below_on_change=False,
        enable_dependencies={'on_complete': ['name', 'text', 'submit']},
        disable_dependencies={'on_change': ['name', 'text', 'submit']},
        clear_dependencies={'on_change': ['name', 'text']},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True
    )

    name = CustomStringField(
        label='Name'
    )

    text = CustomStringField(
        label='Text'
    )

    submit = SubmitField(label='Submit')
예제 #8
0
class GenericFormTemplate(GatewayForm):
    """Form to generate HTML and Javascript for the add_text_record workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """

    workflow_name = "add_text_record"
    workflow_permission = "add_text_record_page"
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Configuration",
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        on_complete=["call_view"],
        enable_dependencies={"on_complete": ["view"]},
        disable_dependencies={"on_change": ["view"]},
        clear_dependencies={"on_change": ["view"]},
    )

    view = View(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="View",
        required=True,
        one_off=True,
        on_complete=["call_zone"],
        clear_below_on_change=False,
        enable_dependencies={"on_complete": ["zone"]},
        disable_dependencies={"on_change": ["zone"]},
        clear_dependencies={"on_change": ["zone"]},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True,
    )

    zone = Zone(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Zone",
        required=True,
        clear_below_on_change=False,
        enable_dependencies={"on_complete": ["name", "text", "submit"]},
        disable_dependencies={"on_change": ["name", "text", "submit"]},
        clear_dependencies={"on_change": ["name", "text"]},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True,
    )

    name = CustomStringField(label="Name")

    text = CustomStringField(label="Text")

    submit = SubmitField(label="Submit")
class GenericFormTemplate(GatewayForm):
    """Form to generate HTML and Javascript for the delete_ip4_address workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """

    workflow_name = "delete_ip4_address"
    workflow_permission = "delete_ip4_address_page"
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Configuration",
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        enable_dependencies={"on_complete": ["ip4_address"]},
        disable_dependencies={"on_change": ["ip4_address"]},
        clear_dependencies={"on_change": ["ip4_address"]},
    )

    ip4_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Address",
        required=True,
        inputs={"configuration": "configuration", "address": "ip4_address"},
        server_outputs={
            "on_change": {
                "state": "address_state",
                "mac_address": "mac_address",
                "name": "description",
            }
        },
        server_side_output_method=get_ip4_address_endpoint,
        result_decorator=filter_allocated,
        clear_below_on_change=False,
        should_cascade_disable_on_change=True,
        enable_dependencies={"on_complete": ["submit"]},
        disable_dependencies={
            "on_change": ["address_state", "mac_address", "description", "submit"]
        },
    )

    line_break = PlainHTML("<hr>")

    address_state = CustomStringField(label="Address State", readonly=True)

    mac_address = CustomStringField(label="MAC Address", readonly=True)

    description = CustomStringField(label="Description", readonly=True)

    submit = SubmitField(label="Delete")
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'add_static_ip4_address_example'
    workflow_permission = 'add_static_ip4_address_example_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        validators=[],
        is_disabled_on_start=False,
        enable_on_complete=['ip4_address'],
    )

    ip4_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Address',
        required=True,
        inputs={
            'configuration': 'configuration',
            'address': 'ip4_address'
        },
        result_decorator=filter_unallocated,
        on_complete=['call_view'],
        enable_on_complete=['view', 'mac_address', 'description', 'submit'])

    mac_address = CustomStringField(label='MAC Address')

    description = CustomStringField(label='Description')

    view = View(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='View',
                one_off=True,
                on_complete=['call_zone'],
                on_change=['view_changed'],
                clear_below_on_change=False,
                enable_on_complete=['zone'])

    zone = Zone(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='Zone',
                on_change=['reset_hostname'],
                clear_below_on_change=False,
                enable_on_complete=['hostname'])

    hostname = CustomStringField(label='Hostname')

    submit = SubmitField(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 = 'gitlab_import'
    workflow_permission = 'gitlab_import_page'
    default_group = CustomStringField(
        label='Default GitLab Group',
        default=gitlab_import_config.default_group,
        is_disabled_on_start=True,
        is_disabled_on_error=True,
        required=True)

    gitlab_groups = gitlab_import_entities.GitlabGroups(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='GitLab Projects/Sub Groups',
        required=True,
        coerce=int,
        validators=[],
        is_disabled_on_start=False,
        on_complete=[],
        clear_below_on_change=False,
        enable_dependencies={'on_complete': ['submit']})

    submit = SubmitField(label='Import')
예제 #12
0
class GenericFormTemplate(GatewayForm):

    client_id = CustomStringField(
        default='b2756813-e562-4d21-837b-33aa1d5456b6', label='Cliend ID')

    password = PasswordField(label='Security Key',
                             default='c62ba28e-c6a8-4d40-ae50-bf45c47dbfd1')

    ip_address = IP4Address(label='IP Address',
                            default='10.244.135.248',
                            required=True,
                            result_decorator=None,
                            enable_on_complete=['submit'])

    port = CustomStringField(default='443', label='Port')
    submit = SubmitField(label='Login')
    logout = SubmitField(label='logout')
예제 #13
0
class GenericFormTemplate(GatewayForm):
    """Form template to generate html and javascript for page"""

    workflow_name = "table_component"
    workflow_permission = "table_component_page"

    object_type = CustomSelectField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Object Type",
        choices_function=get_object_types,
        required=True,
        is_disabled_on_start=False,
    )

    keyword = CustomStringField(label="Keyword",
                                is_disabled_on_start=False,
                                required=True)

    search = CustomSearchButtonField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        default="Search Objects",
        inputs={
            "keyword": "keyword",
            "object_type": "object_type"
        },
        server_side_method=find_objects_by_type_endpoint,
        display_message=True,
        on_complete=["call_output_table", "call_server_table"],
        is_disabled_on_start=False,
    )

    output_table = TableField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="",
        data_function=raw_table_data,
        on_complete=["custom_js_table_loaded"],
    )

    server_table = TableField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Server table",
        server_side_method=server_table_data_endpoint,
        data_function=raw_table_data,
        table_features={
            "searching": False,
            "paging": False,
            "ordering": False,
            "info": False
        },
        inputs={
            "keyword": "keyword",
            "object_type": "object_type"
        },
    )
예제 #14
0
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'register_mac_address'
    workflow_permission = 'register_mac_address_page'

    text = get_resource_text()
    require_message = text['require_message']

    mac_address = CustomStringField(
        label=text['label_mac_address'],
        default='FF:FF:FF:FF:FF:FF',
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message),
                    MacAddress()])

    device_group = CustomSelectField(label=text['label_device_group'],
                                     coerce=int,
                                     is_disabled_on_start=False,
                                     validators=[])

    asset_code = CustomStringField(
        label=text['label_asset_code'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message)])

    employee_code = CustomStringField(
        label=text['label_employee_code'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message)])

    location = CustomSelectField(label=text['label_location'],
                                 coerce=int,
                                 is_disabled_on_start=False)

    submit_date = DateTimeField(label=text['label_submit_date'],
                                default=datetime.datetime.now(),
                                format='%Y/%m/%d')

    expiry_date = DateTimeField(label=text['label_expiry_date'],
                                default=datetime.datetime.now() +
                                datetime.timedelta(days=365),
                                format='%Y/%m/%d')

    submit = CustomSubmitField(label=text['label_submit'],
                               is_disabled_on_start=False)
예제 #15
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'gitlab_configuration'
    workflow_permission = 'gitlab_configuration_page'
    gitlab_url = CustomStringField(
        label='GitLab URL',
        default=gitlab_import_config.gitlab_url,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )

    default_group = CustomStringField(
        label='Default GitLab Group',
        default=gitlab_import_config.default_group,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    gitlab_import_directory = CustomStringField(
        label='GitLab Workflow Directory',
        default=gitlab_import_config.gitlab_import_directory,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    gitlab_import_utils_directory = CustomStringField(
        label='GitLab Util Directory',
        default=gitlab_import_config.gitlab_import_utils_directory,
        is_disabled_on_start=False,
        is_disabled_on_error=False)

    gw_utils_directory = CustomStringField(
        label='Gateway Util Directory',
        default=gitlab_import_config.gw_utils_directory,
        is_disabled_on_start=False,
        is_disabled_on_error=False)

    backups_folder = CustomStringField(
        label='Gateway Backup Folder',
        default=gitlab_import_config.backups_folder,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True)

    secret_file = CustomStringField(label='Gateway Secret file and path',
                                    default=gitlab_import_config.secret_file,
                                    is_disabled_on_start=False,
                                    is_disabled_on_error=False,
                                    required=True)

    submit = CustomSubmitField(label='Save',
                               is_disabled_on_start=False,
                               is_disabled_on_error=False)
예제 #16
0
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'update_ip4_address_example'
    workflow_permission = 'update_ip4_address_example_page'
    configuration = Configuration(workflow_name=workflow_name,
                                  permissions=workflow_permission,
                                  label='Configuration',
                                  required=True,
                                  coerce=int,
                                  validators=[],
                                  is_disabled_on_start=False,
                                  enable_on_complete=['ip4_address'])

    ip4_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Address',
        required=True,
        inputs={
            'configuration': 'configuration',
            'address': 'ip4_address'
        },
        on_change=['server_output_ip4_address'],
        server_outputs={
            'state': 'address_state',
            'mac_address': 'mac_address',
            'name': 'description'
        },
        server_side_output_method=get_ip4_address_endpoint,
        result_decorator=filter_allocated,
        enable_on_complete=[
            'address_state', 'mac_address', 'description', 'submit'
        ])

    line_break = PlainHTML('<hr>')

    address_state = CustomStringField(label='Address State', readonly=True)

    mac_address = CustomStringField(label='MAC Address')

    description = CustomStringField(label='Description')

    submit = SubmitField(label='Update')
class GenericFormTemplate(GatewayForm):
    """ Form template to generate html and javascript for page
    """
    workflow_name = 'table_component'
    workflow_permission = 'table_component_page'

    object_type = CustomSelectField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Object Type',
        choices_function=get_object_types,
        required=True,
        is_disabled_on_start=False
    )

    keyword = CustomStringField(
        label='Keyword',
        is_disabled_on_start=False,
        required=True
    )

    search = CustomSearchButtonField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        default='Search Objects',
        inputs={'keyword': 'keyword', 'object_type': 'object_type'},
        server_side_method=find_objects_by_type_endpoint,
        display_message=True,
        on_complete=['call_output_table', 'call_server_table'],
        is_disabled_on_start=False
    )

    output_table = TableField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='',
        data_function=raw_table_data,
        on_complete=['custom_js_table_loaded']
    )

    server_table = TableField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Server table',
        server_side_method=server_table_data_endpoint,
        data_function=raw_table_data,
        table_features={
            'searching': False,
            'paging': False,
            'ordering': False,
            'info': False
        },
        inputs={'keyword': 'keyword', 'object_type': 'object_type'}
    )
예제 #18
0
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'delete_alias_record_example'
    workflow_permission = 'delete_alias_record_example_page'
    configuration = Configuration(workflow_name=workflow_name,
                                  permissions=workflow_permission,
                                  label='Configuration',
                                  required=True,
                                  coerce=int,
                                  validators=[],
                                  is_disabled_on_start=False,
                                  on_complete=['call_view'],
                                  enable_on_complete=['view'])

    view = View(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='View',
                required=True,
                one_off=True,
                on_complete=['call_zone'],
                enable_on_complete=['zone'])

    zone = Zone(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='Zone',
                required=True,
                enable_on_complete=['alias_record'])

    alias_record = AliasRecord(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Alias Record',
        required=True,
        on_complete=['populate_alias_record_data'],
        enable_on_complete=['name', 'linked_record', 'submit'])

    name = CustomStringField(label='Name', readonly=True)

    linked_record = CustomStringField(label='Linked Record', readonly=True)

    submit = SubmitField(label='Delete')
예제 #19
0
class EdgeForm(GatewayForm):

    workflow_name = 'hello_edge'
    workflow_permission = 'hello_edge_page'

    edge = CustomStringField(label='Edge CI',
                             default='https://api.edge.example.com',
                             validators=[DataRequired(), URL()],
                             is_disabled_on_start=False)

    client = CustomStringField(label='Client ID',
                               default='',
                               validators=[DataRequired()],
                               is_disabled_on_start=False)

    client_secret = CustomStringField(label='Client Secret',
                                      default='',
                                      validators=[DataRequired()],
                                      is_disabled_on_start=False)

    submit = SubmitField(label='Submit')
예제 #20
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

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

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

    edge_url = CustomStringField(
        label=text['label_edge_url'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message), URL(message=invalid_url_message)],
        render_kw={"placeholder": "https://api-<Edge Instance>.bluec.at"}
    )

    edge_token = CustomStringField(
        label=text['label_edge_token'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message)]
    )

    syslog_server = CustomStringField(
        label=text['label_syslog_server'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message), IPAddress()]
    )

    poll_interval = CustomStringField(
        label=text['label_poll_interval'],
        is_disabled_on_start=False,
        validators=[DataRequired(message=require_message)]
    )

    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 = 'add_mac_address'
    workflow_permission = 'add_mac_address_page'

    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        is_disabled_on_start=False,
    )

    mac_address = CustomStringField(label='MAC Address',
                                    is_disabled_on_start=False,
                                    validators=[MacAddress()],
                                    required=True)

    mac_address_name = CustomStringField(label='MAC Address Name',
                                         is_disabled_on_start=False,
                                         required=True)

    mac_pool_boolean = CustomBooleanField(label='Add to MAC Pool',
                                          is_disabled_on_start=False)

    mac_pool = MACPool(workflow_name=workflow_name,
                       permissions=workflow_permission,
                       label='MAC Pool',
                       is_disabled_on_start=False)

    submit = CustomSubmitField(label='Submit', is_disabled_on_start=False)
예제 #22
0
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'NewLocation'
    workflow_permission = 'NewLocation_page'
    parent_location = Location(workflow_name=workflow_name,
                               permissions=workflow_permission,
                               label='Parent Location',
                               is_disabled_on_start=False,
                               required=True)

    new_location_name = CustomStringField(label='New Location Name',
                                          is_disabled_on_start=False,
                                          required=True)

    new_location_code = CustomStringField(label='New Location Code',
                                          is_disabled_on_start=False,
                                          required=True)

    submit = SubmitField(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 = 'edge_create_internal_ns_config'
    workflow_permission = 'edge_umbrella_domain_list_config_page'
    default_configuration = CustomStringField(
        label='Default Configuration',
        default=edge_create_internal_ns_configuration.default_configuration,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    default_view = CustomStringField(
        label='Default DNS View',
        default=edge_create_internal_ns_configuration.default_view,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    edge_url = CustomStringField(
        label='Edge URL',
        default=edge_create_internal_ns_configuration.edge_url,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    domain_list_file = CustomStringField(
        label='Domain List File',
        default=edge_create_internal_ns_configuration.domain_list_file,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    client_id = CustomStringField(
        label='Edge Client ID',
        default=edge_create_internal_ns_configuration.client_id,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    clientSecret = CustomStringField(
        label='Edge Client Secret',
        default=edge_create_internal_ns_configuration.clientSecret,
        is_disabled_on_start=False,
        is_disabled_on_error=False,
        required=True,
    )
    submit = CustomSubmitField(label='Save',
                               is_disabled_on_start=False,
                               is_disabled_on_error=False)
예제 #24
0
class GenericFormTemplate(GatewayForm):
    workflow_name = 'cache_example'
    workflow_permission = 'cache_example_page'
    configuration = Configuration(workflow_name=workflow_name,
                                  permissions=workflow_permission,
                                  label='Configuration',
                                  required=True,
                                  coerce=int,
                                  validators=[],
                                  is_disabled_on_start=False,
                                  enable_on_complete=['ip_network', 'submit'],
                                  clear_below_on_change=False)

    ip_network = CustomStringField(label='Network',
                                   validators=[DataRequired()])

    display = PlainHTML("<div id='data_display' />")

    submit = SubmitField(label='Submit')
예제 #25
0
class GenericFormTemplate(GatewayForm):
    workflow_name = 'lease_history_mac'
    workflow_permission = 'lease_history_mac_page'
    
    text = get_resource_text()

    mac_address = CustomStringField(
        label=text['label_mac_address'],
        default='FF:FF:FF:FF:FF:FF',
        validators=[DataRequired(message=text['require_message']), MacAddress()],
        required=True,
        is_disabled_on_start=False
    )

    query_history = CustomSearchButtonField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label=text['label_query'],
        default='Search Objects',
        inputs={'mac_address': 'mac_address'},
        server_side_method=query_history_by_mac_endpoint,
        display_message=True,
        on_complete=['call_output_table'],
        is_disabled_on_start=False
    )

    output_table = TableField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='',
        data_function=raw_table_data,
        table_features={
            'searching': False,
            'ordering': False,
            'info': False,
            'lengthChange': False
        },
        is_disabled_on_start=False
    )
예제 #26
0
class GenericFormTemplate(GatewayForm):
    """ Form to generate HTML and Javascript for the update_alias_record_example workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'update_alias_record_example'
    workflow_permission = 'update_alias_record_example_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        is_disabled_on_start=False,
        on_complete=['call_view'],
        enable_dependencies={'on_complete': ['view']},
        disable_dependencies={'on_change': ['view']},
        clear_dependencies={'on_change': ['view']})

    view = View(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='View',
                required=True,
                one_off=True,
                on_complete=['call_zone', 'call_linked_record_zone'],
                enable_dependencies={'on_complete': ['zone']},
                disable_dependencies={'on_change': ['zone']},
                should_cascade_disable_on_change=True,
                clear_dependencies={'on_change': ['zone']},
                should_cascade_clear_on_change=True)

    zone = Zone(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='Zone',
                required=True,
                enable_dependencies={'on_complete': ['alias_record']},
                disable_dependencies={'on_change': ['alias_record']},
                should_cascade_disable_on_change=True,
                clear_dependencies={'on_change': ['alias_record']},
                should_cascade_clear_on_change=True)

    alias_record = AliasRecord(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Alias Record',
        required=True,
        inputs={
            'configuration': 'configuration',
            'view': 'view',
            'zone': 'zone',
            'alias_record': 'alias_record'
        },
        server_outputs={
            'on_complete': {
                'alias_record_name': 'alias_name',
                'linked_record_zone': 'linked_record_zone',
                'linked_record_name': 'linked_record'
            }
        },
        server_side_output_method=get_alias_records_endpoint,
        enable_dependencies={
            'on_complete':
            ['alias_name', 'linked_record_zone', 'linked_record', 'submit']
        },
        disable_dependencies={
            'on_change':
            ['alias_name', 'linked_record_zone', 'linked_record', 'submit']
        },
        should_cascade_disable_on_change=True,
        clear_dependencies={
            'on_change': ['alias_name', 'linked_record_zone', 'linked_record']
        },
        should_cascade_clear_on_change=True)

    alias_name = CustomStringField(label='New Alias Name', required=True)

    linked_record_zone = Zone(workflow_name=workflow_name,
                              permissions=workflow_permission,
                              label='Linked Record Zone',
                              required=True,
                              inputs={
                                  'configuration': 'configuration',
                                  'view': 'view',
                                  'zone': 'linked_record_zone'
                              },
                              clear_below_on_change=False)

    linked_record = CustomStringField(label='Linked Record', required=True)

    submit = SubmitField(label='Update')
class GenericFormTemplate(GatewayForm):
    # When updating the form, remember to make the corresponding changes to the workflow pages
    workflow_name = 'update_host_record_example'
    workflow_permission = 'update_host_record_example_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        validators=[],
        is_disabled_on_start=False,
        on_complete=['call_view'],
        enable_on_complete=['view']
    )

    view = View(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='View',
        required=True,
        one_off=True,
        on_complete=[],
        enable_on_complete=['parent_zone']
    )

    parent_zone = Zone(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Zone',
        required=True,
        start_initialized=True,
        inputs={'zone': 'parent_zone', 'configuration': 'configuration', 'view': 'view'},
        enable_on_complete=['host_record']
    )

    host_record = HostRecord(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Host Record',
        required=True,
        inputs={
            'configuration': 'configuration',
            'view': 'view',
            'parent_zone': 'parent_zone',
            'host_record': 'host_record'
        },
        on_complete=['server_output_host_record'],
        server_outputs={'name': 'name', 'addresses': 'ip4_address'},
        server_side_output_method=get_host_records_endpoint,
        enable_on_complete=['submit', 'name', 'ip4_address']
    )

    seperator = PlainHTML('<hr>')

    name = CustomStringField(
        label='New Host Name',
        required=True
    )

    ip4_address = CustomStringField(
        label='IP4 Address (multiple IP4 addresses must be seperated by a comma)',
        required=True
    )

    submit = SubmitField(label='Update')
class GenericFormTemplate(GatewayForm):
    """
    Generic form Template

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'Debian_CVE_Analysis'
    workflow_permission = 'Debian_CVE_Analysis_page'
    # configuration = Configuration(
    #     workflow_name=workflow_name,
    #     permissions=workflow_permission,
    #     label='Configuration',
    #     required=True,
    #     coerce=int,
    #     validators=[],
    #     is_disabled_on_start=False,
    #     on_complete=[],
    #     enable_on_complete=['email', 'password', 'ip_address'],
    #     clear_below_on_change=False
    # )

    # email = CustomStringField(
    #     label='Email',
    #     default='*****@*****.**',
    #     validators=[DataRequired(), Email()]
    # )

    ip_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='IP Address',
        required=True,
        #inputs={'configuration': 'configuration', 'address': 'ip_address'},
        result_decorator=None,
        enable_on_complete=[
            'ssh_user', 'password', 'cve', 'submit', 'cve_2', 'rel', "submit2"
        ])

    ssh_user = CustomStringField(
        label='SSH User',
        default='root',
        # validators=[MacAddress()]
    )

    password = PasswordField(label='Password',
                             default='abc',
                             validators=[DataRequired()])

    cve = CustomStringField(label='CVE-XXXX-XXXX',
                            default='CVE-',
                            validators=[DataRequired()])

    # url = StringField(
    #     label='URL',
    #     default='http://www.example.com',
    #     validators=[URL()]
    # )

    # file = FileField(
    #     label='File'
    # )
    #
    # boolean_checked = BooleanField(
    #     label='Use for true or false things',
    #     default='checked'
    # )
    #
    # boolean_unchecked = BooleanField(
    #     label='default for field is unchecked'
    # )
    #
    # date_time = DateTimeField(
    #     label='Date and Time:',
    #     default=datetime.datetime.now(),
    #     format='%Y-%m-%d %H:%M:%S'
    # )

    submit = SubmitField(label='Submit')

    emptyField = HiddenField(label="HiddenField")

    action = SelectField(label='Action Type',
                         choices=[('Search', 'Search'), ('Update', 'Update')])

    cve_2 = CustomStringField(label='CVE-XXXX-XXXX',
                              default='CVE-',
                              validators=[DataRequired()])

    rel = CustomStringField(label='REL',
                            default='',
                            validators=[DataRequired()])

    password2 = PasswordField(label='Admin Password',
                              default='abc',
                              validators=[DataRequired()])

    submit2 = SubmitField(label='Submit')
class GenericFormTemplate(GatewayForm):
    """Form to generate HTML and Javascript for the add_static_ip4_address workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """

    workflow_name = "add_static_ip4_address"
    workflow_permission = "add_static_ip4_address_page"
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Configuration",
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        enable_dependencies={"on_complete": ["ip4_address"]},
        disable_dependencies={"on_change": ["ip4_address"]},
        clear_dependencies={
            "on_change": ["ip4_address", "view", "mac_address", "description"]
        },
    )

    ip4_address = IP4Address(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Address",
        required=True,
        inputs={
            "configuration": "configuration",
            "address": "ip4_address"
        },
        result_decorator=filter_unallocated,
        on_complete=["call_view"],
        clear_below_on_change=False,
        should_cascade_disable_on_change=True,
        enable_dependencies={
            "on_complete": ["view", "mac_address", "description", "submit"]
        },
        disable_dependencies={
            "on_change": ["view", "mac_address", "description", "submit"]
        },
        display_message=True,
    )

    mac_address = CustomStringField(label="MAC Address")

    description = CustomStringField(label="Description")

    view = View(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="View",
        one_off=True,
        on_complete=["call_zone"],
        clear_below_on_change=False,
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True,
        enable_dependencies={"on_complete": ["zone"]},
        disable_dependencies={"on_change": ["zone"]},
        clear_dependencies={"on_change": ["zone"]},
    )

    zone = Zone(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label="Zone",
        clear_below_on_change=False,
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True,
        enable_dependencies={"on_complete": ["hostname"]},
        disable_dependencies={"on_change": ["hostname"]},
        clear_dependencies={"on_change": ["hostname"]},
    )

    hostname = CustomStringField(label="Hostname")

    submit = SubmitField(label="Submit")
예제 #30
0
class GenericFormTemplate(GatewayForm):
    """ Form to generate HTML and Javascript for the update_text_record workflow

    Note:
        When updating the form, remember to make the corresponding changes to the workflow pages
    """
    workflow_name = 'update_text_record'
    workflow_permission = 'update_text_record_page'
    configuration = Configuration(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Configuration',
        required=True,
        coerce=int,
        clear_below_on_change=False,
        is_disabled_on_start=False,
        on_complete=['call_view'],
        enable_dependencies={'on_complete': ['view']},
        disable_dependencies={'on_change': ['view']},
        clear_dependencies={'on_change': ['view']})

    view = View(workflow_name=workflow_name,
                permissions=workflow_permission,
                label='View',
                required=True,
                one_off=True,
                clear_below_on_change=False,
                display_message=True,
                enable_dependencies={'on_complete': ['parent_zone']},
                disable_dependencies={'on_change': ['parent_zone']},
                clear_dependencies={'on_change': ['parent_zone']},
                should_cascade_disable_on_change=True,
                should_cascade_clear_on_change=True)

    parent_zone = Zone(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Zone',
        required=True,
        start_initialized=True,
        display_message=True,
        inputs={
            'zone': 'parent_zone',
            'configuration': 'configuration',
            'view': 'view'
        },
        clear_below_on_change=False,
        enable_dependencies={'on_complete': ['text_record', 'search']},
        disable_dependencies={'on_change': ['text_record', 'search']},
        clear_dependencies={'on_change': ['text_record', 'search']},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True)

    text_record = CustomStringField(label='Text Record')

    search = CustomSearchButtonField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        default='Search',
        inputs={
            'configuration': 'configuration',
            'view': 'view',
            'parent_zone': 'parent_zone',
            'name': 'text_record'
        },
        server_side_method=get_text_records_endpoint,
        display_message=True,
        on_complete=['call_txt_list'],
        enable_dependencies={'on_complete': ['txt_filter', 'txt_list']},
        disable_dependencies={
            'on_change': ['txt_filter', 'txt_list'],
            'on_click': ['txt_filter', 'txt_list']
        },
        clear_dependencies={
            'on_change': ['txt_filter', 'txt_list'],
            'on_click': ['txt_filter', 'txt_list']
        },
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True)

    txt_filter = CustomStringField(label='Filter', is_disabled_on_error=True)

    txt_list = FilteredSelectField(
        workflow_name=workflow_name,
        permissions=workflow_permission,
        label='Text',
        size=12,
        filter_field='txt_filter',
        choices=[(0, '')],
        coerce=int,
        is_disabled_on_error=True,
        on_complete=['call_name_js', 'call_text'],
        inputs={
            'configuration': 'configuration',
            'view': 'view',
            'parent_zone': 'parent_zone',
            'name': 'text_record'
        },
        clear_dependencies={'on_change': ['name', 'text']},
        server_side_method=get_text_records_endpoint,
        enable_dependencies={'on_complete': ['name', 'text', 'submit']},
        disable_dependencies={'on_change': ['name', 'text', 'submit']},
        should_cascade_disable_on_change=True,
        should_cascade_clear_on_change=True)

    plain_1 = PlainHTML('<hr>')

    name = CustomStringField(label='New Name', is_disabled_on_error=True)

    text = CustomStringField(label='New Text',
                             inputs={'text': 'txt_list'},
                             is_disabled_on_error=True)

    submit = CustomSubmitField(label='Update')