group-based-policy-ui/gbpui/panels/application_policy/tables.py

214 lines
7.8 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext_lazy as _
from horizon import tables
from gbpui import client
class AddAppPolicyLink(tables.LinkAction):
name = "addpolicy_rule_set"
verbose_name = _("Create Policy Rule Set")
url = "horizon:project:application_policy:addpolicy_rule_set"
classes = ("ajax-modal", "btn-addpolicy_rule_set",)
class UpdateAppPolicyLink(tables.LinkAction):
name = "updatepolicy_rule_set"
verbose_name = _("Edit")
classes = ("ajax-modal", 'edit_policy_rule_set')
def get_link_url(self, policy_rule_set):
urlpath = "horizon:project:application_policy:updatepolicy_rule_set"
base_url = reverse(urlpath, kwargs={
'policy_rule_set_id': policy_rule_set.id})
return base_url
class DeletePolicyRuleSetLink(tables.DeleteAction):
name = "deletepolicyruleset"
action_present = _("Delete")
action_past = _("Scheduled deletion of %(data_type)s")
data_type_singular = _("Policy Rule Set")
data_type_plural = _("Policy Rule Sets")
def action(self, request, object_id):
client.policy_rule_set_delete(request, object_id)
class AddPolicyRuleLink(tables.LinkAction):
name = "addpolicyrules"
verbose_name = _("Create Policy Rule")
url = "horizon:project:application_policy:addpolicyrule"
classes = ("ajax-modal", "btn-addpolicyrule",)
class UpdatePolicyRuleLink(tables.LinkAction):
name = "updatepolicyrule"
verbose_name = _("Edit")
classes = ("ajax-modal", "btn-update",)
def get_link_url(self, policy_rule):
urlstring = "horizon:project:application_policy:updatepolicyrule"
base_url = reverse(urlstring,
kwargs={'policyrule_id': policy_rule.id})
return base_url
class DeletePolicyRuleLink(tables.DeleteAction):
name = "deletepolicyrule"
action_present = _("Delete")
action_past = _("Scheduled deletion of %(data_type)s")
data_type_singular = _("Policy Rule")
data_type_plural = _("Policy Rules")
def action(self, request, object_id):
client.policyrule_delete(request, object_id)
class AddPolicyClassifierLink(tables.LinkAction):
name = "addpolicyclassifiers"
verbose_name = _("Create Policy Classifier")
url = "horizon:project:application_policy:addpolicyclassifier"
classes = ("ajax-modal", "btn-addpolicyclassifier",)
class UpdatePolicyClassifierLink(tables.LinkAction):
name = "updatepolicyclassifier"
verbose_name = _("Edit")
classes = ("ajax-modal", "btn-update",)
def get_link_url(self, policy_classifier):
base_url = reverse(
"horizon:project:application_policy:updatepolicyclassifier",
kwargs={'policyclassifier_id': policy_classifier.id})
return base_url
class DeletePolicyClassifierLink(tables.DeleteAction):
name = "deletepolicyclassifier"
action_present = _("Delete")
action_past = _("Scheduled deletion of %(data_type)s")
data_type_singular = _("Policy Classifier")
data_type_plural = _("Policy Classifiers")
def action(self, request, object_id):
client.policyclassifier_delete(request, object_id)
class AddPolicyActionLink(tables.LinkAction):
name = "addpolicyactions"
verbose_name = _("Create Policy Action")
url = "horizon:project:application_policy:addpolicyaction"
classes = ("ajax-modal", "btn-addpolicyaction",)
class UpdatePolicyActionLink(tables.LinkAction):
name = "updatepolicyaction"
verbose_name = _("Edit")
classes = ("ajax-modal", "btn-update",)
def get_link_url(self, policy_action):
urlstring = "horizon:project:application_policy:updatepolicyaction"
base_url = reverse(urlstring,
kwargs={'policyaction_id': policy_action.id})
return base_url
class DeletePolicyActionLink(tables.DeleteAction):
name = "deletepolicyaction"
action_present = _("Delete")
action_past = _("Scheduled deletion of %(data_type)s")
data_type_singular = _("Policy Action")
data_type_plural = _("Policy Actions")
def action(self, request, object_id):
client.policyaction_delete(request, object_id)
class ApplicationPoliciesTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:project:application_policy:policy_rule_set_details")
description = tables.Column("description",
verbose_name=_("Description"))
policy_rules = tables.Column("policy_rules",
sortable=False,
verbose_name=_("Policy Rules"))
class Meta(object):
name = "application_policies_table"
verbose_name = _("Policy Rule Set")
table_actions = (AddAppPolicyLink, DeletePolicyRuleSetLink)
row_actions = (UpdateAppPolicyLink, DeletePolicyRuleSetLink)
class PolicyRulesTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:project:application_policy:policyruledetails")
description = tables.Column("description",
verbose_name=_("Description"))
enabled = tables.Column("enabled",
verbose_name=_("Enabled"))
policy_classifier = tables.Column("policy_classifier_id",
verbose_name=_("Policy Classifier"))
policy_actions = tables.Column("policy_actions",
verbose_name=_("Policy Actions"))
class Meta(object):
name = "policyrulestable"
verbose_name = _("Policy Rules")
table_actions = (AddPolicyRuleLink, DeletePolicyRuleLink)
row_actions = (UpdatePolicyRuleLink, DeletePolicyRuleLink)
class PolicyClassifiersTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:project:application_policy:policyclassifierdetails")
description = tables.Column("description",
verbose_name=_("Description"))
protocol = tables.Column("protocol",
verbose_name=_("Protocol"))
port_range = tables.Column("port_range",
verbose_name=_("Port Range"))
direction = tables.Column("direction",
verbose_name=_("Direction"))
class Meta(object):
name = "policyclassifierstable"
verbose_name = _("Policy Classifiers")
table_actions = (AddPolicyClassifierLink, DeletePolicyClassifierLink)
row_actions = (UpdatePolicyClassifierLink, DeletePolicyClassifierLink)
class PolicyActionsTable(tables.DataTable):
name = tables.Column("name",
verbose_name=_("Name"),
link="horizon:project:application_policy:policyactiondetails")
description = tables.Column("description",
verbose_name=_("Description"))
action_type = tables.Column("action_type",
verbose_name=_("Type"))
action_value = tables.Column("action_value",
verbose_name=_("Value"))
class Meta(object):
name = "policyactionstable"
verbose_name = _("Policy Actions")
table_actions = (AddPolicyActionLink, DeletePolicyActionLink)
row_actions = (UpdatePolicyActionLink, DeletePolicyActionLink)