
Hi, I found a way to update property in setup network as shown below # Get the reference to the hosts service: hosts_service = connection.system_service().hosts_service() myhost = hosts_service.list(search='name=myhost')[0] myhost_service = hosts_service.host_service(myhost.id) mynet_attached_services = myhost_service.network_attachments_service() for mynet_attachment in mynet_attached_services.list(): if mynet_attachment.network.name == "mynet": print "Found : %s"%(mynet_attachment.network.name) mynet_attached_services.attachment_service(mynet_attachment.id).update( attachment=types.NetworkAttachment( properties=[types.Property("ovs","1")] ) ) else: print "Not Found : %s"%(mynet_attachment.network.name) Please find below ovs output. # ovs-vsctl show Bridge "vdsmbr_tJ9jxY5o" Port "em2" Interface "em2" Port "vdsmbr_tJ9jxY5o" Interface "vdsmbr_tJ9jxY5o" type: internal Port mynet Interface mynet type: internal ovs_version: "2.4.0" But ovirt is showing me "out-of-sync" message. *Can someone explain me why it shown as out-of-sync ?* *How ovirt determine sync on logical network ?* Thanks, ~Rohit On Mon, Dec 26, 2016 at 7:04 PM, TranceWorldLogic . < tranceworldlogic@gmail.com> wrote:
Hi,
Thanks for providing script it is working fine.
But it not complete, would you help me to complete step 2 ?
https://www.ovirt.org/networking/ovs/ Setup network
In the oVirt UI open the 'Setup Host Networks' dialog. Proceed to editing a desired logical network's properties. Among them you will find 'ovs', set it to 'true' or '1' to mark is as a OVS Network.
And have one doubt.
Why we have to set ovs property two time ?
Thanks, ~Rohit
On Tue, Dec 20, 2016 at 7:44 PM, Juan Hernández <jhernand@redhat.com> wrote:
On 12/20/2016 02:19 PM, TranceWorldLogic . wrote:
Hi,
I am trying to setup OVS network using ovirt and found guide as shown below: https://www.ovirt.org/networking/ovs/
Then, I tried to explore "vNic Profile" in sdk but not found any ovs profile in types.py. Can anyone help me how to setup ovs using python sdk ? I am using ovirtsdk4 (4.0 version).
Should be something like this:
---8<--- #!/usr/bin/env python # -*- coding: utf-8 -*-
# # Copyright (c) 2016 Red Hat, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #
import logging
import ovirtsdk4 as sdk import ovirtsdk4.types as types
logging.basicConfig(level=logging.DEBUG, filename='example.log')
# This example will connect to the server and create a logical network # that using Open vSwitch. Note that in order for this to work the # engine has to be configured to use Open vSwitch, as described here: # # https://www.ovirt.org/networking/ovs # # Specifcally you need to run the following commands in the machine # where the engine is running: # # engine-config -s CustomDeviceProperties="{type= interface;prop={ovs=.*}}" # engine-config -s 'UserDefinedNetworkCustomProperties=ovs=.*;ovs_aa_sid=.*' # systemctl restart ovirt-engine
# Create the connection to the server: connection = sdk.Connection( url='https://engine41.example.com/ovirt-engine/api', username='admin@internal', password='redhat123', ca_file='ca.pem', debug=True, log=logging.getLogger(), )
# Get the reference to the root of the tree of services: system_service = connection.system_service()
# Get the reference to the service that manages the logical networks: nets_service = system_service.networks_service()
# Create a logical network, which will automatically create a virtual # NIC profile: net = nets_service.add( network=types.Network( name='myovsnetwork', data_center=types.DataCenter( name='mydc' ) ) )
# Retrieve the details of the virtual NIC profile that was created for # the network (assuming that there is only one): profile = connection.follow_link(net.vnic_profiles)[0]
# Get the reference to the service that manages the virtual NIC profile: profiles_service = system_service.vnic_profiles_service() profile_service = profiles_service.profile_service(profile.id)
# Update the custom properties of the virtual NIC profile in order to # enable Open vSwitch: profile_service.update( profile=types.VnicProfile( custom_properties=[ types.CustomProperty( name='ovs', value='true' ) ] ) )
# Close the connection to the server: connection.close() --->8---
Note that it isn't complete, and that I didn't test if the OVS network does work. But at least the creation of the network and the modification of the VNIC profile does work.
I am suggesting to add this to the collection of examples of the SDK:
Add example of how to create OVS network https://gerrit.ovirt.org/68825
You may want to review it.