Limit cluster update properties
Magnum only allows the node count of cluster being updated. And in mangum ui, cluster and cluster template are sharing same function to generating the patch json dict, which is causing lots of bugs before. So let's define a set for cluster update allowed properties and use it to restrict the patch json dict. Task: 26699 Story: 2003865 Change-Id: I2f0126fbf2f7396dda504b988ee11659824fcde8
This commit is contained in:
parent
3931063c35
commit
895e5095c3
|
@ -35,6 +35,7 @@ CLUSTER_TEMPLATE_CREATE_ATTRS = cluster_templates.CREATION_ATTRIBUTES
|
|||
CLUSTER_CREATE_ATTRS = clusters.CREATION_ATTRIBUTES
|
||||
CERTIFICATE_CREATE_ATTRS = certificates.CREATION_ATTRIBUTES
|
||||
QUOTA_CREATION_ATTRIBUTES = quotas.CREATION_ATTRIBUTES
|
||||
CLUSTER_UPDATE_ALLOWED_PROPERTIES = set(['/node_count'])
|
||||
|
||||
|
||||
def _cleanup_params(attrs, create, **params):
|
||||
|
@ -138,6 +139,11 @@ def cluster_template_update(request, id, **kwargs):
|
|||
old = magnumclient(request).cluster_templates.get(id).to_dict()
|
||||
old = _cleanup_params(CLUSTER_TEMPLATE_CREATE_ATTRS, False, **old)
|
||||
patch = _create_patches(old, new)
|
||||
# NOTE(flwang): Now Magnum only support updating the node count for
|
||||
# cluster upddate action. So let's simplify it by only passing the
|
||||
# /node_count dict which can avoid many potential bugs.
|
||||
patch = [d for d in patch if d['path']
|
||||
in CLUSTER_UPDATE_ALLOWED_PROPERTIES]
|
||||
return magnumclient(request).cluster_templates.update(id, patch)
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue