Merge "Delete underlying resources when deleting function version"

This commit is contained in:
Zuul 2018-05-25 10:25:13 +00:00 committed by Gerrit Code Review
commit 6f2e510fea
2 changed files with 14 additions and 3 deletions

View File

@ -235,6 +235,10 @@ class FunctionVersionsController(rest.RestController):
'The function versioin is still associated with webhook.' 'The function versioin is still associated with webhook.'
) )
# Delete resources for function version
self.engine_client.delete_function(function_id, version=version)
etcd_util.delete_function(function_id, version=version)
self.storage_provider.delete(ctx.projectid, function_id, None, self.storage_provider.delete(ctx.projectid, function_id, None,
version=version) version=version)

View File

@ -121,16 +121,23 @@ class TestFunctionVersionController(base.APITest):
self.assertEqual(200, resp.status_int) self.assertEqual(200, resp.status_int)
self.assertEqual("version 1", resp.json.get('description')) self.assertEqual("version 1", resp.json.get('description'))
@mock.patch('qinling.utils.etcd_util.delete_function')
@mock.patch('qinling.rpc.EngineClient.delete_function')
@mock.patch('qinling.storage.file_system.FileSystemStorage.delete') @mock.patch('qinling.storage.file_system.FileSystemStorage.delete')
def test_delete(self, mock_delete): def test_delete(self, mock_package_delete, mock_engine_delete,
mock_etcd_delete):
db_api.increase_function_version(self.func_id, 0, db_api.increase_function_version(self.func_id, 0,
description="version 1") description="version 1")
resp = self.app.delete('/v1/functions/%s/versions/1' % self.func_id) resp = self.app.delete('/v1/functions/%s/versions/1' % self.func_id)
self.assertEqual(204, resp.status_int) self.assertEqual(204, resp.status_int)
mock_delete.assert_called_once_with(unit_base.DEFAULT_PROJECT_ID, mock_engine_delete.assert_called_once_with(self.func_id, version=1)
self.func_id, None, version=1) mock_etcd_delete.assert_called_once_with(self.func_id, version=1)
mock_package_delete.assert_called_once_with(
unit_base.DEFAULT_PROJECT_ID,
self.func_id, None, version=1
)
# We need to set context as it was removed after the API call # We need to set context as it was removed after the API call
context.set_ctx(self.ctx) context.set_ctx(self.ctx)