Cleanup plugin links upon a cluster reset
Currently plugin links survive cluster reset and there is no way to get rid of them. Cluster reset seems like a reasonable place to get rid of them. Change-Id: Id88c54b34a162881c6662ee1acb6090d4fee3fae Closes-Bug: #1578700
This commit is contained in:
parent
058d9e42a1
commit
8e73412a2d
|
@ -42,3 +42,7 @@ class ClusterPluginLinkCollection(NailgunCollection):
|
|||
def create_with_cluster_id(cls, data, cluster_id):
|
||||
data['cluster_id'] = cluster_id
|
||||
return cls.create(data)
|
||||
|
||||
@classmethod
|
||||
def delete_by_cluster_id(cls, cluster_id):
|
||||
cls.filter_by(None, cluster_id=cluster_id).delete()
|
||||
|
|
|
@ -919,6 +919,9 @@ class ResetEnvironmentTaskManager(TaskManager):
|
|||
for node in nodes:
|
||||
objects.Node.reset_vms_created_state(node)
|
||||
|
||||
objects.ClusterPluginLinkCollection.delete_by_cluster_id(
|
||||
self.cluster.id)
|
||||
|
||||
db().commit()
|
||||
|
||||
supertask = Task(
|
||||
|
|
|
@ -85,6 +85,41 @@ class TestResetEnvironment(BaseIntegrationTest):
|
|||
1
|
||||
)
|
||||
|
||||
@fake_tasks(
|
||||
override_state={"progress": 100, "status": "ready"},
|
||||
recover_nodes=False,
|
||||
ia_nodes_count=1
|
||||
)
|
||||
def test_environment_reset_cleans_up_plugin_links(self):
|
||||
cluster_db = self.env.create(
|
||||
cluster_kwargs={},
|
||||
nodes_kwargs=[
|
||||
{"name": "First",
|
||||
"pending_addition": True},
|
||||
{"name": "Second",
|
||||
"roles": ["compute"],
|
||||
"pending_addition": True}
|
||||
]
|
||||
)
|
||||
self.app.post(
|
||||
reverse('ClusterPluginLinkCollectionHandler',
|
||||
kwargs={'cluster_id': cluster_db.id}),
|
||||
jsonutils.dumps({
|
||||
'title': 'simple link',
|
||||
'description': 'simple description',
|
||||
'url': 'http://example.com',
|
||||
}),
|
||||
headers=self.default_headers
|
||||
)
|
||||
self.env.launch_deployment()
|
||||
self.env.reset_environment()
|
||||
response = self.app.get(
|
||||
reverse('ClusterPluginLinkCollectionHandler',
|
||||
kwargs={'cluster_id': cluster_db.id}),
|
||||
headers=self.default_headers)
|
||||
self.assertEqual(response.status_int, 200)
|
||||
self.assertEqual(response.json, [])
|
||||
|
||||
@fake_tasks(
|
||||
override_state={"progress": 100, "status": "ready"},
|
||||
recover_nodes=False,
|
||||
|
|
Loading…
Reference in New Issue