[libvirt] [PATCH] repeat lookup by name in LookupByID
Daniel P. Berrange
berrange at redhat.com
Wed Jul 16 16:42:57 UTC 2008
On Wed, Jul 16, 2008 at 12:04:39PM +0400, Evgeniy Sokolov wrote:
> There was error every time when I undefine stoped container
> "no domain with matching id".
> Bug arrise due to stoped container has ID = -1.
This is not an error - this is intentional. There is no meaningful
ID for an inactive domain, thus lookupByID is intended to fail.
> In such case container will be searched by name.
No, this is wrong. The application should use lookupByName instead.
>
> other:
> use VIR_ERR_NO_DOMAIN when domain is not found
> Index: src/openvz_driver.c
> ===================================================================
> RCS file: /data/cvs/libvirt/src/openvz_driver.c,v
> retrieving revision 1.28
> diff -u -p -r1.28 openvz_driver.c
> --- src/openvz_driver.c 11 Jul 2008 11:09:44 -0000 1.28
> +++ src/openvz_driver.c 16 Jul 2008 07:51:19 -0000
> @@ -128,11 +128,22 @@ static void cmdExecFree(char *cmdExec[])
> static virDomainPtr openvzDomainLookupByID(virConnectPtr conn,
> int id) {
> struct openvz_driver *driver = (struct openvz_driver *)conn->privateData;
> - struct openvz_vm *vm = openvzFindVMByID(driver, id);
> + struct openvz_vm *vm;
> virDomainPtr dom;
>
> + vm = openvzFindVMByID(driver, id);
> +
> + if (!vm) { /*try to find by name*/
> + char name[OPENVZ_NAME_MAX];
> + if (snprintf(name, OPENVZ_NAME_MAX, "%d",id) >= OPENVZ_NAME_MAX) {
> + openvzError(conn, VIR_ERR_INTERNAL_ERROR, _("Too long domain name"));
> + return NULL;
> + }
> + vm = openvzFindVMByName(driver, name);
> + }
This souldn't be applied.
> +
> if (!vm) {
> - openvzError(conn, VIR_ERR_INTERNAL_ERROR, _("no domain with matching id"));
> + openvzError(conn, VIR_ERR_NO_DOMAIN, NULL);
This and the other error code changes are fine.
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list