Support REDIRECT_PREFIX for openstack client
Story: 2003700 Change-Id: I28cfe60eea46df3f416106f708269a70e97ee69a
This commit is contained in:
		@@ -147,6 +147,7 @@ L7POLICY_ROWS = (
 | 
				
			|||||||
    'updated_at',
 | 
					    'updated_at',
 | 
				
			||||||
    'redirect_pool_id',
 | 
					    'redirect_pool_id',
 | 
				
			||||||
    'redirect_url',
 | 
					    'redirect_url',
 | 
				
			||||||
 | 
					    'redirect_prefix',
 | 
				
			||||||
    'action',
 | 
					    'action',
 | 
				
			||||||
    'position',
 | 
					    'position',
 | 
				
			||||||
    'id',
 | 
					    'id',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,8 @@ from octaviaclient.osc.v2 import constants as const
 | 
				
			|||||||
from octaviaclient.osc.v2 import utils as v2_utils
 | 
					from octaviaclient.osc.v2 import utils as v2_utils
 | 
				
			||||||
from octaviaclient.osc.v2 import validate
 | 
					from octaviaclient.osc.v2 import validate
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ACTION_CHOICES = ['REDIRECT_TO_URL', 'REDIRECT_TO_POOL', 'REJECT']
 | 
					ACTION_CHOICES = ['REDIRECT_TO_URL', 'REDIRECT_TO_POOL',
 | 
				
			||||||
 | 
					                  'REDIRECT_PREFIX', 'REJECT']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CreateL7Policy(command.ShowOne):
 | 
					class CreateL7Policy(command.ShowOne):
 | 
				
			||||||
@@ -67,6 +68,11 @@ class CreateL7Policy(command.ShowOne):
 | 
				
			|||||||
            metavar='<url>',
 | 
					            metavar='<url>',
 | 
				
			||||||
            help="Set the URL to redirect requests to."
 | 
					            help="Set the URL to redirect requests to."
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					        redirect_group.add_argument(
 | 
				
			||||||
 | 
					            '--redirect-prefix',
 | 
				
			||||||
 | 
					            metavar='<url>',
 | 
				
			||||||
 | 
					            help="Set the URL Prefix to redirect requests to."
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        parser.add_argument(
 | 
					        parser.add_argument(
 | 
				
			||||||
            '--position',
 | 
					            '--position',
 | 
				
			||||||
@@ -220,7 +226,11 @@ class SetL7Policy(command.Command):
 | 
				
			|||||||
            metavar='<url>',
 | 
					            metavar='<url>',
 | 
				
			||||||
            help="Set the URL to redirect requests to."
 | 
					            help="Set the URL to redirect requests to."
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					        redirect_group.add_argument(
 | 
				
			||||||
 | 
					            '--redirect-prefix',
 | 
				
			||||||
 | 
					            metavar='<url>',
 | 
				
			||||||
 | 
					            help="Set the URL Prefix to redirect requests to."
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
        parser.add_argument(
 | 
					        parser.add_argument(
 | 
				
			||||||
            '--position',
 | 
					            '--position',
 | 
				
			||||||
            metavar='<position>',
 | 
					            metavar='<position>',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -297,6 +297,7 @@ def get_l7policy_attrs(client_manager, parsed_args):
 | 
				
			|||||||
        'name': ('name', str),
 | 
					        'name': ('name', str),
 | 
				
			||||||
        'description': ('description', str),
 | 
					        'description': ('description', str),
 | 
				
			||||||
        'redirect_url': ('redirect_url', str),
 | 
					        'redirect_url': ('redirect_url', str),
 | 
				
			||||||
 | 
					        'redirect_prefix': ('redirect_prefix', str),
 | 
				
			||||||
        'l7policy': (
 | 
					        'l7policy': (
 | 
				
			||||||
            'l7policy_id',
 | 
					            'l7policy_id',
 | 
				
			||||||
            'l7policies',
 | 
					            'l7policies',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,9 @@ def check_l7policy_attrs(attrs):
 | 
				
			|||||||
    elif attrs['action'] == 'REDIRECT_TO_URL':
 | 
					    elif attrs['action'] == 'REDIRECT_TO_URL':
 | 
				
			||||||
        if 'redirect_url' not in attrs:
 | 
					        if 'redirect_url' not in attrs:
 | 
				
			||||||
            msg = 'Missing argument: --redirect-url'
 | 
					            msg = 'Missing argument: --redirect-url'
 | 
				
			||||||
 | 
					    elif attrs['action'] == 'REDIRECT_PREFIX':
 | 
				
			||||||
 | 
					        if 'redirect_prefix' not in attrs:
 | 
				
			||||||
 | 
					            msg = 'Missing argument: --redirect-prefix'
 | 
				
			||||||
    if msg is not None:
 | 
					    if msg is not None:
 | 
				
			||||||
        raise exceptions.CommandError(msg)
 | 
					        raise exceptions.CommandError(msg)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -48,6 +48,19 @@ class TestValidations(utils.TestCommand):
 | 
				
			|||||||
            exceptions.CommandError,
 | 
					            exceptions.CommandError,
 | 
				
			||||||
            validate.check_l7policy_attrs, attrs_dict)
 | 
					            validate.check_l7policy_attrs, attrs_dict)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        attrs_dict = {
 | 
				
			||||||
 | 
					            "action": "redirect_prefix".upper(),
 | 
				
			||||||
 | 
					            "redirect_prefix": "prefix",
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            validate.check_l7policy_attrs(attrs_dict)
 | 
				
			||||||
 | 
					        except exceptions.CommandError as e:
 | 
				
			||||||
 | 
					            self.fail("%s raised unexpectedly" % e)
 | 
				
			||||||
 | 
					        attrs_dict.pop("redirect_prefix")
 | 
				
			||||||
 | 
					        self.assertRaises(
 | 
				
			||||||
 | 
					            exceptions.CommandError,
 | 
				
			||||||
 | 
					            validate.check_l7policy_attrs, attrs_dict)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_check_l7rule_attrs(self):
 | 
					    def test_check_l7rule_attrs(self):
 | 
				
			||||||
        for i in ("cookie", "header"):
 | 
					        for i in ("cookie", "header"):
 | 
				
			||||||
            attrs_dict = {
 | 
					            attrs_dict = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					features:
 | 
				
			||||||
 | 
					  - Add REDIRECT_PREFIX action for L7 Policy in l7policy create,
 | 
				
			||||||
 | 
					    and set command
 | 
				
			||||||
		Reference in New Issue
	
	Block a user