uxc: also delete procd runtime state on 'delete'
authorDaniel Golle <daniel@makrotopia.org>
Sun, 22 Nov 2020 04:23:29 +0000 (04:23 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Sun, 22 Nov 2020 23:04:09 +0000 (23:04 +0000)
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
uxc.c

diff --git a/uxc.c b/uxc.c
index 5809b6de539e21092a39cecee5972d5462b3250c..eb40eb2e6a5bc54345f80c649e33d8822a4fe040 100644 (file)
--- a/uxc.c
+++ b/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;