def setUp(self):
     conf = {'keystone_relay_path': '/both/v2.0',
             'keystone_relay_token_paths': '/both/v2.0/tokens /both/v2.0/token_by',
             'keystone_one_url': 'http://192.168.2.100:5001',
             'keystone_other_url': 'http://192.168.2.200:5001',
             'dispatcher_base_url': 'http://192.168.2.1:10000',
             'region_name': 'RegionOne'}
     self.k = filter_factory(conf)(DummyApp())
 def setUp(self):
     conf = {
         'keystone_relay_path': '/both/v2.0',
         'keystone_relay_token_paths':
         '/both/v2.0/tokens /both/v2.0/token_by',
         'keystone_one_url': 'http://192.168.2.100:5001',
         'keystone_other_url': 'http://192.168.2.200:5001',
         'dispatcher_base_url': 'http://192.168.2.1:10000',
         'region_name': 'RegionOne'
     }
     self.k = filter_factory(conf)(DummyApp())
 def test_pass_through(self):
     """ relay to keystone, not auth request """
     app = DummyApp()
     conf = {'keystone_relay_path': '/both/v2.0',
             'keystone_relay_token_paths': '/both/v2.0/tokens /both/v2.0/token_by',
             'keystone_one_url': 'http://127.0.0.1:5001',
             'keystone_other_url': 'http://127.0.0.1:15001',
             'dispatcher_base_url': 'http://127.0.0.1:10000',
             'region_name': 'RegionOne'}
     k = filter_factory(conf)(app)
     resp = Request.blank('/auth/v1.0', headers={'X-Auth-Token': 't'}).get_response(k)
     self.assertEqual(json.loads(resp.body), {'data': 'None'})
     resp = Request.blank('/both/v2.0/dummy_tokens', headers={'X-Auth-Token': 't'}).get_response(k)
     self.assertEqual(keystone0_srv.env['PATH_INFO'], '/v2.0/dummy_tokens')
 def test_auth_token(self):    
     """ relay to keystone, auth request """
     app = DummyApp()
     result = {'access': {'token': 
                          {'expires': '2012-01-09T19:11:27.058939', 
                           'id': '7af4f2ba-96e2-481f-87cc-85eb030c8b52__@@__0acae2a7-aea7-4c83-8b0d-13c2e74fe67b', 
                           'tenant': {'id': '2', 'name': 'test'}}, 
                          'serviceCatalog': 
                          [{'endpoints': 
                            [{'name': 'swift', 
                              'adminURL': 'http://127.0.0.1:10000/both/v1.0/AUTH_test', 
                              'region': 'RegionOne', 
                              'type': 'object-store', 
                              'internalURL': 'http://127.0.0.1:10000/both/v1.0/AUTH_test', 
                              'publicURL': 'http://127.0.0.1:10000/both/v1.0/AUTH_test'}]}], 
                          'user': {'id': '3', 'roles': [{'id': '2', 'name': 'Member'}], 
                                   'name': 'tester'}}}
     conf = {'keystone_relay_path': '/both/v2.0',
             'keystone_relay_token_paths': '/both/v2.0/tokens /both/v2.0/token_by',
             'keystone_one_url': 'http://127.0.0.1:5001',
             'keystone_other_url': 'http://127.0.0.1:15001',
             'dispatcher_base_url': 'http://127.0.0.1:10000',
             'region_name': 'RegionOne'}
     k = filter_factory(conf)(app)
     resp = Request.blank('/both/v2.0/tokens',
                          method='POST',
                          headers={'Content-Type': 'application/json'},
                          body=json.dumps({'auth': {'passwordCredentials': 
                                                    {'username': '******', 'password': '******'}, 
                                                    'tenantId': ''}})).get_response(k)
     self.assertEqual(json.loads(resp.body), result)
     resp = Request.blank('/both/v2.0/tokens',
                          method='POST',
                          headers={'Content-Type': 'application/json'},
                          body=json.dumps({'auth': {'token': {'id': 't__@@__v'}, 'tenantId': ''}})).get_response(k)
     self.assertEqual(json.loads(resp.body), result)
     resp = Request.blank('/both/v2.0/tokens',
                          method='POST',
                          headers={'Content-Type': 'application/json'},
                          body=json.dumps({'auth': {'token': {'id': 't'}, 'tenantId': ''}})).get_response(k)
     self.assertEqual(json.loads(resp.body), {'data': 'None'})
 def test_pass_through(self):
     """ relay to keystone, not auth request """
     app = DummyApp()
     conf = {
         'keystone_relay_path': '/both/v2.0',
         'keystone_relay_token_paths':
         '/both/v2.0/tokens /both/v2.0/token_by',
         'keystone_one_url': 'http://127.0.0.1:5001',
         'keystone_other_url': 'http://127.0.0.1:15001',
         'dispatcher_base_url': 'http://127.0.0.1:10000',
         'region_name': 'RegionOne'
     }
     k = filter_factory(conf)(app)
     resp = Request.blank('/auth/v1.0', headers={
         'X-Auth-Token': 't'
     }).get_response(k)
     self.assertEqual(json.loads(resp.body), {'data': 'None'})
     resp = Request.blank('/both/v2.0/dummy_tokens',
                          headers={
                              'X-Auth-Token': 't'
                          }).get_response(k)
     self.assertEqual(keystone0_srv.env['PATH_INFO'], '/v2.0/dummy_tokens')
 def test_auth_token(self):
     """ relay to keystone, auth request """
     app = DummyApp()
     result = {
         'access': {
             'token': {
                 'expires': '2012-01-09T19:11:27.058939',
                 'id':
                 '7af4f2ba-96e2-481f-87cc-85eb030c8b52__@@__0acae2a7-aea7-4c83-8b0d-13c2e74fe67b',
                 'tenant': {
                     'id': '2',
                     'name': 'test'
                 }
             },
             'serviceCatalog': [{
                 'endpoints': [{
                     'name':
                     'swift',
                     'adminURL':
                     'http://127.0.0.1:10000/both/v1.0/AUTH_test',
                     'region':
                     'RegionOne',
                     'type':
                     'object-store',
                     'internalURL':
                     'http://127.0.0.1:10000/both/v1.0/AUTH_test',
                     'publicURL':
                     'http://127.0.0.1:10000/both/v1.0/AUTH_test'
                 }]
             }],
             'user': {
                 'id': '3',
                 'roles': [{
                     'id': '2',
                     'name': 'Member'
                 }],
                 'name': 'tester'
             }
         }
     }
     conf = {
         'keystone_relay_path': '/both/v2.0',
         'keystone_relay_token_paths':
         '/both/v2.0/tokens /both/v2.0/token_by',
         'keystone_one_url': 'http://127.0.0.1:5001',
         'keystone_other_url': 'http://127.0.0.1:15001',
         'dispatcher_base_url': 'http://127.0.0.1:10000',
         'region_name': 'RegionOne'
     }
     k = filter_factory(conf)(app)
     resp = Request.blank('/both/v2.0/tokens',
                          method='POST',
                          headers={
                              'Content-Type': 'application/json'
                          },
                          body=json.dumps({
                              'auth': {
                                  'passwordCredentials': {
                                      'username': '******',
                                      'password': '******'
                                  },
                                  'tenantId': ''
                              }
                          })).get_response(k)
     self.assertEqual(json.loads(resp.body), result)
     resp = Request.blank('/both/v2.0/tokens',
                          method='POST',
                          headers={
                              'Content-Type': 'application/json'
                          },
                          body=json.dumps({
                              'auth': {
                                  'token': {
                                      'id': 't__@@__v'
                                  },
                                  'tenantId': ''
                              }
                          })).get_response(k)
     self.assertEqual(json.loads(resp.body), result)
     resp = Request.blank(
         '/both/v2.0/tokens',
         method='POST',
         headers={
             'Content-Type': 'application/json'
         },
         body=json.dumps({'auth': {
             'token': {
                 'id': 't'
             },
             'tenantId': ''
         }})).get_response(k)
     self.assertEqual(json.loads(resp.body), {'data': 'None'})