Browse Source

Reorder configs_query by time

There is the possibility to change OpenStack config after deployment.
Changes could be applied per role. And in the case of multiple roles
on a node, many changes could pretend to be applied. I.e. if we have
a config for the role 'compute', a config for the role  'cinder' and
a node with role 'cinder+compute' we have to choose one of them.

Previous decision was 'sort it in the lexicographical order', so it
applies 'cinder' then --- 'compute'. It is contra intuitive. The best
option is applying to a node the last related config, to new config
overlaps old ones.

Change-Id: I7db388ca3baeb351adc9fdb70c55b0be50fafe48
Closes-bug: #1671521
Igor Gajsin 2 years ago
parent
commit
8e12d76f86

+ 1
- 1
nailgun/nailgun/objects/openstack_config.py View File

@@ -104,7 +104,7 @@ class OpenstackConfigCollection(NailgunCollection):
104 104
         """
105 105
         configs_query = cls.filter_by(
106 106
             None, cluster_id=cluster.id, is_active=True)
107
-        configs_query = configs_query.order_by(cls.single.model.node_role)
107
+        configs_query = configs_query.order_by(cls.single.model.created_at)
108 108
 
109 109
         node_ids = set(n.id for n in nodes)
110 110
         node_roles = set()

+ 1
- 1
nailgun/nailgun/test/unit/test_stages_task_serialization.py View File

@@ -313,7 +313,7 @@ class TestHooksSerializers(BaseTaskSerializationTest):
313 313
                     'DEFAULT/param_b': {'value': 'value_cinder'}
314 314
                 },
315 315
                 'keystone_config': {
316
-                    'DEFAULT/param_a': {'value': 'value_compute'},
316
+                    'DEFAULT/param_a': {'value': 'value_cinder'},
317 317
                 }
318 318
             }})
319 319
 

Loading…
Cancel
Save