示例#1
0
static int
secretUndefine(virSecretPtr obj)
{
    int ret = -1;
    virSecretObjPtr secret;
    virSecretDefPtr def;

    if (!(secret = secretObjFromSecret(obj)))
        goto cleanup;

    def = virSecretObjGetDef(secret);
    if (virSecretUndefineEnsureACL(obj->conn, def) < 0)
        goto cleanup;

    if (virSecretObjDeleteConfig(secret) < 0)
        goto cleanup;

    virSecretObjDeleteData(secret);

    virSecretObjListRemove(driver->secrets, secret);

    ret = 0;

 cleanup:
    virSecretObjEndAPI(&secret);

    return ret;
}
示例#2
0
static int
secretUndefine(virSecretPtr secret)
{
    int ret = -1;
    virSecretObjPtr obj;
    virSecretDefPtr def;
    virObjectEventPtr event = NULL;

    if (!(obj = secretObjFromSecret(secret)))
        goto cleanup;

    def = virSecretObjGetDef(obj);
    if (virSecretUndefineEnsureACL(secret->conn, def) < 0)
        goto cleanup;

    if (virSecretObjDeleteConfig(obj) < 0)
        goto cleanup;

    event = virSecretEventLifecycleNew(def->uuid,
                                       def->usage_type,
                                       def->usage_id,
                                       VIR_SECRET_EVENT_UNDEFINED,
                                       0);

    virSecretObjDeleteData(obj);

    virSecretObjListRemove(driver->secrets, obj);
    virObjectUnref(obj);
    obj = NULL;

    ret = 0;

 cleanup:
    virSecretObjEndAPI(&obj);
    if (event)
        virObjectEventStateQueue(driver->secretEventState, event);

    return ret;
}