On 01/20/2016 11:31 AM, Bloemen, Jurriën wrote: > On 15-01-16 12:20, Juan Hernández wrote: >> On 01/14/2016 01:28 PM, Bloemen, Jurriën wrote: >>>> On 14-01-16 12:16, Juan Hernández wrote: >>>>> On 01/14/2016 11:24 AM, Bloemen, Jurriën wrote: >>>>>> Hi, >>>>>> >>>>>> First I created a bonding interface: >>>>>> >>>>>> # add nic --parent-host-name server01 --name bond0 --network-name >>>>>> VLAN602 --bonding-slaves-host_nic host_nic.name=eno1 >>>>>> --bonding-slaves-host_nic host_nic.name=eno2 >>>>>> >>>>>> This works great but no IP is set on VLAN602. >>>>>> >>>>>> Then I'm trying to add an ip address to a network with the following >>>>>> command: >>>>>> >>>>>> # update hostnic --parent-host-name server01 --network-name VLAN602 >>>>>> --boot_protocol static --ip-address 10.10.10.10 --ip-netmask >>>>>> 255.255.255.0 >>>>>> >>>>>> ============================================================================================================== >>>>>> ERROR >>>>>> ============================================================================================================ >>>>>> >>>>>> wrong number of arguments, try 'help update' for help. >>>>>> ================================================================================================================================================================================================================================ >>>>>> >>>>>> Looking at this document >>>>>> https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.6-Beta/html/RHEVM_Shell_Guide/nic.html >>>>>> I need to use "nic" instead of "hostnic" but then I don't have the >>>>>> options to say this is a --parent-host-name. Only VM related command >>>>>> options. >>>>>> >>>>>> So I think the documentation is behind. >>>>>> >>>>>> Can somebody help me with what the command is to add a IP to a >>>>>> VLAN/Network for a host? >>>>>> >>>>>> >>>>> The command should be like this: >>>>> >>>>> # update nic bond0 --parent-host-name server01 --network-name VLAN602 >>>>> --boot_protocol static --ip-address 10.10.10.10 --ip-netmask 255.255.255.0 >>>>> >>>>> Note that the it is "nic" instead of "hostnic" and that you need to >>>>> specify the name of that NIC, in this case "bond0". >>>>> >>>>> The command will work if you type it like that, but auto-completion >>>>> won't work. This is a bug in the CLI, indirectly caused by the fact that >>>>> the name of the URL segment used in the RESTAPI is "nics" (from >>>>> /hosts/{host:id}/*nics*) but the name of the XML schema complex type is >>>>> "HostNIC". >>>>> >>>> Thanks! That works! >>>> >>>> Another question: >>>> >>>> Now I got the message that my network is out-of-sync. How can i force >>>> within the ovirt-shell that it syncs the networks? >>> hmz.... pressed sent by accident >>> >>> What I want to say is: >>> >>> Now I got the message that my network is out-of-sync. How can i force >>> within the ovirt-shell that it syncs the networks? >>> Because when I press "Sync All Networks" the IP address disappears.... >>> >>> But when I check the box "Sync Network" within the VLAN602 options it >>> gets pushed to the host. >>> >>> Is there a difference between the both? And how do I run both via >>> ovirt-shell? >>> >> The "sync network" operation is not supported by ovirt-shell. >> >> If you want to set the network configuration, and make it persistent, >> then you will need to use one of the "setupNetworks" operations. These >> aren't fully usable with ovirt-shell either, so if you want to use it >> you will need to use directly the API or one of the SDKs. For example, >> lets assume that you have a host with network interfaces eth0, eth1, and >> eth2, and that you want to configure eth1 and eth2 as a bond, to put >> your VLAN and IP address on top. You can do that with a script like this: >> >> ---8<--- >> #!/bin/sh -ex >> >> url="https://engine.example.com/ovirt-engine/api" >> user="admin@internal" >> password="..." >> >> curl \ >> --verbose \ >> --cacert /etc/pki/ovirt-engine/ca.pem \ >> --user "${user}:${password}" \ >> --request POST \ >> --header "Content-Type: application/xml" \ >> --header "Accept: application/xml" \ >> --data ' >> <action> >> <modified_network_attachments> >> <network_attachment> >> <network> >> <name>VLAN602</name> >> </network> >> <host_nic> >> <name>bond0</name> >> </host_nic> >> <ip_address_assignments> >> <assignment_method>static</assignment_method> >> <ip_address_assignment> >> <ip netmask="255.255.255.0" address="10.10.10.10"/> >> </ip_address_assignment> >> </ip_address_assignments> >> </network_attachment> >> </modified_network_attachments> >> <modified_bonds> >> <host_nic> >> <name>bond0</name> >> <bonding> >> <options> >> <option name="mode" value="4"/> >> <option name="miimon" value="100"/> >> </options> >> <slaves> >> <host_nic> >> <name>eth1</name> >> </host_nic> >> <host_nic> >> <name>eth2</name> >> </host_nic> >> </slaves> >> </bonding> >> </host_nic> >> </modified_bonds> >> </action> >> ' \ >> "${url}/1ff7a191-2f3b-4eff-812b-9f91a30c3acc/setupnetworks" >> --->8--- >> >> If you prefer to use one of the SDKs, the Python SDK for example, then >> it should look like this: >> >> ---8<--- >> #!/usr/bin/python >> >> from ovirtsdk.api import API >> from ovirtsdk.xml import params >> >> # Connect to the server: >> api = API( >> url="https://engine.example.com/ovirt-engine/api", >> username="admin@internal", >> password="...", >> ca_file="/etc/pki/ovirt-engine/ca.pem", >> debug=True >> ) >> >> # Find the host: >> host = api.hosts.get(name="myhost") >> >> # Set up the networks: >> host.setupnetworks( >> params.Action( >> modified_bonds=params.HostNics( >> host_nic=[ >> params.HostNIC( >> name="bond0", >> bonding=params.Bonding( >> options=params.Options( >> option=[ >> params.Option(name="mode", value="4"), >> params.Option(name="miimon", value="100"), >> ], >> ), >> slaves=params.Slaves( >> host_nic=[ >> params.HostNIC(name="eth1"), >> params.HostNIC(name="eth2"), >> ], >> ), >> ), >> ), >> ], >> ), >> modified_network_attachments=params.NetworkAttachments( >> network_attachment=[ >> params.NetworkAttachment( >> network=params.Network(name="VLAN602"), >> host_nic=params.HostNIC(name="bond0"), >> ip_address_assignments=params.IpAddressAssignments( >> ip_address_assignment=[ >> params.IpAddressAssignment( >> assignment_method="static", >> ip=params.IP( >> address="10.10.10.10", >> netmask="255.255.255.0", >> ), >> ), >> ], >> ), >> ), >> ], >> ), >> ), >> ) >> >> # Close the connection: >> api.disconnect() >> ---8<--- >> > Hi Juan, > > The Python SDK sollution gives an error: > > Unexpected error: 'Host' object has no attribute 'setupnetworks' > > I'm using oVirt 3.6 >
And what version of the Python SDK? Support for "setupnetworks" was added in 3.6.0.0, make sure you have at least that version. -- 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. _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users