ERL_NIF_TERM vert_virSecretLookupByUsage(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { VERT_RESOURCE *vp = NULL; int usageType = 0; ErlNifBinary usageID = {0}; VERT_RESOURCE *sp = NULL; VERT_GET_RESOURCE(0, vp, VERT_RES_CONNECT); VERT_GET_INT(1, usageType); VERT_GET_IOLIST(2, usageID); VERT_BIN_APPEND_NULL(usageID); VERT_RES_ALLOC(sp, VERT_RES_SECRET, vp->res); sp->res = virSecretLookupByUsage(vp->res, usageType, (char *)usageID.data); if (sp->res == NULL) { enif_release_resource(vp); return verterr(env); } return vert_make_resource(env, sp, atom_secret); }
ERL_NIF_TERM vert_virSecretDefineXML(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { VERT_RESOURCE *vp = NULL; ErlNifBinary xml = {0}; u_int32_t flags = 0; VERT_RESOURCE *sp = NULL; VERT_GET_RESOURCE(0, vp, VERT_RES_CONNECT); VERT_GET_IOLIST(1, xml); VERT_GET_UINT(2, flags); VERT_BIN_APPEND_NULL(xml); VERT_RES_ALLOC(sp, VERT_RES_SECRET, vp->conn); sp->res = virSecretDefineXML(vp->res, (char *)xml.data, flags); if (sp->res == NULL) { enif_release_resource(sp); return verterr(env); } return vert_make_resource(env, sp, atom_secret); }
ERL_NIF_TERM vert_virStoragePoolLookupByVolume(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) { VERT_RESOURCE *vp = NULL; VERT_RESOURCE *pp = NULL; VERT_GET_RESOURCE(0, vp, VERT_RES_STORAGEVOL); VERT_RES_ALLOC(pp, VERT_RES_STORAGEPOOL, vp->conn); pp->res = virStoragePoolLookupByVolume(vp->res); if (pp->res == NULL) { enif_release_resource(pp); return verterr(env); } return vert_make_resource(env, pp, atom_storagepool); }