Replaces pipelines with flag for auth strategy
Forcing deployers to modify a paste config file to change auth strategies is very fragile. This simplifies things by keying pipeline construction off of a single flag. Note that this will require a small change to devstack. Change-Id: I49728c356266e6084ecafb6c59542390137f89e9
This commit is contained in:
		@@ -40,9 +40,6 @@ from nova.auth import signer
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
auth_opts = [
 | 
					auth_opts = [
 | 
				
			||||||
    cfg.BoolOpt('use_deprecated_auth',
 | 
					 | 
				
			||||||
                default=False,
 | 
					 | 
				
			||||||
                help='This flag must be set to use old style auth'),
 | 
					 | 
				
			||||||
    cfg.ListOpt('allowed_roles',
 | 
					    cfg.ListOpt('allowed_roles',
 | 
				
			||||||
                default=[
 | 
					                default=[
 | 
				
			||||||
                  'cloudadmin',
 | 
					                  'cloudadmin',
 | 
				
			||||||
@@ -830,7 +827,7 @@ class AuthManager(object):
 | 
				
			|||||||
        rc = open(FLAGS.credentials_template).read()
 | 
					        rc = open(FLAGS.credentials_template).read()
 | 
				
			||||||
        # NOTE(vish): Deprecated auth uses an access key, no auth uses a
 | 
					        # NOTE(vish): Deprecated auth uses an access key, no auth uses a
 | 
				
			||||||
        #             the user_id in place of it.
 | 
					        #             the user_id in place of it.
 | 
				
			||||||
        if FLAGS.use_deprecated_auth:
 | 
					        if FLAGS.auth_strategy == 'deprecated':
 | 
				
			||||||
            access = user.access
 | 
					            access = user.access
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            access = user.id
 | 
					            access = user.id
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -462,6 +462,10 @@ global_opts = [
 | 
				
			|||||||
    cfg.StrOpt('default_access_ip_network_name',
 | 
					    cfg.StrOpt('default_access_ip_network_name',
 | 
				
			||||||
               default=None,
 | 
					               default=None,
 | 
				
			||||||
               help='Name of network to use to set access ips for instances'),
 | 
					               help='Name of network to use to set access ips for instances'),
 | 
				
			||||||
 | 
					    cfg.StrOpt('auth_strategy',
 | 
				
			||||||
 | 
					               default='noauth',
 | 
				
			||||||
 | 
					               help='The strategy to use for auth. Supports noauth, keystone, '
 | 
				
			||||||
 | 
					                    'and deprecated.'),
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FLAGS.register_opts(global_opts)
 | 
					FLAGS.register_opts(global_opts)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -155,7 +155,7 @@ class _AuthManagerBaseTestCase(test.TestCase):
 | 
				
			|||||||
                        '/services/Cloud'))
 | 
					                        '/services/Cloud'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def test_can_get_credentials(self):
 | 
					    def test_can_get_credentials(self):
 | 
				
			||||||
        self.flags(use_deprecated_auth=True)
 | 
					        self.flags(auth_strategy='deprecated')
 | 
				
			||||||
        st = {'access': 'access', 'secret': 'secret'}
 | 
					        st = {'access': 'access', 'secret': 'secret'}
 | 
				
			||||||
        with user_and_project_generator(self.manager, user_state=st) as (u, p):
 | 
					        with user_and_project_generator(self.manager, user_state=st) as (u, p):
 | 
				
			||||||
            credentials = self.manager.get_environment_rc(u, p)
 | 
					            credentials = self.manager.get_environment_rc(u, p)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user