On Wed, 21 Mar 2018 05:30:25 +0000 Nicolas Vaye <nicolas.v...@province-sud.nc> wrote:
> Hi, > > i want to change the network name of the existing nic for a VM with > python SDK API ? Can i have some help please ? > > the VM name is testnico > the nic name is nic1 > the new network name is vlan_NEW > > and here is the source file written by me (which doesn't work) : > > > #!/usr/bin/env python > # -*- coding: utf-8 -*- > > > import logging > import time > > 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 start a virtual machine > # with cloud-init, in order to automatically configure the network and > # the password of the `root` user. > > # Create the connection to the server: > connection = sdk.Connection( > url='https://ocenter.province-sud.prod/ovirt-engine/api', > username='admin@internal<mailto:username='admin@internal>', > password='xxxx', > ca_file='CA_ocenter.pem', > debug=True, > log=logging.getLogger(), > ) > > # Find the virtual machine: > vms_service = connection.system_service().vms_service() > vm = vms_service.list(search = 'name=testnico')[0] > > # Find the service that manages the virtual machine: > vm_service = vms_service.vm_service(vm.id) > > > > > # In order to specify the network that the new interface will be > # connected to we need to specify the identifier of the virtual > network # interface profile, so we need to find it: > profiles_service = connection.system_service().vnic_profiles_service() > profile_id = None > for profile in profiles_service.list(): > print "profile "+profile.name+","+profile.id > if profile.name == 'vlan_NEW': > profile_id = profile.id > break > > # Locate the service that manages the network interface cards of the > # virtual machine: > nics_service = vm_service.nics_service() > > #print nics_service > > # Find the nic1 of the VM > for nic in nics_service.list(): > print "nic "+nic.name+","+nic.id+','+nic.vnic_profile.id > if nic.name == 'nic1': > nic_service = nics_service.nic_service(nic.id) > break > > > print "nic_service nic1 ==>"+str(nic_service) > #pprint(vars(nic_service.network_filter_parameters_service().parameter_service())) > > > #nic_service.vnic_profile.id=profile_id > #nic_service.update() > > nic_service.update( > vnic_profile=types.VnicProfile( > id=profile_id, > ) > ) > nic_service.update( types.Nic( vnic_profile=types.VnicProfile( id=profile_id, ) ) ) > > # Close the connection to the server: > connection.close() > > > The result is : > > Traceback (most recent call last): > File "start_vm_with_cloud_init.py", line 85, in <module> > id=profile_id, > TypeError: update() got an unexpected keyword argument 'vnic_profile' > > > How can i do ? > update() expects a parameter of type types.Nic, which has the parameter vnic_profile. > Thanks. > > Nicolas VAYE > _______________________________________________ > Users mailing list > Users@ovirt.org > http://lists.ovirt.org/mailman/listinfo/users _______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users