Merge "Enable affinity policy to handle NODE_CREATE"
This commit is contained in:
commit
141382b0b0
@ -248,6 +248,8 @@ class AffinityPolicy(base.Policy):
|
||||
count = pd.get('count', 1)
|
||||
elif action.action == consts.CLUSTER_SCALE_OUT:
|
||||
count = action.inputs.get('count', 1)
|
||||
elif action.action == consts.NODE_CREATE:
|
||||
count = 1
|
||||
else: # CLUSTER_RESIZE
|
||||
db_cluster = co.Cluster.get(action.context, cluster_id)
|
||||
su.parse_resize_params(action, db_cluster)
|
||||
|
@ -539,6 +539,43 @@ class TestAffinityPolicy(base.SenlinTestCase):
|
||||
x_action.data)
|
||||
x_action.store.assert_called_once_with(x_action.context)
|
||||
|
||||
@mock.patch.object(cpo.ClusterPolicy, 'get')
|
||||
def test_pre_op_for_node_create(self, mock_cp):
|
||||
x_action = mock.Mock()
|
||||
x_action.data = {}
|
||||
x_action.action = consts.NODE_CREATE
|
||||
x_binding = mock.Mock()
|
||||
mock_cp.return_value = x_binding
|
||||
|
||||
policy_data = {
|
||||
'servergroup_id': 'SERVERGROUP_ID',
|
||||
'inherited_group': False,
|
||||
}
|
||||
policy = ap.AffinityPolicy('test-policy', self.spec)
|
||||
policy.id = 'POLICY_ID'
|
||||
mock_extract = self.patchobject(policy, '_extract_policy_data',
|
||||
return_value=policy_data)
|
||||
|
||||
# do it
|
||||
policy.pre_op('CLUSTER_ID', x_action)
|
||||
|
||||
mock_cp.assert_called_once_with(x_action.context, 'CLUSTER_ID',
|
||||
'POLICY_ID')
|
||||
mock_extract.assert_called_once_with(x_binding.data)
|
||||
self.assertEqual(
|
||||
{
|
||||
'placement': {
|
||||
'count': 1,
|
||||
'placements': [
|
||||
{
|
||||
'servergroup': 'SERVERGROUP_ID'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
x_action.data)
|
||||
x_action.store.assert_called_once_with(x_action.context)
|
||||
|
||||
@mock.patch.object(co.Cluster, 'get')
|
||||
@mock.patch.object(cpo.ClusterPolicy, 'get')
|
||||
def test_pre_op_use_resize_params(self, mock_cp, mock_cluster):
|
||||
|
Loading…
Reference in New Issue
Block a user