[ovirt-users] [ovirt-shell] update hostnic/nic ???
Juan Hernández
jhernand at redhat.com
Fri Jan 15 06:20:17 EST 2016
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<---
--
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.
More information about the Users
mailing list