// DeleteLabelsBySHA256 deletes the SecCtxLabels that belong to the labels' sha256Sum. func (d *Daemon) DeleteLabelsBySHA256(sha256Sum string, contID string) error { if sha256Sum == "" { return nil } lblPath := path.Join(common.LabelsKeyPath, sha256Sum) // Lock that sha256Sum lockKey, err := d.kvClient.LockPath(lblPath) if err != nil { return err } defer lockKey.Unlock() // After lock complete, get label's path rmsg, err := d.kvClient.GetValue(lblPath) if err != nil { return err } if rmsg == nil { return nil } var dbSecCtxLbls labels.SecCtxLabel if err := json.Unmarshal(rmsg, &dbSecCtxLbls); err != nil { return err } dbSecCtxLbls.DelContainer(contID) // update the value in the kvstore if err := d.updateSecLabelIDRef(dbSecCtxLbls); err != nil { return err } if dbSecCtxLbls.RefCount() == 0 { d.DeleteUINode(dbSecCtxLbls.ID) } else { d.AddOrUpdateUINode(dbSecCtxLbls.ID, dbSecCtxLbls.Labels.ToSlice(), dbSecCtxLbls.RefCount()) } log.Debugf("Decremented label %d ref-count to %d\n", dbSecCtxLbls.ID, dbSecCtxLbls.RefCount()) return d.kvClient.SetValue(lblPath, dbSecCtxLbls) }