On 08/05/2016 08:08 PM, Huan He (huhe) wrote: > Hi, > > I tried the host nic and bond sample code > in http://www.ovirt.org/develop/api/pythonapi/. In gui, I am able to > create bond and vlan network without issues. > > here is my code > > > if __name__ == '__main__': > > url = 'https://huhe-rhev-m.cisco.com/ovirt-engine/api' > > usr = 'admin@internal' > > pwd = 'nbv12345' > > ca_file = '/home/huhe/workspace/ansible/crt/ca.der' > > > > api = API(url=url, username=usr, password=pwd, ca_file=ca_file, > debug=True) > > print api.get_product_info().name > > > > nic0 = params.HostNIC(name = 'enp6s0', network = params.Network(), > boot_protocol='none', ip=params.IP(address='', netmask='', gateway='')) > > nic1 = params.HostNIC(name = 'enp7s0', network = params.Network(), > boot_protocol='none', ip=params.IP(address='', netmask='', gateway='')) > > nic2 = params.HostNIC(name = 'enp8s0', network = params.Network(), > boot_protocol='none', ip=params.IP(address='', netmask='', gateway='')) > > nic3 = params.HostNIC(name = 'enp9s0', network = params.Network(), > boot_protocol='none', ip=params.IP(address='', netmask='', gateway='')) > > > > bond = params.Bonding( > > slaves = params.Slaves(host_nic = [ nic0, nic1, nic2, nic3 ]), > > options = params.Options( > > option = [ > > params.Option(name = 'miimon', value = '100'), > > params.Option(name = 'mode', value = '1'), > > params.Option(name = 'primary', value = > 'enp6s0')] > > ) > > ) > > > > managementNetwork = params.HostNIC(network = params.Network(name = > 'ovirtmgmt'), > > name = 'bond0', > > boot_protocol = 'static', > > ip = params.IP( > > address = '20.200.10.172', > > netmask = '255.255.255.0', > > gateway = '20.200.10.254'), > > override_configuration = 1, > > bonding = bond) > > > > networkName = 'my_vm_db' > > clusterNetwork = api.clusters.get('my_cluster').networks.get(name = > networkName) > > vlanNetwork = params.HostNIC(network = params.Network(name = > networkName), name = "bond0.%s" % clusterNetwork.vlan.id) > > > > host = api.hosts.get('host-172') > > host.nics.setupnetworks(params.Action(force = 0, > > check_connectivity = 1, > > host_nics = > params.HostNics(host_nic = [ managementNetwork, > > > vlanNetwork]))) > > > > api.disconnect() > > > > The following is the console output > >> <action> > >> <host_nics> > >> <host_nic> > >> <name>bond0</name> > >> <network> > >> <name>ovirtmgmt</name> > >> </network> > >> <ip netmask="255.255.255.0" gateway="20.200.10.254" > address="20.200.10.172"/> > >> <bonding> > >> <options> > >> <option name="miimon" value="100"/> > >> <option name="mode" value="1"/> > >> <option name="primary" value="enp6s0"/> > >> </options> > >> <slaves> > >> <host_nic> > >> <name>enp6s0</name> > >> <network/> > >> <ip netmask="" gateway="" address=""/> > >> <boot_protocol>none</boot_protocol> > >> </host_nic> > >> <host_nic> > >> <name>enp7s0</name> > >> <network/> > >> <ip netmask="" gateway="" address=""/> > >> <boot_protocol>none</boot_protocol> > >> </host_nic> > >> <host_nic> > >> <name>enp8s0</name> > >> <network/> > >> <ip netmask="" gateway="" address=""/> > >> <boot_protocol>none</boot_protocol> > >> </host_nic> > >> <host_nic> > >> <name>enp9s0</name> > >> <network/> > >> <ip netmask="" gateway="" address=""/> > >> <boot_protocol>none</boot_protocol> > >> </host_nic> > >> </slaves> > >> </bonding> > >> <boot_protocol>static</boot_protocol> > >> <override_configuration>1</override_configuration> > >> </host_nic> > >> <host_nic> > >> <name>bond0.101</name> > >> <network> > >> <name>my_vm_db</name> > >> </network> > >> </host_nic> > >> </host_nics> > >> <check_connectivity>1</check_connectivity> > >> <force>0</force> > >> </action> > > < HTTP/1.1 404 Not Found > > < Date: Fri, 05 Aug 2016 17:55:54 GMT > > < Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips > > < Content-Length: 0 > > < > > * Connection #0 to host huhe-rhev-m.cisco.com left intact > > Traceback (most recent call last): > > File "/home/huhe/workspace/ansible/src/ovirt_hostnic.py", line 57, in > <module> > > vlanNetwork]))) > > File > "/usr/local/lib/python2.7/site-packages/ovirtsdk/infrastructure/brokers.py", > line 16672, in setupnetworks > > headers={"Correlation-Id":correlation_id} > > File > "/usr/local/lib/python2.7/site-packages/ovirtsdk/infrastructure/proxy.py", > line 122, in request > > persistent_auth=self.__persistent_auth > > File > "/usr/local/lib/python2.7/site-packages/ovirtsdk/infrastructure/connectionspool.py", > line 79, in do_request > > persistent_auth) > > File > "/usr/local/lib/python2.7/site-packages/ovirtsdk/infrastructure/connectionspool.py", > line 156, in __do_request > > raise errors.RequestError(response_code, response_reason, response_body) > > ovirtsdk.infrastructure.errors.RequestError: > > status: 404 > > reason: Not Found > > detail: > > > Any idea what is wrong? It is ovirt v3 > > > Thanks, > > Huan > > > <http://www.ovirt.org/develop/api/pythonapi/><http://www.ovirt.org/develop/api/pythonapi/><http://www.ovirt.org/develop/api/pythonapi/> >
The method that you are using is deprecated, you should use the Host.setupnetworks method, and the code should be similar to this: ---8<--- from ovirtsdk.api import API from ovirtsdk.xml import params api = API( url='https://huhe-rhev-m.cisco.com/ovirt-engine/api', username='admin@internal', password='...', ca_file='/home/huhe/workspace/ansible/crt/ca.der', debug=True, ) host = api.hosts.get(name='host-172') 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="1"), params.Option(name="miimon", value="100"), params.Option(name="primary", value="enp6s0"), ], ), slaves=params.Slaves( host_nic=[ params.HostNIC(name="enp6s0"), params.HostNIC(name="enp7s0"), params.HostNIC(name="enp8s0"), params.HostNIC(name="enp9s0"), ], ), ), ), ], ), modified_network_attachments=params.NetworkAttachments( network_attachment=[ params.NetworkAttachment( network=params.Network(name="my_vm_db"), host_nic=params.HostNIC(name="bond0"), ip_address_assignments=params.IpAddressAssignments( ip_address_assignment=[ params.IpAddressAssignment( assignment_method="static", ip=params.IP( address="20.200.10.172", netmask="255.255.255.0", gateway="20.200.10.254", ), ), ], ), ), ], ), ), ) api.disconnect() --->8--- It is documented here: https://jhernand.fedorapeople.org/ovirt-engine-api-model/model.html#services/host/methods/setupnetworks -- 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 [email protected] http://lists.ovirt.org/mailman/listinfo/users

