Browse Source

uxc: also delete procd runtime state on 'delete'

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Daniel Golle 3 years ago
parent
commit
d4d78dbe5e
1 changed files with 18 additions and 0 deletions
  1. 18 0
      uxc.c

+ 18 - 0
uxc.c

@@ -640,6 +640,8 @@ static int uxc_delete(char *name, bool force)
 {
 	struct blob_attr *cur, *tb[__CONF_MAX];
 	struct runtime_state *s = NULL;
+	static struct blob_buf req;
+	uint32_t id;
 	int rem, ret = 0;
 	bool found = false;
 	char *fname;
@@ -678,6 +680,22 @@ static int uxc_delete(char *name, bool force)
 		}
 	}
 
+	if (s) {
+		ret = ubus_lookup_id(ctx, "container", &id);
+		if (ret)
+			goto errout;
+
+		blob_buf_init(&req, 0);
+		blobmsg_add_string(&req, "name", s->container_name);
+		blobmsg_add_string(&req, "instance", s->instance_name);
+
+		if (ubus_invoke(ctx, id, "delete", req.head, NULL, NULL, 3000)) {
+			blob_buf_free(&req);
+			ret=EIO;
+			goto errout;
+		}
+	}
+
 	if (stat(fname, &sb) == -1) {
 		ret=ENOENT;
 		goto errout;