[libvirt] [PATCH 2/3] Reverse logic allowing partial DHCP host XML
Laine Stump
laine at laine.org
Fri Aug 2 10:10:26 UTC 2013
On 07/31/2013 07:41 AM, Ján Tomko wrote:
> Before, missing attributes were only OK when adding entries;
> modification and deletion required all of them.
>
> Now, only deletion works with missing attributes, as long as
> the host is uniquely identified.
> ---
> src/conf/network_conf.c | 21 +++++----------------
> 1 file changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
> index a0b543c..16bdb45 100644
> --- a/src/conf/network_conf.c
> +++ b/src/conf/network_conf.c
> @@ -3297,6 +3297,7 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
> int ret = -1;
> virNetworkIpDefPtr ipdef = virNetworkIpDefByIndex(def, parentIndex);
> virNetworkDHCPHostDef host;
> + bool isDelete = (command == VIR_NETWORK_UPDATE_COMMAND_DELETE);
ACK, but change the name of this bool to partialOkay to match its
meaning and be consistent with what it's being named in
virNetworkDHCPHostDefParseXML.
>
> memset(&host, 0, sizeof(host));
>
> @@ -3307,13 +3308,11 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
> if (!ipdef)
> goto cleanup;
>
> - /* parse the xml into a virNetworkDHCPHostDef */
> - if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
> + if (virNetworkDHCPHostDefParseXML(def->name, ipdef, ctxt->node,
> + &host, isDelete) < 0)
> + goto cleanup;
>
> - if (virNetworkDHCPHostDefParseXML(def->name, ipdef,
> - ctxt->node, &host, false) < 0) {
> - goto cleanup;
> - }
> + if (command == VIR_NETWORK_UPDATE_COMMAND_MODIFY) {
>
> /* search for the entry with this (mac|name),
> * and update the IP+(mac|name) */
> @@ -3345,11 +3344,6 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
> } else if ((command == VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST) ||
> (command == VIR_NETWORK_UPDATE_COMMAND_ADD_LAST)) {
>
> - if (virNetworkDHCPHostDefParseXML(def->name, ipdef,
> - ctxt->node, &host, true) < 0) {
> - goto cleanup;
> - }
> -
> /* log error if an entry with same name/address/ip already exists */
> for (i = 0; i < ipdef->nhosts; i++) {
> if ((host.mac &&
> @@ -3379,11 +3373,6 @@ virNetworkDefUpdateIPDHCPHost(virNetworkDefPtr def,
> goto cleanup;
> } else if (command == VIR_NETWORK_UPDATE_COMMAND_DELETE) {
>
> - if (virNetworkDHCPHostDefParseXML(def->name, ipdef,
> - ctxt->node, &host, false) < 0) {
> - goto cleanup;
> - }
> -
> /* find matching entry - all specified attributes must match */
> for (i = 0; i < ipdef->nhosts; i++) {
> if ((!host.mac ||
More information about the libvir-list
mailing list