#include "interface_conf.h"
#include "domain_conf.h"
#include "domain_event.h"
+#include "network_event.h"
#include "snapshot_conf.h"
#include "fdstream.h"
#include "storage_conf.h"
virNetworkDefPtr def;
virNetworkObjPtr net = NULL;
virNetworkPtr ret = NULL;
+ virObjectEventPtr event = NULL;
testDriverLock(privconn);
if ((def = virNetworkDefParseString(xml)) == NULL)
def = NULL;
net->active = 1;
+ event = virNetworkEventLifecycleNew(net->def->name, net->def->uuid,
+ VIR_NETWORK_EVENT_STARTED);
+
ret = virGetNetwork(conn, net->def->name, net->def->uuid);
cleanup:
virNetworkDefFree(def);
+ if (event)
+ testObjectEventQueue(privconn, event);
if (net)
virNetworkObjUnlock(net);
testDriverUnlock(privconn);
virNetworkDefPtr def;
virNetworkObjPtr net = NULL;
virNetworkPtr ret = NULL;
+ virObjectEventPtr event = NULL;
testDriverLock(privconn);
if ((def = virNetworkDefParseString(xml)) == NULL)
def = NULL;
net->persistent = 1;
+ event = virNetworkEventLifecycleNew(net->def->name, net->def->uuid,
+ VIR_NETWORK_EVENT_DEFINED);
+
ret = virGetNetwork(conn, net->def->name, net->def->uuid);
cleanup:
virNetworkDefFree(def);
+ if (event)
+ testObjectEventQueue(privconn, event);
if (net)
virNetworkObjUnlock(net);
testDriverUnlock(privconn);
testConnPtr privconn = network->conn->privateData;
virNetworkObjPtr privnet;
int ret = -1;
+ virObjectEventPtr event = NULL;
testDriverLock(privconn);
privnet = virNetworkFindByName(&privconn->networks,
goto cleanup;
}
+ event = virNetworkEventLifecycleNew(network->name, network->uuid,
+ VIR_NETWORK_EVENT_UNDEFINED);
+
virNetworkRemoveInactive(&privconn->networks,
privnet);
privnet = NULL;
ret = 0;
cleanup:
+ if (event)
+ testObjectEventQueue(privconn, event);
if (privnet)
virNetworkObjUnlock(privnet);
testDriverUnlock(privconn);
testConnPtr privconn = network->conn->privateData;
virNetworkObjPtr privnet;
int ret = -1;
+ virObjectEventPtr event = NULL;
testDriverLock(privconn);
privnet = virNetworkFindByName(&privconn->networks,
}
privnet->active = 1;
+ event = virNetworkEventLifecycleNew(privnet->def->name, privnet->def->uuid,
+ VIR_NETWORK_EVENT_STARTED);
ret = 0;
cleanup:
+ if (event)
+ testObjectEventQueue(privconn, event);
if (privnet)
virNetworkObjUnlock(privnet);
return ret;
testConnPtr privconn = network->conn->privateData;
virNetworkObjPtr privnet;
int ret = -1;
+ virObjectEventPtr event = NULL;
testDriverLock(privconn);
privnet = virNetworkFindByName(&privconn->networks,
}
privnet->active = 0;
+ event = virNetworkEventLifecycleNew(privnet->def->name, privnet->def->uuid,
+ VIR_NETWORK_EVENT_STOPPED);
if (!privnet->persistent) {
virNetworkRemoveInactive(&privconn->networks,
privnet);
ret = 0;
cleanup:
+ if (event)
+ testObjectEventQueue(privconn, event);
if (privnet)
virNetworkObjUnlock(privnet);
testDriverUnlock(privconn);
}
+static int
+testConnectNetworkEventRegisterAny(virConnectPtr conn,
+ virNetworkPtr net,
+ int eventID,
+ virConnectNetworkEventGenericCallback callback,
+ void *opaque,
+ virFreeCallback freecb)
+{
+ testConnPtr driver = conn->privateData;
+ int ret;
+
+ testDriverLock(driver);
+ if (virNetworkEventStateRegisterID(conn,
+ driver->domainEventState,
+ net, eventID,
+ VIR_OBJECT_EVENT_CALLBACK(callback),
+ opaque, freecb, &ret) < 0)
+ ret = -1;
+ testDriverUnlock(driver);
+
+ return ret;
+}
+
+static int
+testConnectNetworkEventDeregisterAny(virConnectPtr conn,
+ int callbackID)
+{
+ testConnPtr driver = conn->privateData;
+ int ret;
+
+ testDriverLock(driver);
+ ret = virObjectEventStateDeregisterID(conn,
+ driver->domainEventState,
+ callbackID);
+ testDriverUnlock(driver);
+
+ return ret;
+}
+
+
/* driver must be locked before calling */
static void testObjectEventQueue(testConnPtr driver,
virObjectEventPtr event)
.connectNumOfDefinedNetworks = testConnectNumOfDefinedNetworks, /* 0.3.2 */
.connectListDefinedNetworks = testConnectListDefinedNetworks, /* 0.3.2 */
.connectListAllNetworks = testConnectListAllNetworks, /* 0.10.2 */
+ .connectNetworkEventRegisterAny = testConnectNetworkEventRegisterAny, /* 1.2.1 */
+ .connectNetworkEventDeregisterAny = testConnectNetworkEventDeregisterAny, /* 1.2.1 */
.networkLookupByUUID = testNetworkLookupByUUID, /* 0.3.2 */
.networkLookupByName = testNetworkLookupByName, /* 0.3.2 */
.networkCreateXML = testNetworkCreateXML, /* 0.3.2 */