Remove concurrency constraint for functional tests
Remove concurrency constraint for functional tests, and fix the issues found after enable concurrency. Change-Id: I7d27009ed9f7cec9f28c727d836a0efc1c75ef41
This commit is contained in:
parent
d7d3557894
commit
5866a182cc
|
@ -31,13 +31,11 @@ class TrustMiddleware(wsgi.Middleware):
|
|||
"""
|
||||
rpcc = rpc.EngineClient()
|
||||
|
||||
cred_exists = False
|
||||
res = rpcc.credential_get(ctx)
|
||||
if res:
|
||||
trust_id = res.get('trust', None)
|
||||
if trust_id:
|
||||
return trust_id
|
||||
cred_exists = True
|
||||
|
||||
params = {
|
||||
'auth_url': ctx.auth_url,
|
||||
|
@ -59,11 +57,8 @@ class TrustMiddleware(wsgi.Middleware):
|
|||
# Create a trust if no existing one found
|
||||
trust = kc.trust_create(ctx.user, admin_id, ctx.project, ctx.roles)
|
||||
|
||||
# update cache
|
||||
if cred_exists:
|
||||
rpcc.credential_update(ctx, trust.id)
|
||||
else:
|
||||
rpcc.credential_create(ctx, trust.id)
|
||||
# If credential not exists, create it, otherwise update it.
|
||||
rpcc.credential_create(ctx, trust.id)
|
||||
|
||||
return trust.id
|
||||
|
||||
|
|
|
@ -258,6 +258,10 @@ def cred_delete(context, user, project):
|
|||
return IMPL.cred_delete(context, user, project)
|
||||
|
||||
|
||||
def cred_create_update(context, values):
|
||||
return IMPL.cred_create_update(context, values)
|
||||
|
||||
|
||||
# Events
|
||||
def event_create(context, values):
|
||||
return IMPL.event_create(context, values)
|
||||
|
|
|
@ -690,6 +690,16 @@ def cred_delete(context, user, project):
|
|||
session.delete(cred)
|
||||
|
||||
|
||||
def cred_create_update(context, values):
|
||||
cred = cred_get(context, values.get('user'), values.get('project'))
|
||||
if not cred:
|
||||
return cred_create(context, values)
|
||||
else:
|
||||
user = values.pop('user')
|
||||
project = values.pop('project')
|
||||
return cred_update(context, user, project, values)
|
||||
|
||||
|
||||
# Events
|
||||
def _delete_event_rows(context, cluster_id, limit):
|
||||
# MySQL does not support LIMIT in subqueries,
|
||||
|
|
|
@ -202,7 +202,7 @@ class EngineService(service.Service):
|
|||
}
|
||||
}
|
||||
}
|
||||
db_api.cred_create(context, values)
|
||||
db_api.cred_create_update(context, values)
|
||||
return {'cred': cred}
|
||||
|
||||
@request_context
|
||||
|
|
|
@ -78,8 +78,7 @@ class TestClusterMembership(base.SenlinFunctionalTest):
|
|||
node2 = test_api.get_node(self.client, node2['id'])
|
||||
self.assertEqual(cluster['id'], node1['cluster_id'])
|
||||
self.assertEqual(cluster['id'], node2['cluster_id'])
|
||||
self.assertEqual(2, node1['index'])
|
||||
self.assertEqual(3, node2['index'])
|
||||
self.assertEqual([2, 3], sorted([node1['index'], node2['index']]))
|
||||
|
||||
# Create one more orphan node and add it to cluster
|
||||
node3 = test_api.create_node(self.client,
|
||||
|
|
|
@ -77,7 +77,7 @@ class TestTrustMiddleware(base.SenlinTestCase):
|
|||
uid='FAKE_ID', passwd='FAKE_PASS')
|
||||
mock_keystone.trust_get_by_trustor.assert_called_once_with(
|
||||
self.context.user, 'FAKE_ADMIN_ID', self.context.project)
|
||||
x_rpc.credential_update.assert_called_once_with(
|
||||
x_rpc.credential_create.assert_called_once_with(
|
||||
self.context, 'FAKE_TRUST_ID')
|
||||
|
||||
@mock.patch.object(context, "get_service_context")
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import copy
|
||||
|
||||
from senlin.db.sqlalchemy import api as db_api
|
||||
from senlin.tests.unit.common import base
|
||||
|
@ -83,3 +84,22 @@ class DBAPICredentialTest(base.SenlinTestCase):
|
|||
db_api.cred_create(self.ctx, values)
|
||||
cred = db_api.cred_delete(self.ctx, USER_ID, PROJECT_ID)
|
||||
self.assertIsNone(cred)
|
||||
|
||||
def test_cred_create_update(self):
|
||||
cred = db_api.cred_create_update(self.ctx, values)
|
||||
self.assertIsNotNone(cred)
|
||||
self.assertEqual(USER_ID, cred.user)
|
||||
self.assertEqual(PROJECT_ID, cred.project)
|
||||
self.assertEqual(
|
||||
{'openstack': {'trust': '01234567890123456789012345678901'}},
|
||||
cred.cred)
|
||||
self.assertEqual({}, cred.data)
|
||||
|
||||
new_values = copy.deepcopy(values)
|
||||
new_values['cred']['openstack']['trust'] = 'newtrust'
|
||||
cred = db_api.cred_create_update(self.ctx, new_values)
|
||||
self.assertEqual(USER_ID, cred.user)
|
||||
self.assertEqual(PROJECT_ID, cred.project)
|
||||
self.assertEqual(
|
||||
{'openstack': {'trust': 'newtrust'}},
|
||||
cred.cred)
|
||||
|
|
6
tox.ini
6
tox.ini
|
@ -27,9 +27,13 @@ setenv = VIRTUAL_ENV={envdir}
|
|||
PYTHONHASHSEED=0
|
||||
OS_TEST_PATH=senlin/tests/functional
|
||||
passenv = OS_USERNAME OS_PASSWORD OS_TENANT_NAME OS_USER_DOMAIN_NAME OS_PROJECT_DOMAIN_NAME OS_REGION_NAME OS_AUTH_URL
|
||||
# By default ostestr will set concurrency
|
||||
# to ncpu, to specify something else use
|
||||
# the concurrency=<n> option.
|
||||
# call ie: 'tox -efunctional -- --concurrency=4'
|
||||
commands =
|
||||
find . -type f -name "*.pyc" -delete
|
||||
ostestr --slowest --concurrency 1 {posargs}
|
||||
ostestr --slowest {posargs}
|
||||
|
||||
[testenv:debug]
|
||||
commands = oslo_debug_helper {posargs}
|
||||
|
|
Loading…
Reference in New Issue