コード例 #1
0
 def populate_policy_rules_choices(self, request, context):
     try:
         rules = client.policyrule_list(request)
         for r in rules:
             r.set_id_as_name_if_empty()
         rules = sorted(rules, key=lambda rule: rule.name)
         rule_list = [(rule.id, rule.name) for rule in rules]
     except Exception as e:
         rule_list = []
         exceptions.handle(
             request,
             _('Unable to retrieve rules (%(error)s).') % {'error': str(e)})
     return rule_list
コード例 #2
0
    def get_policyrulestable_data(self):
        try:
            policy_rules = client.policyrule_list(self.tab_group.request)
            policy_rules = [gfilters.update_policyrule_attributes(
                self.request, item) for item in policy_rules]
        except Exception:
            policy_rules = []
            exceptions.handle(self.tab_group.request,
                              _('Unable to retrieve policy-rule list.'))

            for rule in policy_rules:
                rule.set_id_as_name_if_empty()

        return policy_rules
コード例 #3
0
 def populate_policy_rules_choices(self, request, context):
     try:
         rules = client.policyrule_list(request)
         for r in rules:
             r.set_id_as_name_if_empty()
         rules = sorted(rules,
                        key=lambda rule: rule.name)
         rule_list = [(rule.id, rule.name) for rule in rules]
     except Exception as e:
         rule_list = []
         exceptions.handle(request,
                           _('Unable to retrieve rules (%(error)s).') % {
                               'error': str(e)})
     return rule_list
コード例 #4
0
 def __init__(self, request, *args, **kwargs):
     super(UpdatePolicyRuleSetForm, self).__init__(request, *args, **kwargs)
     rules = []
     try:
         items = client.policyrule_list(request)
         rules = [(p.id, p.name) for p in items]
         policy_rule_set = client.policy_rule_set_get(request, self.initial["policy_rule_set_id"])
         if policy_rule_set:
             self.fields["name"].initial = policy_rule_set.name
             self.fields["description"].initial = policy_rule_set.description
             self.fields["shared"].initial = policy_rule_set.shared
             existing = [item for item in policy_rule_set.policy_rules]
             self.fields["rules"].initial = existing
     except Exception:
         exceptions.handle(request, _("Unable to retrieve policy rules"))
     self.fields["rules"].choices = rules
コード例 #5
0
 def __init__(self, request, *args, **kwargs):
     super(UpdatePolicyRuleSetForm, self).__init__(request, *args, **kwargs)
     rules = []
     try:
         items = client.policyrule_list(request)
         rules = [(p.id, p.name) for p in items]
         policy_rule_set = client.policy_rule_set_get(
             request, self.initial['policy_rule_set_id'])
         if policy_rule_set:
             self.fields['name'].initial = policy_rule_set.name
             self.fields[
                 'description'].initial = policy_rule_set.description
             existing = [item for item in policy_rule_set.policy_rules]
             self.fields['rules'].initial = existing
     except Exception:
         exceptions.handle(request, _('Unable to retrieve policy rules'))
     self.fields['rules'].choices = rules
コード例 #6
0
 def get_context_data(self, request):
     cid = self.tab_group.kwargs['policy_rule_set_id']
     try:
         policy_rule_set = client.policy_rule_set_get(request, cid)
         rules = client.policyrule_list(
             request,
             tenant_id=request.user.tenant_id,
             policy_rule_set_id=policy_rule_set.id)
         rules = [
             item for item in rules
             if item.id in policy_rule_set.policy_rules
         ]
         rules_with_details = []
         for rule in rules:
             r = {}
             r['name'] = rule.name
             r['id'] = rule.id
             action_list = []
             for aid in rule.policy_actions:
                 action = client.policyaction_get(request, aid)
                 a = {'id': action.id}
                 if action.action_value:
                     if action.action_type == 'redirect':
                         scspec = client.get_servicechain_spec(
                             request, action.action_value)
                         a['name'] = "Redirect:%s" % scspec.name
                     else:
                         values = (str(action.action_type),
                                   str(action.action_value))
                         name = "%s:%s" % values
                         a['name'] = name
                 else:
                     a['name'] = str(action.action_type)
                 action_list.append(a)
             r['actions'] = action_list
             r['classifier'] = client.policyclassifier_get(
                 request, rule.policy_classifier_id)
             rules_with_details.append(r)
     except Exception as e:
         msg = _('Unable to retrieve policy_rule_set details.') % (str(e))
         exceptions.handle(request, msg, redirect=self.failure_url)
     return {
         'policy_rule_set': policy_rule_set,
         'rules_with_details': rules_with_details
     }
コード例 #7
0
 def __init__(self, request, *args, **kwargs):
     super(UpdatePolicyRuleSetForm, self).__init__(request, *args, **kwargs)
     rules = []
     try:
         items = client.policyrule_list(request,
             tenant_id=request.user.tenant_id)
         rules = [(p.id, p.name) for p in items]
         policy_rule_set = client.policy_rule_set_get(
             request, self.initial['policy_rule_set_id'])
         if policy_rule_set:
             self.fields['name'].initial = policy_rule_set.name
             self.fields[
                 'description'].initial = policy_rule_set.description
             self.fields['shared'].initial = policy_rule_set.shared
             existing = [item for item in policy_rule_set.policy_rules]
             self.fields['policy_rules'].initial = existing
     except Exception:
         exceptions.handle(request, _('Unable to retrieve policy rules'))
     self.fields['policy_rules'].choices = rules
コード例 #8
0
 def get_context_data(self, request):
     cid = self.tab_group.kwargs['policy_rule_set_id']
     try:
         policy_rule_set = client.policy_rule_set_get(request, cid)
         rules = client.policyrule_list(
             request, tenant_id=request.user.tenant_id,
             policy_rule_set_id=policy_rule_set.id)
         rules = [
             item for item in rules if item.id in
             policy_rule_set.policy_rules]
         rules_with_details = []
         for rule in rules:
             r = {}
             r['name'] = rule.name
             r['id'] = rule.id
             action_list = []
             for aid in rule.policy_actions:
                 action = client.policyaction_get(request, aid)
                 a = {'id': action.id}
                 if action.action_value:
                     if action.action_type == 'redirect':
                         scspec = client.get_servicechain_spec(request,
                                action.action_value)
                         a['name'] = "Redirect:%s" % scspec.name
                     else:
                         values = (str(action.action_type),
                                 str(action.action_value))
                         name = "%s:%s" % values
                         a['name'] = name
                 else:
                     a['name'] = str(action.action_type)
                 action_list.append(a)
             r['actions'] = action_list
             r['classifier'] = client.policyclassifier_get(
                 request, rule.policy_classifier_id)
             rules_with_details.append(r)
     except Exception as e:
         msg = _('Unable to retrieve policy_rule_set details.') % (str(e))
         exceptions.handle(request, msg, redirect=self.failure_url)
     return {'policy_rule_set': policy_rule_set,
             'rules_with_details': rules_with_details}