
--Apple-Mail=_9DAD4579-E784-457C-BACD-87147C9D4DA4 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii I'm following the example given in = http://www.ovirt.org/develop/api/pythonapi/ for bonding interfaces. I'm checking that the network is a plain configuration, exporting = /api/hosts/<my host>/nics return : <HostNIC = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35" id=3D"958c40cd-9ddb-4548-8bd8-79f454021c35"> <actions> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/attach" rel=3D"attach"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/detach" rel=3D"detach"/> </actions> <name>eth1</name> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/statistics" rel=3D"statistics"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/labels" rel=3D"labels"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/networkattachments" rel=3D"networkattachments"/> <host href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" = id=3D"db240f83-9266-4892-a6d2-8ac406cadfb1"/> <mac address=3D"14:58:d0:b3:cc:f8"/> <ip netmask=3D"" address=3D""/> <boot_protocol>none</boot_protocol> <status> <state>down</state> </status> <mtu>1500</mtu> <bridged>false</bridged> </HostNIC> <HostNIC = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c" id=3D"87a274e8-9633-45df-9205-1d188bd3ee4c"> <actions> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/attach" rel=3D"attach"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/detach" rel=3D"detach"/> </actions> <name>eth0</name> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/statistics" rel=3D"statistics"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/labels" rel=3D"labels"/> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/networkattachments" rel=3D"networkattachments"/> <host href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" = id=3D"db240f83-9266-4892-a6d2-8ac406cadfb1"/> <network href=3D"/api/networks/f429c46c-fed4-4c88-a000-36c021f5d633" = id=3D"f429c46c-fed4-4c88-a000-36c021f5d633"/> <mac address=3D"14:58:d0:b3:cc:f0"/> <ip netmask=3D"255.255.240.0" gateway=3D"10.83.31.254" = address=3D"10.83.17.24"/> <boot_protocol>dhcp</boot_protocol> <speed>10000000000</speed> <status> <state>up</state> </status> <mtu>9000</mtu> <bridged>true</bridged> <custom_configuration>false</custom_configuration> <properties/> </HostNIC> I send my configuration and get :
POST /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks = HTTP/1.1 ... my configuration
< HTTP/1.1 200 OK < <?xml version=3D"1.0" encoding=3D"UTF-8" standalone=3D"yes"?> < <action> < <host_nics> < <host_nic> < <name>bond0</name> < <network> < <name>ovirtmgmt</name> < </network> < <ip address=3D"10.83.17.24" netmask=3D"10.83.16.0" = gateway=3D"10.83.31.254"/> < <bonding> < <options> < <option name=3D"miimon" value=3D"100"/> < <option name=3D"mode" value=3D"4"/> < <option name=3D"xmit_hash_policy" value=3D"2+3"/> < </options> < <slaves> < <host_nic> < <name>eth0</name> < <network/> < <ip address=3D"*" netmask=3D"*" gateway=3D""/> < <boot_protocol>none</boot_protocol> < <mtu>9000</mtu> < </host_nic> < <host_nic> < <name>eth1</name> < <network/> < <ip address=3D"*" netmask=3D"*" gateway=3D""/> < <boot_protocol>none</boot_protocol> < <mtu>9000</mtu> < </host_nic> < </slaves> < </bonding> < <boot_protocol>static</boot_protocol> < <mtu>9000</mtu> < <override_configuration>true</override_configuration> < </host_nic> < </host_nics> < <check_connectivity>true</check_connectivity> < <force>false</force> < <job href=3D"/api/jobs/859bc27c-2060-4349-a0f5-dc1dd6333e6c" = id=3D"859bc27c-2060-4349-a0f5-dc1dd6333e6c"/> < <status> < <state>complete</state> < </status> < </action> So every thing is fine, I applied my configuration. But in the log, I get : 2016-05-06 17:13:22,481 INFO = [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] = (default task-20) [30e54e04] Lock Acquired to object = 'EngineLock:{exclusiveLocks=3D'[db240f83-9266-4892-a6d2-8ac406cadfb1=3D<HO= ST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', = sharedLocks=3D'null'}' 2016-05-06 17:13:22,555 INFO = [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] = (default task-20) [30e54e04] Running command: HostSetupNetworksCommand = internal: false. Entities affected : ID: = db240f83-9266-4892-a6d2-8ac406cadfb1 Type: VDSAction group = CONFIGURE_HOST_NETWORK with role type ADMIN 2016-05-06 17:13:22,555 INFO = [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] = (default task-20) [30e54e04] No changes were detected in setup networks = for host 'nb0101' (ID: 'db240f83-9266-4892-a6d2-8ac406cadfb1') 2016-05-06 17:13:22,563 INFO = [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] = (default task-20) [30e54e04] Lock freed to object = 'EngineLock:{exclusiveLocks=3D'[db240f83-9266-4892-a6d2-8ac406cadfb1=3D<HO= ST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', = sharedLocks=3D'null'}' And indeed my configuration is not changed. What am I missing ? --Apple-Mail=_9DAD4579-E784-457C-BACD-87147C9D4DA4 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;" class=3D"">I'm following the = example given in <a = href=3D"http://www.ovirt.org/develop/api/pythonapi/" = class=3D"">http://www.ovirt.org/develop/api/pythonapi/</a> for = bonding interfaces.<br class=3D""><br class=3D"">I'm checking that the = network is a plain configuration, exporting /api/hosts/<my = host>/nics return :<br class=3D""><br class=3D""><font face=3D"Menlo" = class=3D""><HostNIC = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35" = id=3D"958c40cd-9ddb-4548-8bd8-79f454021c35"><br class=3D""> = <actions><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/attach" rel=3D"attach"/><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/detach" rel=3D"detach"/><br class=3D""> = </actions><br class=3D""> = <name>eth1</name><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/statistics" rel=3D"statistics"/><br = class=3D""> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/labels" rel=3D"labels"/><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb= -4548-8bd8-79f454021c35/networkattachments" = rel=3D"networkattachments"/><br class=3D""> = <host = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" = id=3D"db240f83-9266-4892-a6d2-8ac406cadfb1"/><br class=3D""> = <mac address=3D"14:58:d0:b3:cc:f8"/><br = class=3D""> <ip netmask=3D"" address=3D""/><br = class=3D""> = <boot_protocol>none</boot_protocol><br = class=3D""> <status><br class=3D""> = <state>down</state><br class=3D""> = </status><br class=3D""> = <mtu>1500</mtu><br class=3D""> = <bridged>false</bridged><br = class=3D""></HostNIC><br class=3D""></font><br class=3D""><font = face=3D"Menlo" class=3D""><HostNIC = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c" = id=3D"87a274e8-9633-45df-9205-1d188bd3ee4c"><br class=3D""> = <actions><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/attach" rel=3D"attach"/><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/detach" rel=3D"detach"/><br class=3D""> = </actions><br class=3D""> = <name>eth0</name><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/statistics" rel=3D"statistics"/><br = class=3D""> <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/labels" rel=3D"labels"/><br class=3D""> = <link = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633= -45df-9205-1d188bd3ee4c/networkattachments" = rel=3D"networkattachments"/><br class=3D""> = <host = href=3D"/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" = id=3D"db240f83-9266-4892-a6d2-8ac406cadfb1"/><br class=3D""> = <network = href=3D"/api/networks/f429c46c-fed4-4c88-a000-36c021f5d633" = id=3D"f429c46c-fed4-4c88-a000-36c021f5d633"/><br class=3D""> = <mac address=3D"14:58:d0:b3:cc:f0"/><br = class=3D""> <ip netmask=3D"255.255.240.0" = gateway=3D"10.83.31.254" address=3D"10.83.17.24"/><br class=3D""> = <boot_protocol>dhcp</boot_protocol><br = class=3D""> <speed>10000000000</speed><br = class=3D""> <status><br class=3D""> = <state>up</state><br class=3D""> = </status><br class=3D""> = <mtu>9000</mtu><br class=3D""> = <bridged>true</bridged><br class=3D""> = <custom_configuration>false</custom_configuration>= <br class=3D""> <properties/><br = class=3D""></HostNIC><br class=3D""></font><br class=3D"">I send = my configuration and get :<div class=3D""><br class=3D""><font = face=3D"Menlo" class=3D"">> POST = /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks = HTTP/1.1<br class=3D"">...<br class=3D"">> my configuration<br = class=3D""><br class=3D"">< HTTP/1.1 200 OK<br class=3D""><br = class=3D"">< <?xml version=3D"1.0" encoding=3D"UTF-8" = standalone=3D"yes"?><br class=3D"">< <action><br = class=3D"">< <host_nics><br = class=3D"">< = <host_nic><br class=3D"">< = <name>bond0</name><br = class=3D"">< = <network><br class=3D"">< = = <name>ovirtmgmt</name><br = class=3D"">< = </network><br class=3D"">< = <ip address=3D"10.83.17.24" = netmask=3D"10.83.16.0" gateway=3D"10.83.31.254"/><br = class=3D"">< = <bonding><br class=3D"">< = <options><br = class=3D"">< = <option name=3D"miimon" value=3D"100"/><br= class=3D"">< = <option name=3D"mode" value=3D"4"/><br = class=3D"">< = <option name=3D"xmit_hash_policy" = value=3D"2+3"/><br class=3D"">< = </options><br = class=3D"">< = <slaves><br class=3D"">< = = <host_nic><br class=3D"">< = = <name>eth0</name><br class=3D"">< = = <network/><br class=3D"">< = = <ip address=3D"*" netmask=3D"*" gateway=3D""/><br = class=3D"">< = = <boot_protocol>none</boot_protocol><br = class=3D"">< = <mtu>9000</mtu><br = class=3D"">< = </host_nic><br class=3D"">< = = <host_nic><br class=3D"">< = = <name>eth1</name><br class=3D"">< = = <network/><br class=3D"">< = = <ip address=3D"*" netmask=3D"*" gateway=3D""/><br = class=3D"">< = = <boot_protocol>none</boot_protocol><br = class=3D"">< = <mtu>9000</mtu><br = class=3D"">< = </host_nic><br class=3D"">< = = </slaves><br class=3D"">< = </bonding><br class=3D"">< = = <boot_protocol>static</boot_protocol><br = class=3D"">< = <mtu>9000</mtu><br class=3D"">< = = <override_configuration>true</override_configuration&= gt;<br class=3D"">< = </host_nic><br class=3D"">< = </host_nics><br class=3D"">< = <check_connectivity>true</check_connectivity><br = class=3D"">< = <force>false</force><br = class=3D"">< <job = href=3D"/api/jobs/859bc27c-2060-4349-a0f5-dc1dd6333e6c" = id=3D"859bc27c-2060-4349-a0f5-dc1dd6333e6c"/><br = class=3D"">< <status><br = class=3D"">< = <state>complete</state><br = class=3D"">< </status><br class=3D""><= </action><br class=3D""><br class=3D""></font><br class=3D"">So = every thing is fine, I applied my configuration.<br class=3D""><br = class=3D"">But in the log, I get :<br class=3D"">2016-05-06 17:13:22,481 = INFO = [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] = (default task-20) [30e54e04] Lock Acquired to object = 'EngineLock:{exclusiveLocks=3D'[db240f83-9266-4892-a6d2-8ac406cadfb1=3D<= ;HOST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', = sharedLocks=3D'null'}'<br class=3D"">2016-05-06 17:13:22,555 = INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksC= ommand] (default task-20) [30e54e04] Running command: = HostSetupNetworksCommand internal: false. Entities affected = : ID: db240f83-9266-4892-a6d2-8ac406cadfb1 Type: VDSAction = group CONFIGURE_HOST_NETWORK with role type ADMIN<br class=3D"">2016-05-06= 17:13:22,555 = INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksC= ommand] (default task-20) [30e54e04] No changes were detected in setup = networks for host 'nb0101' (ID: = 'db240f83-9266-4892-a6d2-8ac406cadfb1')<br class=3D"">2016-05-06 = 17:13:22,563 = INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksC= ommand] (default task-20) [30e54e04] Lock freed to object = 'EngineLock:{exclusiveLocks=3D'[db240f83-9266-4892-a6d2-8ac406cadfb1=3D<= ;HOST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', = sharedLocks=3D'null'}'<br class=3D""><br class=3D"">And indeed my = configuration is not changed.<br class=3D""><br class=3D"">What am I = missing ?<br class=3D""><br class=3D""><br class=3D""><br class=3D""><br = class=3D""></div></body></html>= --Apple-Mail=_9DAD4579-E784-457C-BACD-87147C9D4DA4--

On 05/06/2016 05:20 PM, Fabrice Bacchella wrote:
I'm following the example given in http://www.ovirt.org/develop/api/pythonapi/ for bonding interfaces.
I'm checking that the network is a plain configuration, exporting /api/hosts/<my host>/nics return :
<HostNIC href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35" id="958c40cd-9ddb-4548-8bd8-79f454021c35"> <actions> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35/attach" rel="attach"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35/detach" rel="detach"/> </actions> <name>eth1</name> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35/statistics" rel="statistics"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35/labels" rel="labels"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/958c40cd-9ddb-4548-8bd8-79f454021c35/networkattachments" rel="networkattachments"/> <host href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" id="db240f83-9266-4892-a6d2-8ac406cadfb1"/> <mac address="14:58:d0:b3:cc:f8"/> <ip netmask="" address=""/> <boot_protocol>none</boot_protocol> <status> <state>down</state> </status> <mtu>1500</mtu> <bridged>false</bridged> </HostNIC>
<HostNIC href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c" id="87a274e8-9633-45df-9205-1d188bd3ee4c"> <actions> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c/attach" rel="attach"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c/detach" rel="detach"/> </actions> <name>eth0</name> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c/statistics" rel="statistics"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c/labels" rel="labels"/> <link href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/nics/87a274e8-9633-45df-9205-1d188bd3ee4c/networkattachments" rel="networkattachments"/> <host href="/api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1" id="db240f83-9266-4892-a6d2-8ac406cadfb1"/> <network href="/api/networks/f429c46c-fed4-4c88-a000-36c021f5d633" id="f429c46c-fed4-4c88-a000-36c021f5d633"/> <mac address="14:58:d0:b3:cc:f0"/> <ip netmask="255.255.240.0" gateway="10.83.31.254" address="10.83.17.24"/> <boot_protocol>dhcp</boot_protocol> <speed>10000000000</speed> <status> <state>up</state> </status> <mtu>9000</mtu> <bridged>true</bridged> <custom_configuration>false</custom_configuration> <properties/> </HostNIC>
I send my configuration and get :
POST /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks HTTP/1.1 ... my configuration
< HTTP/1.1 200 OK
< <?xml version="1.0" encoding="UTF-8" standalone="yes"?> < <action> < <host_nics> < <host_nic> < <name>bond0</name> < <network> < <name>ovirtmgmt</name> < </network> < <ip address="10.83.17.24" netmask="10.83.16.0" gateway="10.83.31.254"/> < <bonding> < <options> < <option name="miimon" value="100"/> < <option name="mode" value="4"/> < <option name="xmit_hash_policy" value="2+3"/> < </options> < <slaves> < <host_nic> < <name>eth0</name> < <network/> < <ip address="*" netmask="*" gateway=""/> < <boot_protocol>none</boot_protocol> < <mtu>9000</mtu> < </host_nic> < <host_nic> < <name>eth1</name> < <network/> < <ip address="*" netmask="*" gateway=""/> < <boot_protocol>none</boot_protocol> < <mtu>9000</mtu> < </host_nic> < </slaves> < </bonding> < <boot_protocol>static</boot_protocol> < <mtu>9000</mtu> < <override_configuration>true</override_configuration> < </host_nic> < </host_nics> < <check_connectivity>true</check_connectivity> < <force>false</force> < <job href="/api/jobs/859bc27c-2060-4349-a0f5-dc1dd6333e6c" id="859bc27c-2060-4349-a0f5-dc1dd6333e6c"/> < <status> < <state>complete</state> < </status> < </action>
So every thing is fine, I applied my configuration.
But in the log, I get : 2016-05-06 17:13:22,481 INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] (default task-20) [30e54e04] Lock Acquired to object 'EngineLock:{exclusiveLocks='[db240f83-9266-4892-a6d2-8ac406cadfb1=<HOST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', sharedLocks='null'}' 2016-05-06 17:13:22,555 INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] (default task-20) [30e54e04] Running command: HostSetupNetworksCommand internal: false. Entities affected : ID: db240f83-9266-4892-a6d2-8ac406cadfb1 Type: VDSAction group CONFIGURE_HOST_NETWORK with role type ADMIN 2016-05-06 17:13:22,555 INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] (default task-20) [30e54e04] No changes were detected in setup networks for host 'nb0101' (ID: 'db240f83-9266-4892-a6d2-8ac406cadfb1') 2016-05-06 17:13:22,563 INFO [org.ovirt.engine.core.bll.network.host.HostSetupNetworksCommand] (default task-20) [30e54e04] Lock freed to object 'EngineLock:{exclusiveLocks='[db240f83-9266-4892-a6d2-8ac406cadfb1=<HOST_NETWORK, ACTION_TYPE_FAILED_SETUP_NETWORKS_IN_PROGRESS>]', sharedLocks='null'}'
And indeed my configuration is not changed.
What am I missing ?
The example that you mention describes the old and deprecated /hosts/{host:id}/nics/setupnetworks action, but you are sending the request to /hosts/{host:id}/setupnetworks, which just ignores the "host_nics" elements that you are sending. There is an example of how to use the newer action here: https://jhernand.fedorapeople.org/ovirt-api-explorer/#/services/host/methods... -- Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta 3ºD, 28016 Madrid, Spain Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.

Le 7 mai 2016 à 18:18, Juan Hernández <jhernand@redhat.com> a écrit :
On 05/06/2016 05:20 PM, Fabrice Bacchella wrote:
I'm following the example given in http://www.ovirt.org/develop/api/pythonapi/ for bonding interfaces.
What am I missing ?
The example that you mention describes the old and deprecated /hosts/{host:id}/nics/setupnetworks action, but you are sending the request to /hosts/{host:id}/setupnetworks, which just ignores the "host_nics" elements that you are sending. There is an example of how to use the newer action here:
https://jhernand.fedorapeople.org/ovirt-api-explorer/#/services/host/methods...
Ok.I got it. The samples says: host.nics.setupnetworks(...) And my code says: host.setupnetworks(...) But why does it silently ignore it ? Shouldn't it throw me an error ? I think I will soon have more questions about what is a modified or removed object when creating bond, but I will need to play a little more with it.

Le 7 mai 2016 à 22:49, Fabrice Bacchella <fabrice.bacchella@orange.fr> a écrit :
Le 7 mai 2016 à 18:18, Juan Hernández <jhernand@redhat.com> a écrit :
On 05/06/2016 05:20 PM, Fabrice Bacchella wrote:
I'm following the example given in http://www.ovirt.org/develop/api/pythonapi/ for bonding interfaces.
What am I missing ?
The example that you mention describes the old and deprecated /hosts/{host:id}/nics/setupnetworks action, but you are sending the request to /hosts/{host:id}/setupnetworks, which just ignores the "host_nics" elements that you are sending. There is an example of how to use the newer action here:
https://jhernand.fedorapeople.org/ovirt-api-explorer/#/services/host/methods...
Ok.I got it.
The samples says: host.nics.setupnetworks(...) And my code says: host.setupnetworks(...)
But why does it silently ignore it ? Shouldn't it throw me an error ?
Very funny, now that my call to /hosts/{host:id}/setupnetworks is better (using modified_...), I'm getting an error message. So a totally wrong call throws nothing and an almost wrong message return some thing. That is not really consistent.

--Apple-Mail=_E2A5EEF3-9834-4A44-ABBB-E25AFFEA67AD Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=windows-1252
=20 I think I will soon have more questions about what is a modified or = removed object when creating bond, but I will need to play a little more = with it. =20
Ok, I started to play with the right setupnetworks, and I'm getting = strange results. When I try to transform an eth0 attachement to a bond attachement, I get=20= Cannot setup Networks. Network Interface 'eth0' cannot become slave, = there's network 'ovirtmgmt' attached to it. I tried to have a look at the command that the UI send and don't get it. = It says : networks=3D'[HostNetwork:{defaultRoute=3D'true', bonding=3D'true', = networkName=3D'ovirtmgmt', nicName=3D'bond0', vlan=3D'null', mtu=3D'9000',= vmNetwork=3D'true', stp=3D'false', properties=3D'[]', = bootProtocol=3D'DHCP', address=3D'null', netmask=3D'null', = gateway=3D'null'}]',=20 removedNetworks=3D'[]',=20 bonds=3D'[Bond:{id=3D'ffcfe313-7607-4347-b797-aa9c3260e221', = name=3D'bond0', vdsId=3D'null', networkName=3D'ovirtmgmt', = bootProtocol=3D'DHCP', address=3D'null', subnet=3D'null', = gateway=3D'null', mtu=3D'9000', bridged=3D'true', type=3D'2', = networkImplementationDetails=3D'null', qos=3D'null', macAddress=3D'null', = bondOptions=3D'mode=3D4 miimon=3D100', labels=3D'null', slaves=3D'[eth0, = eth1]'}]',=20 removedBonds=3D'[Bond:{id=3D'ffcfe313-7607-4347-b797-aa9c3260e221', = name=3D'bond0', vdsId=3D'null', networkName=3D'ovirtmgmt', = bootProtocol=3D'DHCP', address=3D'null', subnet=3D'null', = gateway=3D'null', mtu=3D'9000', bridged=3D'true', type=3D'2', = networkImplementationDetails=3D'null', qos=3D'null', macAddress=3D'null', = bondOptions=3D'mode=3D4 miimon=3D100', labels=3D'null', slaves=3D'[eth0, = eth1]'}]'}), What I'm doing is quite close, there is a modified network and modified = bond. But what about the removedBonds ? They was no bonding before that My code is : bond_name =3D kwargs['bond_name'] mtu =3D kwargs.pop('mtu', None) nics =3D [] for if_name in kwargs['interfaces']: nic =3D params.HostNIC(name=3Dif_name) if mtu is not None: nic.set_mtu(mtu) nics.append(nic) bonding =3D params.Bonding( slaves=3Dparams.Slaves(host_nic=3Dnics), options=3Dparams.Options( option=3Dmap(lambda (x, y): params.Option(name=3Dx, value=3Dy), = kwargs.pop('bond_options', {}).iteritems() ) ) ) bonded_if =3D params.HostNIC(name=3Dbond_name, bonding=3Dbonding) if mtu is not None: bonded_if.set_mtu(mtu) ip =3D kwargs.pop('ip', None) gateway =3D kwargs.pop('gateway', None) if ip is not None: ip =3D unicode(ip) ip_addr =3D ipaddress.ip_address(ip.split('/')[0]) ip_net =3D ipaddress.ip_network(ip, strict=3DFalse) ip_conf =3D params.IP(address=3Dstr(ip_addr), netmask=3Dstr(ip_net).split('/')[0]) if gateway is not None: ip_conf.set_gateway(gateway) ip_assignment =3D = params.IpAddressAssignment(assignment_method=3D"static", ip=3Dip_conf) elif kwargs.pop('dhcp', False): ip_assignment =3D = params.IpAddressAssignment(assignment_method=3D"dhcp", ip=3Dparams.IP()) bonded_network =3D = params.NetworkAttachment(network=3Dparams.Network(name=3Dkwargs['network']= ), = host_nic=3Dparams.HostNIC(name=3Dbond_name), = ip_address_assignments=3Dparams.IpAddressAssignments([ip_assignment])) return self.broker.setupnetworks(params.Action(modified_bonds =3D = params.HostNics(host_nic =3D [bonded_if]), = modified_network_attachments =3D = params.NetworkAttachments(network_attachment=3D[bonded_network]), ) ) And it generates :
POST /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks = HTTP/1.1 <action> <modified_network_attachments> <network_attachment> <network> <name>ovirtmgmt</name> </network> <host_nic> <name>bond0</name> </host_nic> <ip_address_assignments> <ip_address_assignment> <ip/> <assignment_method>dhcp</assignment_method> </ip_address_assignment> </ip_address_assignments> </network_attachment> </modified_network_attachments> <modified_bonds> <host_nic> <name>bond0</name> <bonding> <options> <option name=3D"miimon" value=3D"100"/> <option name=3D"mode" value=3D"4"/> <option name=3D"xmit_hash_policy" value=3D"2+3"/> </options> <slaves> <host_nic> <name>eth0</name> </host_nic> <host_nic> <name>eth1</name> </host_nic> </slaves> </bonding> </host_nic> </modified_bonds> </action>
--Apple-Mail=_E2A5EEF3-9834-4A44-ABBB-E25AFFEA67AD Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=windows-1252 <html><body style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; = -webkit-line-break: after-white-space;" class=3D""><blockquote = type=3D"cite" class=3D""><br class=3D""></blockquote><blockquote = type=3D"cite" class=3D"">I think I will soon have more questions about = what is a modified or removed object when creating bond, but I will need = to play a little more with it.<br class=3D""><br = class=3D""></blockquote><div class=3D""><br class=3D""></div>Ok, I = started to play with the right setupnetworks, and I'm getting strange = results.<div class=3D""><br class=3D""></div><div class=3D"">When I try = to transform an eth0 attachement to a bond attachement, I = get </div><div class=3D""><br class=3D""></div><div class=3D""><font = face=3D"Menlo" class=3D"">Cannot setup Networks. Network Interface = 'eth0' cannot become slave, there's network 'ovirtmgmt' attached to = it.</font></div><div class=3D""><br class=3D""></div><div class=3D"">I = tried to have a look at the command that the UI send and don't get it. = It says :</div><div class=3D""><br class=3D""></div><font face=3D"Menlo" = class=3D"">networks=3D'[HostNetwork:{defaultRoute=3D'true', = bonding=3D'true', networkName=3D'ovirtmgmt', nicName=3D'bond0', = vlan=3D'null', mtu=3D'9000', vmNetwork=3D'true', stp=3D'false', = properties=3D'[]', bootProtocol=3D'DHCP', address=3D'null', = netmask=3D'null', gateway=3D'null'}]', <br = class=3D"">removedNetworks=3D'[]', <br = class=3D"">bonds=3D'[Bond:{id=3D'ffcfe313-7607-4347-b797-aa9c3260e221', = name=3D'bond0', vdsId=3D'null', networkName=3D'ovirtmgmt', = bootProtocol=3D'DHCP', address=3D'null', = subnet=3D'null', gateway=3D'null', mtu=3D'9000', bridged=3D'true', = type=3D'2', networkImplementationDetails=3D'null', qos=3D'null', = macAddress=3D'null', bondOptions=3D'mode=3D4 miimon=3D100', = labels=3D'null', slaves=3D'[eth0, eth1]'}]', </font><div = class=3D""><font face=3D"Menlo" = class=3D"">removedBonds=3D'[Bond:{id=3D'ffcfe313-7607-4347-b797-aa9c3260e2= 21', name=3D'bond0', vdsId=3D'null', networkName=3D'ovirtmgmt', = bootProtocol=3D'DHCP', address=3D'null', subnet=3D'null', = gateway=3D'null', mtu=3D'9000', bridged=3D'true', type=3D'2', = networkImplementationDetails=3D'null', qos=3D'null', macAddress=3D'null', = bondOptions=3D'mode=3D4 miimon=3D100', labels=3D'null', = slaves=3D'[eth0, eth1]'}]'}),<br class=3D""></font><br class=3D""><div = class=3D""> What I'm doing is quite close, there is a modified = network and modified bond. But what about the removedBonds ? They was no = bonding before that</div><div class=3D""><br class=3D""></div><div = class=3D"">My code is :</div><div class=3D""><br class=3D""></div><div = class=3D""><font face=3D"Menlo" class=3D"">bond_name =3D = kwargs['bond_name']<br class=3D"">mtu =3D = kwargs.pop('mtu', None)<br class=3D"">nics =3D []<br = class=3D"">for if_name in kwargs['interfaces']:<br = class=3D""> nic =3D params.HostNIC(name=3Dif_name)<br = class=3D""> if mtu is not None:<br = class=3D""> nic.set_mtu(mtu)<br = class=3D""> nics.append(nic)<br class=3D""><br = class=3D"">bonding =3D params.Bonding(<br class=3D""> = slaves=3Dparams.Slaves(host_nic=3Dnics),<br class=3D""> = options=3Dparams.Options(<br class=3D""> = option=3Dmap(lambda (x, y): = params.Option(name=3Dx, value=3Dy), kwargs.pop('bond_options', = {}).iteritems() )<br class=3D""> )<br class=3D"">)<br = class=3D""><br class=3D"">bonded_if =3D = params.HostNIC(name=3Dbond_name, bonding=3Dbonding)<br class=3D""><br= class=3D"">if mtu is not None:<br class=3D""> = bonded_if.set_mtu(mtu)<br class=3D""><br class=3D"">ip =3D = kwargs.pop('ip', None)<br class=3D"">gateway =3D = kwargs.pop('gateway', None)<br class=3D"">if ip is = not None:<br class=3D""> ip =3D unicode(ip)<br = class=3D""> ip_addr =3D = ipaddress.ip_address(ip.split('/')[0])<br class=3D""> = ip_net =3D ipaddress.ip_network(ip, strict=3DFalse)<br = class=3D""> ip_conf =3D params.IP(address=3Dstr(ip_addr),<br = class=3D""> = = netmask=3Dstr(ip_net).split('/')[0])<br class=3D""> = if gateway is not None:<br class=3D""> = ip_conf.set_gateway(gateway)<br class=3D""> = ip_assignment =3D = params.IpAddressAssignment(assignment_method=3D"static", ip=3Dip_conf= )<br class=3D"">elif kwargs.pop('dhcp', False):<br = class=3D""> ip_assignment =3D = params.IpAddressAssignment(assignment_method=3D"dhcp", ip=3Dparams.IP= ())<br class=3D""><br class=3D"">bonded_network =3D = params.NetworkAttachment(network=3Dparams.Network(name=3Dkwargs['network']= ),<br class=3D""> = = host_nic=3Dparams.HostNIC(name=3Dbond_name),<br = class=3D""> = = = ip_address_assignments=3Dparams.IpAddressAssignments([ip_assig= nment]))<br class=3D""><br = class=3D"">return self.broker.setupnetworks(params.Action(modified_bo= nds =3D params.HostNics(host_nic =3D [bonded_if]),<br = class=3D""> = = = modified_network_attachments =3D = params.NetworkAttachments(network_attachment=3D[bonded_network]),<br = class=3D""> = = )<br class=3D""> = = )</font></div><div class=3D""><font = face=3D"Menlo" class=3D""><br class=3D""></font></div><div class=3D"">And = it generates :</div><div class=3D""><br class=3D""></div><div = class=3D""><div style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" = class=3D"">> POST = /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks = HTTP/1.1</font></div><div class=3D""><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = <action></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = <modified_network_attachments></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = <network_attachment></font></div><div style=3D"margin:= 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = <network></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = <name>ovirtmgmt</name></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </network></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = <host_nic></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = <name>bond0</name></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = </host_nic></font></div><div style=3D"margin: 0px;" class=3D""><font= face=3D"Menlo" class=3D"">> = <ip_address_assignments></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = <ip_address_assignment></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = = <ip/></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = = <assignment_method>dhcp</assignment_method></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = </ip_address_assignment></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = </ip_address_assignments></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </network_attachment></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </modified_network_attachments></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = <modified_bonds></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = <host_nic></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = <name>bond0</name></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = <bonding></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = <options></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = <option = name=3D"miimon" value=3D"100"/></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = <option = name=3D"mode" value=3D"4"/></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = <option = name=3D"xmit_hash_policy" value=3D"2+3"/></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = </options></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = <slaves></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = = <host_nic></font></div><div style=3D"margin: 0px;" class=3D""><font = face=3D"Menlo" class=3D"">> = = <name>eth0</name></font></div><div style=3D"margin: 0px;" = class=3D""><font face=3D"Menlo" class=3D"">> = = </host_nic></font></div><div style=3D"margin: 0px;" class=3D""><font= face=3D"Menlo" class=3D"">> = <host_nic></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = <name>eth1</name></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = = </host_nic></font></div><div style=3D"margin: 0px;" class=3D""><font= face=3D"Menlo" class=3D"">> = </slaves></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </bonding></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </host_nic></font></div><div = style=3D"margin: 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </modified_bonds></font></div><div style=3D"margin: = 0px;" class=3D""><font face=3D"Menlo" class=3D"">> = </action></font></div></div><div class=3D""><font face=3D"Menlo" = class=3D""><br class=3D""></font></div><br = class=3D""></div></div></body></html>= --Apple-Mail=_E2A5EEF3-9834-4A44-ABBB-E25AFFEA67AD--

----- Original Message -----
From: "Fabrice Bacchella" <fabrice.bacchella@orange.fr> To: "Juan Hernández" <jhernand@redhat.com> Cc: "users" <users@ovirt.org> Sent: Monday, May 9, 2016 1:46:22 PM Subject: Re: [ovirt-users] configuring bonding on host
I think I will soon have more questions about what is a modified or removed object when creating bond, but I will need to play a little more with it.
Ok, I started to play with the right setupnetworks, and I'm getting strange results.
When I try to transform an eth0 attachement to a bond attachement, I get
Cannot setup Networks. Network Interface 'eth0' cannot become slave, there's network 'ovirtmgmt' attached to it.
I tried to have a look at the command that the UI send and don't get it. It says :
networks='[HostNetwork:{defaultRoute='true', bonding='true', networkName='ovirtmgmt', nicName='bond0', vlan='null', mtu='9000', vmNetwork='true', stp='false', properties='[]', bootProtocol='DHCP', address='null', netmask='null', gateway='null'}]', removedNetworks='[]', bonds='[Bond:{id='ffcfe313-7607-4347-b797-aa9c3260e221', name='bond0', vdsId='null', networkName='ovirtmgmt', bootProtocol='DHCP', address='null', subnet='null', gateway='null', mtu='9000', bridged='true', type='2', networkImplementationDetails='null', qos='null', macAddress='null', bondOptions='mode=4 miimon=100', labels='null', slaves='[eth0, eth1]'}]', removedBonds='[Bond:{id='ffcfe313-7607-4347-b797-aa9c3260e221', name='bond0', vdsId='null', networkName='ovirtmgmt', bootProtocol='DHCP', address='null', subnet='null', gateway='null', mtu='9000', bridged='true', type='2', networkImplementationDetails='null', qos='null', macAddress='null', bondOptions='mode=4 miimon=100', labels='null', slaves='[eth0, eth1]'}]'}),
What I'm doing is quite close, there is a modified network and modified bond. But what about the removedBonds ? They was no bonding before that
My code is :
bond_name = kwargs['bond_name'] mtu = kwargs.pop('mtu', None) nics = [] for if_name in kwargs['interfaces']: nic = params.HostNIC(name=if_name) if mtu is not None: nic.set_mtu(mtu) nics.append(nic)
bonding = params.Bonding( slaves=params.Slaves(host_nic=nics), options=params.Options( option=map(lambda (x, y): params.Option(name=x, value=y), kwargs.pop('bond_options', {}).iteritems() ) ) )
bonded_if = params.HostNIC(name=bond_name, bonding=bonding)
if mtu is not None: bonded_if.set_mtu(mtu)
ip = kwargs.pop('ip', None) gateway = kwargs.pop('gateway', None) if ip is not None: ip = unicode(ip) ip_addr = ipaddress.ip_address(ip.split('/')[0]) ip_net = ipaddress.ip_network(ip, strict=False) ip_conf = params.IP(address=str(ip_addr), netmask=str(ip_net).split('/')[0]) if gateway is not None: ip_conf.set_gateway(gateway) ip_assignment = params.IpAddressAssignment(assignment_method="static", ip=ip_conf) elif kwargs.pop('dhcp', False): ip_assignment = params.IpAddressAssignment(assignment_method="dhcp", ip=params.IP())
bonded_network = params.NetworkAttachment(network=params.Network(name=kwargs['network']), host_nic=params.HostNIC(name=bond_name), ip_address_assignments=params.IpAddressAssignments([ip_assignment]))
return self.broker.setupnetworks(params.Action(modified_bonds = params.HostNics(host_nic = [bonded_if]), modified_network_attachments = params.NetworkAttachments(network_attachment=[bonded_network]), ) )
And it generates :
POST /api/hosts/db240f83-9266-4892-a6d2-8ac406cadfb1/setupnetworks HTTP/1.1 <action> <modified_network_attachments> <network_attachment>
You should modify the already existing network_attachment. Here, since you don't pass the existing attachment 'id', we're trying to create a new attachment. Since you didn't remove the old one, we get two attachments for the same network. The old one is still attached to 'eth0', that's why you get the error. You have to specify the attachment 'id' on the attachment you're updating and it should work.
<network> <name>ovirtmgmt</name> </network> <host_nic> <name>bond0</name> </host_nic> <ip_address_assignments> <ip_address_assignment> <ip/> <assignment_method>dhcp</assignment_method> </ip_address_assignment> </ip_address_assignments> </network_attachment> </modified_network_attachments> <modified_bonds> <host_nic> <name>bond0</name> <bonding> <options> <option name="miimon" value="100"/> <option name="mode" value="4"/> <option name="xmit_hash_policy" value="2+3"/> </options> <slaves> <host_nic> <name>eth0</name> </host_nic> <host_nic> <name>eth1</name> </host_nic> </slaves> </bonding> </host_nic> </modified_bonds> </action>
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users

Le 10 mai 2016 à 09:55, Alona Kaplan <alkaplan@redhat.com> a écrit :
You should modify the already existing network_attachment. Here, since you don't pass the existing attachment 'id', we're trying to create a new attachment. Since you didn't remove the old one, we get two attachments for the same network. The old one is still attached to 'eth0', that's why you get the error.
You have to specify the attachment 'id' on the attachment you're updating and it should work.
That's quite logical. Thank you.
participants (3)
-
Alona Kaplan
-
Fabrice Bacchella
-
Juan Hernández