[ovirt-users] [ovirt-shell] update hostnic/nic ???

Nathanaël Blanchet blanchet at abes.fr
Thu Feb 2 11:52:56 UTC 2017


Hi I managed to create my dhcp hostnic thanks to the python script, but 
the same with ovirt-shell:

  * [oVirt shell (connected) # add networkattachment --parent-host-name
    taal --network-name brv106 --host_nic-name enp2s0f0 => OK but I
    didn't find any way to add boot protocol to DHCP

  * [oVirt shell (connected)]# add networkattachment --parent-host-name
    taal --network-name brv106 --host_nic-name enp2s0f0
    --ip_address_assignments-ip_address_assignment dhcp

   =========================================================== ERROR 
=========================================================
                      "dhcp" is invalid segment at option 
"--ip_address_assignments-ip_address_assignment".

  * [oVirt shell (connected)]# update nic enp3s0f0 --parent-host-name
    zonda --network-name brv106 --boot_protocol dhcp

   =========================================================== ERROR 
=========================================================
   status: 405
   reason: Method Not Allowed
   detail:


Should be much simpler via CLI to do such a thing, what's wrong there?

Le 15/01/2016 à 12:20, Juan Hernández a écrit :
> 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 at 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 at 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<---
>

-- 
Nathanaël Blanchet

Supervision réseau
Pôle Infrastrutures Informatiques
227 avenue Professeur-Jean-Louis-Viala
34193 MONTPELLIER CEDEX 5 	
Tél. 33 (0)4 67 54 84 55
Fax  33 (0)4 67 54 84 14
blanchet at abes.fr

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20170202/bf25dfcf/attachment-0001.html>


More information about the Users mailing list