Am 13.06.2012 um 15:52 schrieb Daniel P. Berrange:
On Tue, Jun 12, 2012 at 10:31:54AM +0200, Sebastian Wiedenroth
wrote:
> +
> + cmd = virCommandNew(COLLIE);
> + virCommandAddArgList(cmd, "vdi", "list", vol->name,
"-r", NULL);
> + virStorageBackendSheepdogAddHostArg(cmd, pool);
> + virCommandSetOutputBuffer(cmd, &output);
> + ret = virCommandRun(cmd, NULL);
> +
> + if (ret < 0)
> + goto cleanup;
> +
> + if ((ret = virStorageBackendSheepdogParseVdiList(vol, output)) < 0)
> + goto cleanup;
> +
> + vol->type = VIR_STORAGE_VOL_NETWORK;
> +
> + VIR_FREE(vol->key);
> + if (virAsprintf(&vol->key, "%s/%s",
> + pool->def->source.name, vol->name) == -1) {
> + virReportOOMError();
> + goto cleanup;
> + }
Does sheepdog associate any kind of globally unique UUID with
storage volumes ? If so, it'd be desirable to use that as the
key, instead of being name based, so that we have stronger
uniqueness & stability guarentees.
Sheepdog storage volumes do have a very short "vdi id" which is
calculated from the hash of the name.
So using the name, as collie does, should be fine.
All in all, i think this looks good
Thanks for the review.
I'll repost a v2 after addressing the remaining issues.
Best regards,
Sebastian