You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/03/15 03:34:49 UTC
[incubator-pulsar] branch master updated: remove function package
on function delete (#1385)
This is an automated email from the ASF dual-hosted git repository.
mmerli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 5c31b2e remove function package on function delete (#1385)
5c31b2e is described below
commit 5c31b2ec9bc48f55a042aaa28a005c40b1971885
Author: Boyang Jerry Peng <je...@gmail.com>
AuthorDate: Wed Mar 14 20:34:47 2018 -0700
remove function package on function delete (#1385)
* remove function package on function delete
* using apache commons for deletion
* refactoring
* removing unnecessary import
* removing unncessary dependency
---
.../pulsar/functions/worker/FunctionActioner.java | 39 ++++++++++++++++------
1 file changed, 29 insertions(+), 10 deletions(-)
diff --git a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionActioner.java b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionActioner.java
index cc77e47..296e7d0 100644
--- a/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionActioner.java
+++ b/pulsar-functions/worker/src/main/java/org/apache/pulsar/functions/worker/FunctionActioner.java
@@ -18,11 +18,14 @@
*/
package org.apache.pulsar.functions.worker;
+import java.io.IOException;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.Paths;
+
import lombok.*;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.distributedlog.api.namespace.Namespace;
import org.apache.pulsar.functions.proto.Function;
@@ -112,13 +115,7 @@ public class FunctionActioner implements AutoCloseable {
functionMetaData.getFunctionConfig().getName(), instance.getInstanceId());
File pkgDir = new File(
workerConfig.getDownloadDirectory(),
- StringUtils.join(
- new String[]{
- functionMetaData.getFunctionConfig().getTenant(),
- functionMetaData.getFunctionConfig().getNamespace(),
- functionMetaData.getFunctionConfig().getName(),
- },
- File.separatorChar));
+ getDownloadPackagePath(functionMetaData));
pkgDir.mkdirs();
int instanceId = functionRuntimeInfo.getFunctionInstance().getInstanceId();
@@ -178,7 +175,7 @@ public class FunctionActioner implements AutoCloseable {
runtimeSpawner.start();
}
- private boolean stopFunction(FunctionRuntimeInfo functionRuntimeInfo) {
+ private void stopFunction(FunctionRuntimeInfo functionRuntimeInfo) {
Function.Instance instance = functionRuntimeInfo.getFunctionInstance();
FunctionMetaData functionMetaData = instance.getFunctionMetaData();
log.info("Stopping function {} - {}...",
@@ -186,8 +183,30 @@ public class FunctionActioner implements AutoCloseable {
if (functionRuntimeInfo.getRuntimeSpawner() != null) {
functionRuntimeInfo.getRuntimeSpawner().close();
functionRuntimeInfo.setRuntimeSpawner(null);
- return true;
}
- return false;
+
+ // clean up function package
+ File pkgDir = new File(
+ workerConfig.getDownloadDirectory(),
+ getDownloadPackagePath(functionMetaData));
+
+ if (pkgDir.exists()) {
+ try {
+ FileUtils.deleteDirectory(pkgDir);
+ } catch (IOException e) {
+ log.warn("Failed to delete package for function: {}",
+ FunctionConfigUtils.getFullyQualifiedName(functionMetaData.getFunctionConfig()), e);
+ }
+ }
+ }
+
+ private String getDownloadPackagePath(FunctionMetaData functionMetaData) {
+ return StringUtils.join(
+ new String[]{
+ functionMetaData.getFunctionConfig().getTenant(),
+ functionMetaData.getFunctionConfig().getNamespace(),
+ functionMetaData.getFunctionConfig().getName(),
+ },
+ File.separatorChar);
}
}
--
To stop receiving notification emails like this one, please contact
mmerli@apache.org.