def decorated_function(self, context, *args, **kwargs): try: return function(self, context, *args, **kwargs) except Exception as exp: with excutils.save_and_reraise_exception(): wrapped_func = safe_utils.get_wrapped_function(function) keyed_args = inspect.getcallargs(wrapped_func, self, context, *args, **kwargs) context = keyed_args['context'] vnf_package = keyed_args['vnf_package'] if not (isinstance(exp, exceptions.UploadFailedToGlanceStore) or isinstance(exp, exceptions.VNFPackageURLInvalid)): # Delete the csar file from the glance store. glance_store.delete_csar(context, vnf_package.id, vnf_package.location_glance_store) csar_utils.delete_csar_data(vnf_package.id) # Delete the vnf_deployment_flavour if created. if vnf_package.vnf_deployment_flavours: for flavour in vnf_package.vnf_deployment_flavours: flavour.destroy(context) # Set the vnf package onboarding status to created, # so that user can retry uploading vnf package # after correcting the csar zip file. vnf_package.onboarding_state = ( fields.PackageOnboardingStateType.CREATED) vnf_package.save()
def _delete_csar(context, vnf_package): # Delete from glance store glance_store.delete_csar(context, vnf_package.id, vnf_package.location_glance_store) csar_utils.delete_csar_data(vnf_package.id)
def test_delete_csar_data(self, mock_rmtree, mock_remove): csar_utils.delete_csar_data(constants.UUID) mock_rmtree.assert_called() mock_remove.assert_called()