[libvirt] [PATCH 8/8] parallels: handle network adapters of type 'routed'
Daniel Veillard
veillard at redhat.com
Tue Dec 11 14:45:22 UTC 2012
On Tue, Dec 11, 2012 at 02:59:49PM +0400, Dmitry Guryanov wrote:
> Network adapters of type 'routed' is a special case. Other adapters
> have 'network' parameter in prlctl's output instead.
>
> Routed network adapters should be connected to 'routed' network
> from libvirt's view.
>
> Signed-off-by: Dmitry Guryanov <dguryanov at parallels.com>
> ---
> src/parallels/parallels_driver.c | 42 +++++++++++++++++++++++++++++++------
> 1 files changed, 35 insertions(+), 7 deletions(-)
>
> diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
> index 21279c0..f16777a 100644
> --- a/src/parallels/parallels_driver.c
> +++ b/src/parallels/parallels_driver.c
> @@ -482,13 +482,34 @@ parallelsGetNetInfo(virDomainNetDefPtr net,
> goto error;
> }
>
> - if (!(tmp = virJSONValueObjectGetString(value, "network"))) {
> - parallelsParseError();
> - goto error;
> - }
>
> - if (!(net->data.network.name = strdup(tmp))) {
> - virReportOOMError();
> + if (virJSONValueObjectHasKey(value, "network")) {
> + if (!(tmp = virJSONValueObjectGetString(value, "network"))) {
> + parallelsParseError();
> + goto error;
> + }
> +
> + if (!(net->data.network.name = strdup(tmp))) {
> + virReportOOMError();
> + goto error;
> + }
> + } else if (virJSONValueObjectHasKey(value, "type")) {
> + if (!(tmp = virJSONValueObjectGetString(value, "type"))) {
> + parallelsParseError();
> + goto error;
> + }
> +
> + if (!STREQ(tmp, "routed")) {
> + parallelsParseError();
> + goto error;
> + }
> +
> + if (!(net->data.network.name = strdup(PARALLELS_ROUTED_NETWORK_NAME))) {
> + virReportOOMError();
> + goto error;
> + }
> + } else {
> + parallelsParseError();
> goto error;
> }
>
> @@ -1866,7 +1887,14 @@ static int parallelsApplyIfaceParams(parallelsDomObjPtr pdom,
> }
>
> if (!STREQ_NULLABLE(oldnet->data.network.name, newnet->data.network.name)) {
> - virCommandAddArgFormat(cmd, "--network=%s", newnet->data.network.name);
> + if (STREQ_NULLABLE(newnet->data.network.name,
> + PARALLELS_ROUTED_NETWORK_NAME)) {
> + virCommandAddArgFormat(cmd, "--type=routed");
> + } else {
> + virCommandAddArgFormat(cmd, "--network=%s",
> + newnet->data.network.name);
> + }
> +
> is_changed = true;
> }
>
ACK,
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard at redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list