On 01/20/2016 02:03 PM, Bloemen, Jurriën wrote: > > On 20-01-16 12:24, Juan Hernández wrote: >> 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. >> > I have ovirt-engine-sdk-python-3.6.0.0-0.16.20150713.git8c2cf30.el6.noarch >
Then you need to update. That is a pre-release, and it doesn't contain the "setupnetworks" support. -- 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