int ConnAliveThread::netEventCallback(virConnectPtr _conn, virNetworkPtr net, int event, int detail, void *opaque) { //qDebug()<<"netEventCallback"<<_conn; ConnAliveThread *obj = static_cast<ConnAliveThread*>(opaque); if ( NULL==obj || *(obj->ptr_ConnPtr)!=_conn ) return 0; QString msg; msg = QString("<b>'%1'</b> Network %2 %3\n") .arg(virNetworkGetName(net)) .arg(obj->netEventToString(event)) .arg(obj->netEventDetailToString(event, detail)); emit obj->connMsg(msg); if ( obj->onView ) { Result result; QStringList virtNetList; if ( _conn!=NULL && obj->keep_alive ) { virNetworkPtr *networks = NULL; unsigned int flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE | VIR_CONNECT_LIST_NETWORKS_INACTIVE; // the number of networks found or -1 and sets networks to NULL in case of error. int ret = virConnectListAllNetworks(_conn, &networks, flags); if ( ret<0 ) { obj->sendConnErrors(); return 0; }; // therefore correctly to use for() command, because networks[0] can not exist. for (int i = 0; i < ret; i++) { QStringList currentAttr; QString autostartStr; int is_autostart = 0; if (virNetworkGetAutostart(networks[i], &is_autostart) < 0) { autostartStr.append("no autostart"); } else autostartStr.append( is_autostart ? "yes" : "no" ); currentAttr<< QString().fromUtf8( virNetworkGetName(networks[i]) ) << QString( virNetworkIsActive(networks[i]) ? "active" : "inactive" ) << autostartStr << QString( virNetworkIsPersistent(networks[i]) ? "yes" : "no" ); virtNetList.append(currentAttr.join(DFR)); //qDebug()<<currentAttr; virNetworkFree(networks[i]); }; free(networks); }; //result.name = ; result.type = "network"; //result.number = number; result.action = GET_ALL_ENTITY_STATE; result.result = true; result.msg = virtNetList; emit obj->netStateChanged(result); }; return 0; }
static int virshNetworkSorter(const void *a, const void *b) { virNetworkPtr *na = (virNetworkPtr *) a; virNetworkPtr *nb = (virNetworkPtr *) b; if (*na && !*nb) return -1; if (!*na) return *nb != NULL; return vshStrcasecmp(virNetworkGetName(*na), virNetworkGetName(*nb)); }
static bool cmdNetworkDefine(vshControl *ctl, const vshCmd *cmd) { virNetworkPtr network; const char *from = NULL; bool ret = true; char *buffer; virshControlPtr priv = ctl->privData; if (vshCommandOptStringReq(ctl, cmd, "file", &from) < 0) return false; if (virFileReadAll(from, VSH_MAX_XML_FILE, &buffer) < 0) return false; network = virNetworkDefineXML(priv->conn, buffer); VIR_FREE(buffer); if (network != NULL) { vshPrint(ctl, _("Network %s defined from %s\n"), virNetworkGetName(network), from); virNetworkFree(network); } else { vshError(ctl, _("Failed to define network from %s"), from); ret = false; } return ret; }
void spice_graphHlpThread::run() { if ( NULL==ptr_ConnPtr || NULL==*ptr_ConnPtr ) { emit ptrIsNull(); return; }; if ( virConnectRef(*ptr_ConnPtr)<0 ) { sendConnErrors(); return; }; QStringList nets; virNetworkPtr *networks = NULL; unsigned int flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE | VIR_CONNECT_LIST_NETWORKS_INACTIVE; int ret = virConnectListAllNetworks(*ptr_ConnPtr, &networks, flags); if ( ret<0 ) { sendConnErrors(); } else { // therefore correctly to use for() command, because networks[0] can not exist. for (int i = 0; i < ret; i++) { nets.append( virNetworkGetName(networks[i]) ); virNetworkFree(networks[i]); }; if (networks) free(networks); }; //int devs = virNodeNumOfDevices(ptr_ConnPtr, NULL, 0); if ( virConnectClose(*ptr_ConnPtr)<0 ) { sendConnErrors(); }; emit result(nets); }
Result NetControlThread::defineNetwork() { Result result; QString path = task.args.path; QByteArray xmlData; if ( task.srcConnPtr==nullptr ) { result.result = false; result.err = "Connection pointer is NULL."; return result; }; QFile f; f.setFileName(path); if ( !f.open(QIODevice::ReadOnly) ) { QString msg = QString("File \"%1\"\nnot opened.").arg(path); emit errorMsg( msg, number ); result.err = msg; return result; }; xmlData = f.readAll(); f.close(); virNetworkPtr network = virNetworkDefineXML( *task.srcConnPtr, xmlData.data()); if ( network==nullptr ) { result.err = sendConnErrors(); return result; }; result.name = QString().fromUtf8( virNetworkGetName(network) ); result.result = true; result.msg.append(QString("'<b>%1</b>' Network from\n\"%2\"\nis defined.") .arg(result.name).arg(path)); virNetworkFree(network); return result; }
const gchar *gvir_network_get_name(GVirNetwork *network) { const char *name; g_return_val_if_fail(GVIR_IS_NETWORK(network), NULL); if (!(name = virNetworkGetName(network->priv->handle))) { g_warning("Failed to get network name on %p", network->priv->handle); return NULL; } return name; }
static bool cmdNetworkInfo(vshControl *ctl, const vshCmd *cmd) { virNetworkPtr network; char uuid[VIR_UUID_STRING_BUFLEN]; int autostart; int persistent = -1; int active = -1; char *bridge = NULL; if (!(network = virshCommandOptNetwork(ctl, cmd, NULL))) return false; vshPrint(ctl, "%-15s %s\n", _("Name:"), virNetworkGetName(network)); if (virNetworkGetUUIDString(network, uuid) == 0) vshPrint(ctl, "%-15s %s\n", _("UUID:"), uuid); active = virNetworkIsActive(network); if (active >= 0) vshPrint(ctl, "%-15s %s\n", _("Active:"), active? _("yes") : _("no")); persistent = virNetworkIsPersistent(network); if (persistent < 0) vshPrint(ctl, "%-15s %s\n", _("Persistent:"), _("unknown")); else vshPrint(ctl, "%-15s %s\n", _("Persistent:"), persistent ? _("yes") : _("no")); if (virNetworkGetAutostart(network, &autostart) < 0) vshPrint(ctl, "%-15s %s\n", _("Autostart:"), _("no autostart")); else vshPrint(ctl, "%-15s %s\n", _("Autostart:"), autostart ? _("yes") : _("no")); bridge = virNetworkGetBridgeName(network); if (bridge) vshPrint(ctl, "%-15s %s\n", _("Bridge:"), bridge); VIR_FREE(bridge); virNetworkFree(network); return true; }
Result NetControlThread::getAllNetworkList() { Result result; QStringList virtNetList; if ( task.srcConnPtr!=nullptr && keep_alive ) { virNetworkPtr *networks = nullptr; unsigned int flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE | VIR_CONNECT_LIST_NETWORKS_INACTIVE; int ret = virConnectListAllNetworks(*task.srcConnPtr, &networks, flags); if ( ret<0 ) { result.err = sendConnErrors(); return result; }; // therefore correctly to use for() command, because networks[0] can not exist. for (int i = 0; i < ret; i++) { QStringList currentAttr; QString autostartStr; int is_autostart = 0; if (virNetworkGetAutostart(networks[i], &is_autostart) < 0) { autostartStr.append("no autostart"); } else autostartStr.append( is_autostart ? "yes" : "no" ); currentAttr<< QString::fromUtf8( virNetworkGetName(networks[i]) ) << QString( virNetworkIsActive(networks[i]) ? "active" : "inactive" ) << autostartStr << QString( virNetworkIsPersistent(networks[i]) ? "yes" : "no" ); virtNetList.append(currentAttr.join(DFR)); //qDebug()<<currentAttr; virNetworkFree(networks[i]); }; if (networks) free(networks); }; result.result = true; result.msg = virtNetList; return result; }