[libvirt] [PATCH 2/2] qemu: Split out snapshot related functions to qemu_snapshot.c
Daniel P. Berrange
berrange at redhat.com
Thu Jan 3 18:07:36 UTC 2013
On Thu, Jan 03, 2013 at 10:51:09AM -0700, Eric Blake wrote:
> On 01/03/2013 09:45 AM, Peter Krempa wrote:
> > ---
> > po/POTFILES.in | 1 +
> > src/Makefile.am | 1 +
> > src/qemu/qemu_driver.c | 1699 +-------------------------------------------
> > src/qemu/qemu_snapshot.c | 1752 ++++++++++++++++++++++++++++++++++++++++++++++
> > src/qemu/qemu_snapshot.h | 38 +
> > 5 files changed, 1793 insertions(+), 1698 deletions(-)
> > create mode 100644 src/qemu/qemu_snapshot.c
> > create mode 100644 src/qemu/qemu_snapshot.h
>
> Now that I've seen Dan's arguments against 1/2, I tend to agree that
> qemu_util.c doesn't make much sense. But qemu_snapshot.c still makes
> sense, so I will still review this one.
>
> > +++ b/src/qemu/qemu_snapshot.c
> > @@ -0,0 +1,1752 @@
> > +/*
> > + * qemu_snapshot.c: QEMU snapshot handling
> > + *
> > + * Copyright (C) 2013 Red Hat, Inc.
>
> Same comments as in 1/2 about copying over copyright years from the
> original location.
>
> > +
> > +#include <config.h>
> > +
> > +#include <sys/types.h>
> > +#include <sys/stat.h>
> > +#include <fcntl.h>
> > +#include <unistd.h>
> > +
>
> And same comment about sorting includes.
>
> > +#ifndef __QEMU_SNAPSHOT_H__
> > +# define __QEMU_SNAPSHOT_H__
> > +
> > +# include "qemu_domain.h"
> > +
> > +virDomainSnapshotPtr qemuDomainSnapshotCreateXML(virDomainPtr domain,
> > + const char *xmlDesc,
> > + unsigned int flags);
> > +
> > +int qemuDomainRevertToSnapshot(virDomainSnapshotPtr,
> > + unsigned int flags);
> > +
> > +int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
> > + unsigned int flags);
> > +
>
> Interesting subset. Why not move any of these other snapshot-related
> driver callbacks? qemuDomainSnapshotGetXMLDesc, qemuDomainSnapshotNum,
> qemuDomainSnapshotListNames, qemuDomainListAllSnapshots,
> qemuDomainSnapshotNumChildren, qemuDomainSnapshotListChildrenNames,
> qemuDomainSnapshotListAllChildren, qemuDomainSnapshotLookupByName,
> qemuDomainSnapshotGetParent, qemuDomainSnapshotCurrent,
> qemuDomainSnapshotIsCurrent, qemuDomainSnapshotHasMetadata
IMHO all methods which are directly part of the public API
driver struct should be in qemu_driver.c. If we want to split
code, then there should be a set of internal helpers which
those public API methods call.
eg, see how it is done for migration.
qemu_driver.c contains qemuDomainMigratePrepare2
which in turn calls
qemuMigrationPrepareDirect in qemu_migration.c
Basically all the qemu_driver.c code does is convert from the public
API types (virDomainPtr) into the private API types (virDomainObjPtr)
and then call the main impl code.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list