[libvirt] [PATCH 09/16] network: Add virNetworkObj Get API's for @def and @newDef
Pavel Hrdina
phrdina at redhat.com
Mon Jul 24 11:23:17 UTC 2017
On Fri, May 19, 2017 at 09:03:17AM -0400, John Ferlan wrote:
> In preparation for making the object private, create a couple of API's
> to get the obj->def and obj->newDef.
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> src/conf/virnetworkobj.c | 14 ++
> src/conf/virnetworkobj.h | 6 +
> src/libvirt_private.syms | 2 +
> src/network/bridge_driver.c | 488 ++++++++++++++++++++++++--------------------
> src/test/test_driver.c | 38 ++--
> 5 files changed, 312 insertions(+), 236 deletions(-)
[...]
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index cd91a1a..f8e11e2 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
[...]
> @@ -430,6 +431,7 @@ static int
> networkUpdateState(virNetworkObjPtr obj,
> void *opaque)
> {
> + virNetworkDefPtr def = virNetworkObjGetDef(obj);
The @obj is not locked here, you need to move the assignment after the
lock.
> virNetworkDriverStatePtr driver = opaque;
> dnsmasqCapsPtr dnsmasq_caps = networkGetDnsmasqCaps(driver);
> virMacMapPtr macmap;
[...]
> @@ -3460,6 +3475,7 @@ networkCreateXML(virConnectPtr conn,
> virNetworkDriverStatePtr driver = networkGetDriver();
> virNetworkDefPtr def;
> virNetworkObjPtr obj = NULL;
> + virNetworkDefPtr objdef;
I would probably change the current @def to @newDef and go with @def
instead of @objdef.
> virNetworkPtr net = NULL;
> virObjectEventPtr event = NULL;
>
[...]
> @@ -3870,20 +3894,24 @@ networkGetXMLDesc(virNetworkPtr net,
> {
> virNetworkObjPtr obj;
> virNetworkDefPtr def;
> + virNetworkDefPtr objdef;
> + virNetworkDefPtr newDef;
This one is a little bit tricky since there is already @newDef, in this
context I would change the @def to @curDef and go with @def instead of
@objdef. One note, please try to use camelCase even for @objDef. We
like consistency :).
> char *ret = NULL;
>
> virCheckFlags(VIR_NETWORK_XML_INACTIVE, NULL);
>
> if (!(obj = networkObjFromNetwork(net)))
> return ret;
> + objdef = virNetworkObjGetDef(obj);
> + newDef = virNetworkObjGetNewDef(obj);
>
> - if (virNetworkGetXMLDescEnsureACL(net->conn, obj->def) < 0)
> + if (virNetworkGetXMLDescEnsureACL(net->conn, objdef) < 0)
> goto cleanup;
>
> - if ((flags & VIR_NETWORK_XML_INACTIVE) && obj->newDef)
> - def = obj->newDef;
> + if ((flags & VIR_NETWORK_XML_INACTIVE) && newDef)
> + def = newDef;
> else
> - def = obj->def;
> + def = objdef;
>
> ret = virNetworkDefFormat(def, flags);
>
[...]
> diff --git a/src/test/test_driver.c b/src/test/test_driver.c
> index 46f0a9a..ee473ba 100644
> --- a/src/test/test_driver.c
> +++ b/src/test/test_driver.c
[...]
> @@ -3384,6 +3388,7 @@ testNetworkCreateXML(virConnectPtr conn, const char *xml)
> testDriverPtr privconn = conn->privateData;
> virNetworkDefPtr def;
> virNetworkObjPtr obj = NULL;
> + virNetworkDefPtr objdef;
The same, @def -> @newDef, @objdef -> @def.
> virNetworkPtr net = NULL;
> virObjectEventPtr event = NULL;
>
> @@ -3395,13 +3400,14 @@ testNetworkCreateXML(virConnectPtr conn, const char *xml)
> VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE)))
> goto cleanup;
> def = NULL;
> + objdef = virNetworkObjGetDef(obj);
> obj->active = 1;
>
> - event = virNetworkEventLifecycleNew(obj->def->name, obj->def->uuid,
> + event = virNetworkEventLifecycleNew(objdef->name, objdef->uuid,
> VIR_NETWORK_EVENT_STARTED,
> 0);
>
> - net = virGetNetwork(conn, obj->def->name, obj->def->uuid);
> + net = virGetNetwork(conn, objdef->name, objdef->uuid);
>
> cleanup:
> virNetworkDefFree(def);
> @@ -3418,6 +3424,7 @@ testNetworkDefineXML(virConnectPtr conn,
> testDriverPtr privconn = conn->privateData;
> virNetworkDefPtr def;
> virNetworkObjPtr obj = NULL;
> + virNetworkDefPtr objdef;
And here as well.
Otherwise the patch is correct.
Pavel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170724/950c0be5/attachment-0001.sig>
More information about the libvir-list
mailing list