Merge "Fix create mongodb cluster error in multi-network env"

This commit is contained in:
Zuul 2018-03-08 11:32:52 +00:00 committed by Gerrit Code Review
commit f218974296
2 changed files with 21 additions and 4 deletions

View File

@ -94,7 +94,7 @@ class MongoDbCluster(models.Cluster):
volume_size = instances[0].get('volume_size', None)
volume_type = instances[0].get('volume_type', None)
nics = [instance.get('nics', None) for instance in instances]
nics = instances[0].get('nics', None)
azs = [instance.get('availability_zone', None)
for instance in instances]
@ -135,7 +135,7 @@ class MongoDbCluster(models.Cluster):
datastore_version,
volume_size, None,
availability_zone=azs[i],
nics=nics[i],
nics=nics,
configuration_id=None,
cluster_config=member_config,
volume_type=volume_type,
@ -152,7 +152,7 @@ class MongoDbCluster(models.Cluster):
datastore_version,
volume_size, None,
availability_zone=None,
nics=None,
nics=nics,
configuration_id=None,
cluster_config=configsvr_config,
volume_type=volume_type,
@ -169,7 +169,7 @@ class MongoDbCluster(models.Cluster):
datastore_version,
volume_size, None,
availability_zone=None,
nics=None,
nics=nics,
configuration_id=None,
cluster_config=mongos_config,
volume_type=volume_type,

View File

@ -213,6 +213,23 @@ class MongoDBClusterTest(trove_testtools.TestCase):
mock_db_create.return_value.id)
self.assertEqual(7, mock_ins_create.call_count)
@mock.patch.object(task_api, 'load')
@mock.patch.object(models.DBCluster, 'create')
@mock.patch.object(models, 'validate_instance_nics')
@mock.patch.object(QUOTAS, 'check_quotas')
@mock.patch.object(models, 'validate_instance_flavors')
@mock.patch.object(inst_models.Instance, 'create')
def test_create_with_correct_nics(self, mock_ins_create, *args):
self.cluster.create(mock.Mock(),
self.cluster_name,
self.datastore,
self.datastore_version,
self.instances, {}, None, None)
nics = [{"net-id": "foo-bar"}]
nics_count = [kw.get('nics') for _, kw in
mock_ins_create.call_args_list].count(nics)
self.assertEqual(7, nics_count)
@mock.patch.object(task_api, 'load')
@mock.patch.object(inst_models.Instance, 'create')
@mock.patch.object(models.DBCluster, 'create')