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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'create_firewall'),), 'get_link_url': <function get_link_url at 0x40f96e0>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'icon': 'plus', 'name': 'addfirewall', 'url': 'horizon:project:firewalls:addfirewall', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xad48d10>, '__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 0xad48d10>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'create_firewall_policy'),), 'get_link_url': <function get_link_url at 0x40f96e0>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'icon': 'plus', 'name': 'addpolicy', 'url': 'horizon:project:firewalls:addpolicy', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-addpolicy'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xad48bd0>, '__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 0xad48bd0>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'get_firewall'), ('network', 'add_router')), 'get_link_url': <function get_link_url at 0xd22c668>, 'ajax': False, 'allowed': <function allowed at 0xd22c5f0>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'addrouter', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xc055910>, '__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 0xc055910>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'create_firewall_rule'),), 'get_link_url': <function get_link_url at 0x40f96e0>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'icon': 'plus', 'name': 'addrule', 'url': 'horizon:project:firewalls:addrule', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xad487d0>, '__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 0xad487d0>
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 0x40fb0c8>, 'update': <function update at 0x40f9ed8>, 'policy_rules': (('network', 'delete_firewall'),), 'get_success_url': <function get_success_url at 0x40f9f50>, 'get_param_name': <function get_param_name at 0x40f9488>, 'allowed': <function allowed at 0x40f9140>, 'help_text': <django.utils.functional.__proxy__ object at 0x40f57d0>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, '__init__': <function __init__ at 0x40fb140>, 'name': 'deletefirewall', 'action_present': <staticmethod object at 0xcbfb750>, 'action_past': <staticmethod object at 0xcf6fef8>, 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f9d70>, '_get_action_name': <function _get_action_name at 0x40f9de8>, '__repr__': <function __repr__ at 0x40f9398>, 'action': <function action at 0x40fb1b8>, 'get_default_attrs': <function get_default_attrs at 0x40fb050>, '__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 0xd30ecf8>}
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 0x40fb0c8>, 'update': <function update at 0x40f9ed8>, 'policy_rules': (('network', 'delete_firewall_policy'),), 'get_success_url': <function get_success_url at 0x40f9f50>, 'get_param_name': <function get_param_name at 0x40f9488>, 'allowed': <function allowed at 0x40f9140>, 'help_text': <django.utils.functional.__proxy__ object at 0x40f57d0>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, '__init__': <function __init__ at 0x40fb140>, 'name': 'deletepolicy', 'action_present': <staticmethod object at 0xd655f30>, 'action_past': <staticmethod object at 0xd655e88>, 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f9d70>, '_get_action_name': <function _get_action_name at 0x40f9de8>, '__repr__': <function __repr__ at 0x40f9398>, 'action': <function action at 0x40fb1b8>, 'get_default_attrs': <function get_default_attrs at 0x40fb050>, '__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 0xd30e9b0>}
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 0x40fb0c8>, 'update': <function update at 0x40f9ed8>, 'policy_rules': (('network', 'delete_firewall_rule'),), 'get_success_url': <function get_success_url at 0x40f9f50>, 'get_param_name': <function get_param_name at 0x40f9488>, 'allowed': <function allowed at 0xd079c08>, 'help_text': <django.utils.functional.__proxy__ object at 0x40f57d0>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, '__init__': <function __init__ at 0x40fb140>, 'name': 'deleterule', 'action_present': <staticmethod object at 0xce061d8>, 'action_past': <staticmethod object at 0xd655ef8>, 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f9d70>, '_get_action_name': <function _get_action_name at 0x40f9de8>, '__repr__': <function __repr__ at 0x40f9398>, 'action': <function action at 0x40fb1b8>, 'get_default_attrs': <function get_default_attrs at 0x40fb050>, '__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 0xd079de8>}
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 0xa196650>), ('DOWN', <django.utils.functional.__proxy__ object at 0xa196510>))
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 0xa1962d0>
FirewallsTable.STATUS_DISPLAY_CHOICES = (('Active', <django.utils.functional.__proxy__ object at 0x7ef0050>), ('Down', <django.utils.functional.__proxy__ object at 0xa196b10>), ('Error', <django.utils.functional.__proxy__ object at 0xa196710>), ('Created', <django.utils.functional.__proxy__ object at 0xa196d90>), ('Pending_Create', <django.utils.functional.__proxy__ object at 0xa196bd0>), ('Pending_Update', <django.utils.functional.__proxy__ object at 0xa196290>), ('Pending_Delete', <django.utils.functional.__proxy__ object at 0xa196a90>), ('Inactive', <django.utils.functional.__proxy__ object at 0xa196410>))
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'get_firewall_policy'), ('network', 'insert_rule')), 'get_link_url': <function get_link_url at 0xd30e7d0>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'insertrule', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xc080e90>, '__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 0xc080e90>
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 0xcb99c10>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'get_firewall'), ('network', 'remove_router')), 'get_link_url': <function get_link_url at 0xd22c578>, 'ajax': False, 'allowed': <function allowed at 0xd22c500>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'removerouter', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xc055390>, '__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 0xc055390>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'get_firewall_policy'), ('network', 'remove_rule')), 'get_link_url': <function get_link_url at 0xd22c758>, 'ajax': False, 'allowed': <function allowed at 0xd22c6e0>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'removerule', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal',), '__repr__': <function __repr__ at 0x40f9398>, 'action_type': 'danger', 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xc055d10>, '__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 0xc055d10>
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 0xc055e90>), ('Deny', <django.utils.functional.__proxy__ object at 0xc055150>), ('Reject', <django.utils.functional.__proxy__ object at 0xc055e50>))
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 0xc055550>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'update_firewall'),), 'get_link_url': <function get_link_url at 0xd30eaa0>, 'ajax': False, 'allowed': <function allowed at 0xd30ea28>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'updatefirewall', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xb2b5d90>, '__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 0xb2b5d90>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'update_firewall_policy'),), 'get_link_url': <function get_link_url at 0xd30eb18>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'updatepolicy', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xc055e10>, '__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 0xc055e10>
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 0x40f95f0>, 'update': <function update at 0x40f9230>, 'policy_rules': (('network', 'update_firewall_rule'),), 'get_link_url': <function get_link_url at 0xd30ec08>, 'ajax': False, 'allowed': <function allowed at 0x40f9140>, 'base_options': {'__module__': 'horizon.tables.actions', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'update': <function update at 0x40f9230>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9410>, '_allowed': <function _allowed at 0x40f91b8>, '__repr__': <function __repr__ at 0x40f9398>, 'allowed': <function allowed at 0x40f9140>, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, 'base_options': {...}, '__doc__': 'Common base class for all ``Action`` classes.', '__init__': <function __init__ at 0x40caf50>}, 'get_default_attrs': <function get_default_attrs at 0x40f9320>, '__init__': <function __init__ at 0x40f9500>, 'name': 'updaterule', 'data_type_matched': <function data_type_matched at 0x40f9050>, 'get_default_classes': <function get_default_classes at 0x40f92a8>, 'get_policy_target': <function get_policy_target at 0x40f90c8>, 'associate_with_table': <function associate_with_table at 0x40f9668>, '_allowed': <function _allowed at 0x40f91b8>, 'classes': ('ajax-modal', 'btn-update'), '__repr__': <function __repr__ at 0x40f9398>, 'get_ajax_update_url': <function get_ajax_update_url at 0x40f9578>, 'verbose_name': <django.utils.functional.__proxy__ object at 0xad48250>, '__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 0xad48250>
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