The openstack_dashboard.dashboards.project.firewalls.tables ModuleΒΆ

class openstack_dashboard.dashboards.project.firewalls.tables.AddFirewallLink(attrs=None, **kwargs)[source]

Bases: horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'create_firewall'),), 'get_link_url': <function get_link_url at 0x34e6a28>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'icon': 'plus', 'name': 'addfirewall', 'url': 'horizon:project:firewalls:addfirewall', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9750>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal',)
icon = 'plus'
name = 'addfirewall'
policy_rules = (('network', 'create_firewall'),)
url = 'horizon:project:firewalls:addfirewall'
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9750>
class openstack_dashboard.dashboards.project.firewalls.tables.AddPolicyLink(attrs=None, **kwargs)[source]

Bases: horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'create_firewall_policy'),), 'get_link_url': <function get_link_url at 0x34e6a28>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'icon': 'plus', 'name': 'addpolicy', 'url': 'horizon:project:firewalls:addpolicy', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-addpolicy'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdcf250>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-addpolicy')
icon = 'plus'
name = 'addpolicy'
policy_rules = (('network', 'create_firewall_policy'),)
url = 'horizon:project:firewalls:addpolicy'
verbose_name = <django.utils.functional.__proxy__ object at 0xcdcf250>
class openstack_dashboard.dashboards.project.firewalls.tables.AddRouterToFirewallLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

allowed(request, firewall)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'get_firewall'), ('network', 'add_router')), 'get_link_url': <function get_link_url at 0xce6f6e0>, 'ajax': False, 'allowed': <function allowed at 0xce6f758>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'addrouter', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9910>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(firewall)[source]
name = 'addrouter'
policy_rules = (('network', 'get_firewall'), ('network', 'add_router'))
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9910>
class openstack_dashboard.dashboards.project.firewalls.tables.AddRuleLink(attrs=None, **kwargs)[source]

Bases: horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'create_firewall_rule'),), 'get_link_url': <function get_link_url at 0x34e6a28>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'icon': 'plus', 'name': 'addrule', 'url': 'horizon:project:firewalls:addrule', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdcf210>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal',)
icon = 'plus'
name = 'addrule'
policy_rules = (('network', 'create_firewall_rule'),)
url = 'horizon:project:firewalls:addrule'
verbose_name = <django.utils.functional.__proxy__ object at 0xcdcf210>
class openstack_dashboard.dashboards.project.firewalls.tables.DeleteFirewallLink(**kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.DeleteAction

static action_past(count)[source]
static action_present(count)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'handle': <function handle at 0x34ec410>, 'update': <function update at 0x34ec2a8>, 'policy_rules': (('network', 'delete_firewall'),), 'get_success_url': <function get_success_url at 0x34ec320>, 'get_param_name': <function get_param_name at 0x34e67d0>, 'allowed': <function allowed at 0x34e6488>, 'help_text': <django.utils.functional.__proxy__ object at 0x49aeb50>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, '__init__': <function __init__ at 0x34ec488>, 'name': 'deletefirewall', 'action_present': <staticmethod object at 0xcd6ec58>, 'action_past': <staticmethod object at 0xcd6ee88>, 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34ec140>, '_get_action_name': <function _get_action_name at 0x34ec1b8>, '__repr__': <function __repr__ at 0x34e66e0>, 'action': <function action at 0x34ec500>, 'get_default_attrs': <function get_default_attrs at 0x34ec398>, '__doc__': 'A table action used to perform delete operations on table data.\n\n .. attribute:: name\n\n A short name or "slug" representing this action.\n Defaults to \'delete\'\n\n .. method:: action_present\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_present (Deprecated)\n\n A string containing the transitive verb describing the delete action.\n Defaults to \'Delete\'\n\n NOTE: action_present attribute is bad for translations and should be\n avoided. Please use the action_present method instead.\n This form is kept for legacy.\n\n .. method:: action_past\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_past (Deprecated)\n\n A string set to the past tense of action_present.\n Defaults to \'Deleted\'\n\n NOTE: action_past attribute is bad for translations and should be\n avoided. Please use the action_past method instead.\n This form is kept for legacy.\n\n .. attribute:: data_type_singular (Deprecated)\n\n A string used to name the data to be deleted.\n\n .. attribute:: data_type_plural (Deprecated)\n\n Optional. Plural of ``data_type_singular``.\n Defaults to ``data_type_singular`` appended with an \'s\'. Relying on\n the default is bad for translations and should not be done, so it\'s\n absence will raise a DeprecationWarning. It is currently kept as\n optional for legacy code.\n\n NOTE: data_type_singular and data_type_plural attributes are bad for\n translations and should not be used. Please use the action_present and\n action_past methods. This form is kept temporarily for legacy code but\n will be removed.\n ', 'delete': <function delete at 0xce6f2a8>}
delete(request, obj_id)[source]
name = 'deletefirewall'
policy_rules = (('network', 'delete_firewall'),)
class openstack_dashboard.dashboards.project.firewalls.tables.DeletePolicyLink(**kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.DeleteAction

static action_past(count)[source]
static action_present(count)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'handle': <function handle at 0x34ec410>, 'update': <function update at 0x34ec2a8>, 'policy_rules': (('network', 'delete_firewall_policy'),), 'get_success_url': <function get_success_url at 0x34ec320>, 'get_param_name': <function get_param_name at 0x34e67d0>, 'allowed': <function allowed at 0x34e6488>, 'help_text': <django.utils.functional.__proxy__ object at 0x49aeb50>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, '__init__': <function __init__ at 0x34ec488>, 'name': 'deletepolicy', 'action_present': <staticmethod object at 0xcd6ebe8>, 'action_past': <staticmethod object at 0xcd6e3d0>, 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34ec140>, '_get_action_name': <function _get_action_name at 0x34ec1b8>, '__repr__': <function __repr__ at 0x34e66e0>, 'action': <function action at 0x34ec500>, 'get_default_attrs': <function get_default_attrs at 0x34ec398>, '__doc__': 'A table action used to perform delete operations on table data.\n\n .. attribute:: name\n\n A short name or "slug" representing this action.\n Defaults to \'delete\'\n\n .. method:: action_present\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_present (Deprecated)\n\n A string containing the transitive verb describing the delete action.\n Defaults to \'Delete\'\n\n NOTE: action_present attribute is bad for translations and should be\n avoided. Please use the action_present method instead.\n This form is kept for legacy.\n\n .. method:: action_past\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_past (Deprecated)\n\n A string set to the past tense of action_present.\n Defaults to \'Deleted\'\n\n NOTE: action_past attribute is bad for translations and should be\n avoided. Please use the action_past method instead.\n This form is kept for legacy.\n\n .. attribute:: data_type_singular (Deprecated)\n\n A string used to name the data to be deleted.\n\n .. attribute:: data_type_plural (Deprecated)\n\n Optional. Plural of ``data_type_singular``.\n Defaults to ``data_type_singular`` appended with an \'s\'. Relying on\n the default is bad for translations and should not be done, so it\'s\n absence will raise a DeprecationWarning. It is currently kept as\n optional for legacy code.\n\n NOTE: data_type_singular and data_type_plural attributes are bad for\n translations and should not be used. Please use the action_present and\n action_past methods. This form is kept temporarily for legacy code but\n will be removed.\n ', 'delete': <function delete at 0xce6f0c8>}
delete(request, obj_id)[source]
name = 'deletepolicy'
policy_rules = (('network', 'delete_firewall_policy'),)
class openstack_dashboard.dashboards.project.firewalls.tables.DeleteRuleLink(**kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.DeleteAction

static action_past(count)[source]
static action_present(count)[source]
allowed(request, datum=None)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'handle': <function handle at 0x34ec410>, 'update': <function update at 0x34ec2a8>, 'policy_rules': (('network', 'delete_firewall_rule'),), 'get_success_url': <function get_success_url at 0x34ec320>, 'get_param_name': <function get_param_name at 0x34e67d0>, 'allowed': <function allowed at 0xcc747d0>, 'help_text': <django.utils.functional.__proxy__ object at 0x49aeb50>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, '__init__': <function __init__ at 0x34ec488>, 'name': 'deleterule', 'action_present': <staticmethod object at 0xcd6e1d8>, 'action_past': <staticmethod object at 0xcd6eec0>, 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34ec140>, '_get_action_name': <function _get_action_name at 0x34ec1b8>, '__repr__': <function __repr__ at 0x34e66e0>, 'action': <function action at 0x34ec500>, 'get_default_attrs': <function get_default_attrs at 0x34ec398>, '__doc__': 'A table action used to perform delete operations on table data.\n\n .. attribute:: name\n\n A short name or "slug" representing this action.\n Defaults to \'delete\'\n\n .. method:: action_present\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_present (Deprecated)\n\n A string containing the transitive verb describing the delete action.\n Defaults to \'Delete\'\n\n NOTE: action_present attribute is bad for translations and should be\n avoided. Please use the action_present method instead.\n This form is kept for legacy.\n\n .. method:: action_past\n\n Method accepting an integer/long parameter and returning the display\n forms of the name properly pluralised (depending on the integer) and\n translated in a string or tuple/list.\n\n .. attribute:: action_past (Deprecated)\n\n A string set to the past tense of action_present.\n Defaults to \'Deleted\'\n\n NOTE: action_past attribute is bad for translations and should be\n avoided. Please use the action_past method instead.\n This form is kept for legacy.\n\n .. attribute:: data_type_singular (Deprecated)\n\n A string used to name the data to be deleted.\n\n .. attribute:: data_type_plural (Deprecated)\n\n Optional. Plural of ``data_type_singular``.\n Defaults to ``data_type_singular`` appended with an \'s\'. Relying on\n the default is bad for translations and should not be done, so it\'s\n absence will raise a DeprecationWarning. It is currently kept as\n optional for legacy code.\n\n NOTE: data_type_singular and data_type_plural attributes are bad for\n translations and should not be used. Please use the action_present and\n action_past methods. This form is kept temporarily for legacy code but\n will be removed.\n ', 'delete': <function delete at 0xcc74758>}
delete(request, obj_id)[source]
name = 'deleterule'
policy_rules = (('network', 'delete_firewall_rule'),)
class openstack_dashboard.dashboards.project.firewalls.tables.FirewallsTable(request, data=None, needs_form_wrapper=None, **kwargs)[source]

Bases: horizon.tables.base.DataTable

ADMIN_STATE_DISPLAY_CHOICES = (('UP', <django.utils.functional.__proxy__ object at 0xce765d0>), ('DOWN', <django.utils.functional.__proxy__ object at 0xce76610>))
class Meta[source]

Bases: object

name = 'firewallstable'
row_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.UpdateFirewallLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeleteFirewallLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.AddRouterToFirewallLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.RemoveRouterFromFirewallLink'>)
table_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.AddFirewallLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeleteFirewallLink'>, <class 'horizon.tables.actions.NameFilterAction'>)
verbose_name = <django.utils.functional.__proxy__ object at 0xce76d50>
FirewallsTable.STATUS_DISPLAY_CHOICES = (('Active', <django.utils.functional.__proxy__ object at 0xce761d0>), ('Down', <django.utils.functional.__proxy__ object at 0xce76410>), ('Error', <django.utils.functional.__proxy__ object at 0xce76450>), ('Created', <django.utils.functional.__proxy__ object at 0xce76490>), ('Pending_Create', <django.utils.functional.__proxy__ object at 0xce764d0>), ('Pending_Update', <django.utils.functional.__proxy__ object at 0xce76510>), ('Pending_Delete', <django.utils.functional.__proxy__ object at 0xce76550>), ('Inactive', <django.utils.functional.__proxy__ object at 0xce76590>))
FirewallsTable.base_actions = OrderedDict([('addfirewall', <AddFirewallLink: addfirewall>), ('addrouter', <AddRouterToFirewallLink: addrouter>), ('deletefirewall', <DeleteFirewallLink: deletefirewall>), ('filter', <NameFilterAction: filter>), ('removerouter', <RemoveRouterFromFirewallLink: removerouter>), ('updatefirewall', <UpdateFirewallLink: updatefirewall>)])
FirewallsTable.base_columns = OrderedDict([('name', <Column: name>), ('description', <Column: description>), ('firewall_policy_id', <Column: firewall_policy_id>), ('router_ids', <Column: router_ids>), ('status', <Column: status>), ('admin_state', <Column: admin_state>)])
class openstack_dashboard.dashboards.project.firewalls.tables.InsertRuleToPolicyLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'get_firewall_policy'), ('network', 'insert_rule')), 'get_link_url': <function get_link_url at 0xce6f578>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'insertrule', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9a50>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(policy)[source]
name = 'insertrule'
policy_rules = (('network', 'get_firewall_policy'), ('network', 'insert_rule'))
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9a50>
class openstack_dashboard.dashboards.project.firewalls.tables.PoliciesTable(request, data=None, needs_form_wrapper=None, **kwargs)[source]

Bases: horizon.tables.base.DataTable

class Meta[source]

Bases: object

name = 'policiestable'
row_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.UpdatePolicyLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.InsertRuleToPolicyLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.RemoveRuleFromPolicyLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeletePolicyLink'>)
table_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.AddPolicyLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeletePolicyLink'>, <class 'horizon.tables.actions.NameFilterAction'>)
verbose_name = <django.utils.functional.__proxy__ object at 0xce75c50>
PoliciesTable.base_actions = OrderedDict([('addpolicy', <AddPolicyLink: addpolicy>), ('deletepolicy', <DeletePolicyLink: deletepolicy>), ('filter', <NameFilterAction: filter>), ('insertrule', <InsertRuleToPolicyLink: insertrule>), ('removerule', <RemoveRuleFromPolicyLink: removerule>), ('updatepolicy', <UpdatePolicyLink: updatepolicy>)])
PoliciesTable.base_columns = OrderedDict([('name', <Column: name>), ('description', <Column: description>), ('firewall_rules', <Column: firewall_rules>), ('shared', <Column: shared>), ('audited', <Column: audited>)])
class openstack_dashboard.dashboards.project.firewalls.tables.RemoveRouterFromFirewallLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

allowed(request, firewall)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'get_firewall'), ('network', 'remove_router')), 'get_link_url': <function get_link_url at 0xce6f7d0>, 'ajax': False, 'allowed': <function allowed at 0xce6f848>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'removerouter', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9810>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(firewall)[source]
name = 'removerouter'
policy_rules = (('network', 'get_firewall'), ('network', 'remove_router'))
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9810>
class openstack_dashboard.dashboards.project.firewalls.tables.RemoveRuleFromPolicyLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

action_type = 'danger'
allowed(request, policy)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'get_firewall_policy'), ('network', 'remove_rule')), 'get_link_url': <function get_link_url at 0xce6f5f0>, 'ajax': False, 'allowed': <function allowed at 0xce6f668>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'removerule', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x34e66e0>, 'action_type': 'danger', 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd98d0>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal',)
get_link_url(policy)[source]
name = 'removerule'
policy_rules = (('network', 'get_firewall_policy'), ('network', 'remove_rule'))
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd98d0>
class openstack_dashboard.dashboards.project.firewalls.tables.RulesTable(request, data=None, needs_form_wrapper=None, **kwargs)[source]

Bases: horizon.tables.base.DataTable

ACTION_DISPLAY_CHOICES = (('Allow', <django.utils.functional.__proxy__ object at 0xce70490>), ('Deny', <django.utils.functional.__proxy__ object at 0xce700d0>), ('Reject', <django.utils.functional.__proxy__ object at 0xce70450>))
class Meta[source]

Bases: object

name = 'rulestable'
row_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.UpdateRuleLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeleteRuleLink'>)
table_actions = (<class 'openstack_dashboard.dashboards.project.firewalls.tables.AddRuleLink'>, <class 'openstack_dashboard.dashboards.project.firewalls.tables.DeleteRuleLink'>, <class 'horizon.tables.actions.NameFilterAction'>)
verbose_name = <django.utils.functional.__proxy__ object at 0xce750d0>
RulesTable.base_actions = OrderedDict([('addrule', <AddRuleLink: addrule>), ('deleterule', <DeleteRuleLink: deleterule>), ('filter', <NameFilterAction: filter>), ('updaterule', <UpdateRuleLink: updaterule>)])
RulesTable.base_columns = OrderedDict([('name', <Column: name>), ('description', <Column: description>), ('protocol', <Column: protocol>), ('source_ip_address', <Column: source_ip_address>), ('source_port', <Column: source_port>), ('destination_ip_address', <Column: destination_ip_address>), ('destination_port', <Column: destination_port>), ('action', <Column: action>), ('shared', <Column: shared>), ('enabled', <Column: enabled>), ('firewall_policy_id', <Column: firewall_policy_id>)])
class openstack_dashboard.dashboards.project.firewalls.tables.UpdateFirewallLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

allowed(request, firewall)[source]
base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'update_firewall'),), 'get_link_url': <function get_link_url at 0xce6f488>, 'ajax': False, 'allowed': <function allowed at 0xce6f500>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'updatefirewall', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9850>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(firewall)[source]
name = 'updatefirewall'
policy_rules = (('network', 'update_firewall'),)
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9850>
class openstack_dashboard.dashboards.project.firewalls.tables.UpdatePolicyLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'update_firewall_policy'),), 'get_link_url': <function get_link_url at 0xce6f410>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'updatepolicy', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9310>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(policy)[source]
name = 'updatepolicy'
policy_rules = (('network', 'update_firewall_policy'),)
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9310>
class openstack_dashboard.dashboards.project.firewalls.tables.UpdateRuleLink(attrs=None, **kwargs)[source]

Bases: openstack_dashboard.policy.PolicyTargetMixin, horizon.tables.actions.LinkAction

base_options = {'__module__': 'openstack_dashboard.dashboards.project.firewalls.tables', 'render': <function render at 0x34e6938>, 'update': <function update at 0x34e6578>, 'policy_rules': (('network', 'update_firewall_rule'),), 'get_link_url': <function get_link_url at 0xce6f398>, 'ajax': False, 'allowed': <function allowed at 0x34e6488>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'update': <function update at 0x34e6578>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e6758>, '_allowed': <function _allowed at 0x34e6500>, '__repr__': <function __repr__ at 0x34e66e0>, 'allowed': <function allowed at 0x34e6488>, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x34e6320>}, 'get_default_attrs': <function get_default_attrs at 0x34e6668>, '__init__': <function __init__ at 0x34e6848>, 'name': 'updaterule', 'data_type_matched': <function data_type_matched at 0x34e6398>, 'get_default_classes': <function get_default_classes at 0x34e65f0>, 'get_policy_target': <function get_policy_target at 0x34e6410>, 'associate_with_table': <function associate_with_table at 0x34e69b0>, '_allowed': <function _allowed at 0x34e6500>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x34e66e0>, 'get_ajax_update_url': <function get_ajax_update_url at 0x34e68c0>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xcdd9990>, '__doc__': 'A table action which is simply a link rather than a form POST.\n\n .. attribute:: name\n\n Required. The short name or "slug" representing this\n action. This name should not be changed at runtime.\n\n .. attribute:: verbose_name\n\n A string which will be rendered as the link text. (Required)\n\n .. attribute:: url\n\n A string or a callable which resolves to a url to be used as the link\n target. You must either define the ``url`` attribute or override\n the ``get_link_url`` method on the class.\n\n .. attribute:: allowed_data_types\n\n A list that contains the allowed data types of the action. If the\n datum\'s type is in this list, the action will be shown on the row\n for the datum.\n\n Defaults to be an empty list (``[]``). When set to empty, the action\n will accept any kind of data.\n '}
classes = ('ajax-modal', 'btn-update')
get_link_url(rule)[source]
name = 'updaterule'
policy_rules = (('network', 'update_firewall_rule'),)
verbose_name = <django.utils.functional.__proxy__ object at 0xcdd9990>
openstack_dashboard.dashboards.project.firewalls.tables.get_policy_link(datum)[source]
openstack_dashboard.dashboards.project.firewalls.tables.get_policy_name(datum)[source]
openstack_dashboard.dashboards.project.firewalls.tables.get_routers_name(firewall)[source]
openstack_dashboard.dashboards.project.firewalls.tables.get_rules_name(datum)[source]

Previous topic

The openstack_dashboard.dashboards.project.firewalls.panel Module

Next topic

The openstack_dashboard.dashboards.project.firewalls.tabs Module

This Page