Index: /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/loadbalancing/slb/policy/__init__.py
===================================================================
--- /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/loadbalancing/slb/policy/__init__.py	(revision 38779)
+++ /branches/rel_apv_10_7/usr/click/webui/htdocs/new/src/apv/models/loadbalancing/slb/policy/__init__.py	(working copy)
@@ -87,46 +87,53 @@
             field_list_all = self._model._meta.get_config_list_colums_all()
             src_name = ""
             match_key = "?src_name"
+            dst_name = ""
+            match_key2 = "?dst_name"
             if filter_list and "src" in filter_list and filter_list["src"][0] and "service_name" in filter_list["src"][0]:
                 src_name = filter_list["src"][0]["service_name"]
                 match_key = '=' + src_name
+            if filter_list and "dst" in filter_list and filter_list["dst"][0] and "group_name" in filter_list["dst"][0]:
+                dst_name = filter_list["dst"][0]["group_name"]
+                match_key2 = '=' + dst_name
             self.cli.set_enable()
             cmd_output = self.cli.cmd(self._shared_cmd)
             result = cli_parse(cmd_output, [
-                          EasyParser('slb policy default', [match_key, '?dst_name']),
-                          EasyParser('slb policy backup', [match_key, '?dst_name']),
-                          
-                          EasyParser('slb policy qos cookie', ['?name', match_key, '?dst_name', '?cookie_str', '?precedence']),
-                          EasyParser('slb policy rcookie', ['?name', match_key, '?dst_name', '?precedence']),
-                          EasyParser('slb policy icookie', ['?name', match_key, '?dst_name', '?precedence']),
-                          EasyParser('slb policy persistent cookie', ['?name', match_key, '?dst_name', '?cookie_name', '?precedence']),
-                          
-                          EasyParser('slb policy header', ['?name', match_key, '?dst_name', '?header_name', '?header_pattern', '?precedence']),
-                          EasyParser('slb policy regex', ['?name', match_key, '?dst_name', '?regex', '?precedence']),
-                          EasyParser('slb policy persistent url', ['?name', match_key, '?dst_name', '?url_tag', '?precedence']),
-                          EasyParser('slb policy hashurl', ['?name', match_key, '?dst_name']),
-                          EasyParser('slb policy qos hostname', ['?name', match_key, '?dst_name', '?host_name', '?precedence']),
-                          EasyParser('slb policy qos url', ['?name', match_key, '?dst_name', '?qos_string', '?precedence']),
-                          EasyParser('slb policy qos body', ['?name', match_key, '?dst_name', '?prefix', '?delimiter', '?flag', '?precedence']),
-                          
-                          EasyParser('slb policy qos clientport', ['?name', match_key, '?dst_name', '?network_ip', '?netmask_prefix', '?low_port', '?high_port', '?precedence']),
-                          EasyParser('slb policy qos network', ['?name', match_key, '?dst_name', '?network_ip', '?netmask_prefix', '?precedence']),
-            
-                          EasyParser('slb policy redirect', ['?name', match_key, '?dst_name', '?redirect_from_host']),
-                          EasyParser('slb policy filetype', ['?name', match_key, '?dst_name', '?filetype']),
-                          EasyParser('slb policy radsid', ['?name', match_key, '?dst_name']),
-                          EasyParser('slb policy raduname', ['?name', match_key, '?dst_name']),
-                          EasyParser('slb policy dnssec', ['?name', match_key, '?dst_name']),
-                          EasyParser('slb policy qos diameter ', ['?name', match_key, '?dst_name', '?string', '?precedence']),
-                          EasyParser('slb policy qos diameterappid', ['?name', match_key, '?dst_name', '?app_id', '?precedence']),
-                          EasyParser('slb policy qos dnsdomain', ['?name', match_key, '?dst_name', '?string', '?precedence']),
-                          EasyParser('slb policy qos dnsqtype', ['?name', match_key, '?dst_name', '?record_type', '?precedence']),
-                          EasyParser('slb policy doh', [match_key, '?dst_name']),
+                          EasyParser('slb policy default', [match_key, match_key2]),
+                          EasyParser('slb policy backup', [match_key, match_key2]),
+
+                          EasyParser('slb policy qos cookie', ['?name', match_key, match_key2, '?cookie_str', '?precedence']),
+                          EasyParser('slb policy rcookie', ['?name', match_key, match_key2, '?precedence']),
+                          EasyParser('slb policy icookie', ['?name', match_key, match_key2, '?precedence']),
+                          EasyParser('slb policy persistent cookie', ['?name', match_key, match_key2, '?cookie_name', '?precedence']),
+
+                          EasyParser('slb policy header', ['?name', match_key, match_key2, '?header_name', '?header_pattern', '?precedence']),
+                          EasyParser('slb policy regex', ['?name', match_key, match_key2, '?regex', '?precedence']),
+                          EasyParser('slb policy persistent url', ['?name', match_key, match_key2, '?url_tag', '?precedence']),
+                          EasyParser('slb policy hashurl', ['?name', match_key, match_key2]),
+                          EasyParser('slb policy qos hostname', ['?name', match_key, match_key2, '?host_name', '?precedence']),
+                          EasyParser('slb policy qos url', ['?name', match_key, match_key2, '?qos_string', '?precedence']),
+                          EasyParser('slb policy qos body', ['?name', match_key, match_key2, '?prefix', '?delimiter', '?flag', '?precedence']),
+
+                          EasyParser('slb policy qos clientport', ['?name', match_key, match_key2, '?network_ip', '?netmask_prefix', '?low_port', '?high_port', '?precedence']),
+                          EasyParser('slb policy qos network', ['?name', match_key, match_key2, '?network_ip', '?netmask_prefix', '?precedence']),
+
+                          EasyParser('slb policy redirect', ['?name', match_key, match_key2, '?redirect_from_host']),
+                          EasyParser('slb policy filetype', ['?name', match_key, match_key2, '?filetype']),
+                          EasyParser('slb policy radsid', ['?name', match_key, match_key2]),
+                          EasyParser('slb policy raduname', ['?name', match_key, match_key2]),
+                          EasyParser('slb policy dnssec', ['?name', match_key, match_key2]),
+                          EasyParser('slb policy qos diameter ', ['?name', match_key, match_key2, '?string', '?precedence']),
+                          EasyParser('slb policy qos diameterappid', ['?name', match_key, match_key2, '?app_id', '?precedence']),
+                          EasyParser('slb policy qos dnsdomain', ['?name', match_key, match_key2, '?string', '?precedence']),
+                          EasyParser('slb policy qos dnsqtype', ['?name', match_key, match_key2, '?record_type', '?precedence']),
+                          EasyParser('slb policy doh', [match_key, match_key2]),
             ])
             res = []
             for each in result[0]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
                     "dst": normalize_policy_src_dst_values(each['dst_name'], 'dst'),
@@ -136,6 +143,8 @@
             for each in result[1]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
                     "dst": normalize_policy_src_dst_values(each['dst_name'], 'dst'),
@@ -146,6 +155,8 @@
             for each in result[2]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 try:
                     (cookie_name, cookie_value) = each['cookie_str'].split('=')
                     each['cookie_name'] = cookie_name
@@ -165,6 +176,8 @@
             for each in result[3]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "precedence": each['precedence'],
@@ -175,6 +188,8 @@
             for each in result[4]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "precedence": each['precedence'],
@@ -185,6 +200,8 @@
             for each in result[5]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "cookie_name": each['cookie_name'],
@@ -197,6 +214,8 @@
             for each in result[6]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "header_name": each['header_name'],
@@ -209,6 +228,8 @@
             for each in result[7]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "regex": each['regex'],
@@ -220,6 +241,8 @@
             for each in result[8]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "url_tag": each['url_tag'],
@@ -231,6 +254,8 @@
             for each in result[9]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
@@ -240,6 +265,8 @@
             for each in result[10]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "host_name": each['host_name'],
@@ -251,6 +278,8 @@
             for each in result[11]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "qos_string": each['qos_string'],
@@ -262,6 +291,8 @@
             for each in result[12]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "prefix": each['prefix'],
@@ -276,6 +307,8 @@
             for each in result[13]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 each['port_range'] = {'low':each['low_port'], 'high':each['high_port']}
                 if ':' in each['network_ip']:
                     each['network_ip'] = {'ipv6':each['network_ip']}
@@ -296,6 +329,8 @@
             for each in result[14]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 if ':' in each['network_ip']:
                     each['network_ip'] = {'ipv6':each['network_ip']}
                     each['netmask_prefix'] = {'prefix':each['netmask_prefix']}
@@ -315,6 +350,8 @@
             for each in result[15]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "redirect_from_host": each['redirect_from_host'],
@@ -325,6 +362,8 @@
             for each in result[16]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "filetype": each['filetype'],
@@ -335,6 +374,8 @@
             for each in result[17]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
@@ -344,6 +385,8 @@
             for each in result[18]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
@@ -353,6 +396,8 @@
             for each in result[19]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "src": normalize_policy_src_dst_values(src_name, 'src'),
@@ -362,6 +407,8 @@
             for each in result[20]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "string": each['string'],
@@ -373,6 +420,8 @@
             for each in result[21]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "app_id": each['app_id'],
@@ -384,6 +433,8 @@
             for each in result[22]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "string": each['string'],
@@ -395,6 +446,8 @@
             for each in result[23]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 res.append({
                     "name": each['name'],
                     "record_type": each['record_type'],
@@ -406,6 +459,8 @@
             for each in result[24]:
                 if "src_name" in each:
                     src_name = each['src_name']
+                if dst_name:
+                    each['dst_name'] = dst_name
                 each['name'] = ('DoH Policy of %s') % src_name
                 res.append({
                     "name": each['name'],
@@ -413,7 +468,7 @@
                     "dst": normalize_policy_src_dst_values(each['dst_name'], 'dst'),
                     "type": 'doh',
                 })
-            
+
             rst = []
             for policy_info in res:
                 if filter_list:
