Hi Don,

So glad to see it worked. If you want to know more about how to use the Python SDK, the official documentation http://ovirt.github.io/ovirt-engine-sdk/ would introduce you the detailed guidance.

If you have any other questions, please feel free to post here.

Regards,
Joey

On Tue, Feb 26, 2019 at 12:50 PM Don Dupuis <dondster@gmail.com> wrote:
Joey

That WORKED just great. I am still trying to understand the services/service stuff. I was trying something similar earlier, but I was using
connection.system_service().vnic_profiles_service().vnic_profile_service(), I understand now from your code on what is going on and why was going down the wrong road.

Thanks again for your help

Don

On Mon, Feb 25, 2019 at 10:24 PM Joey Ma <majunjiev@gmail.com> wrote:

On Tue, Feb 26, 2019 at 1:00 AM Don Dupuis <dondster@gmail.com> wrote:
Joey
I am still not quite getting it. I am trying the below code and where it is commented out, I have tried different things, but I am no table to update the name of the object that I have found.

networks_service = connection.system_service().networks_service()
network = networks_service.list(
    search='name=ovirtmgmt and datacenter=%s-local' % HOSTNAME) [0]
print ("Network name is %s" % network.name)
print ("Network id is %s" % network.id)
vnics = connection.follow_link(network.vnic_profiles)
#vnicsprofile_service = connection.system_service().vnic_profile_service()
#vnicprofile_service = vnic_profiles_service.vnic_profile_service(vnics.id)

Hi Don,

The var `vnics` is actually a List, so the statement `vnics.id` would produce errors.

The following codes could successfully update the name of a vnicprofile, probably meets your needs.

```python
vnics = connection.follow_link(network.vnic_profiles)

# Iterate the var `vnics` would be better.
vnic_service = connection.system_service().vnic_profiles_service().profile_service(vnics[0].id)
vnic_service.update(
     types.VnicProfile(
         name='the-new-name',
     )
)
vnic = vnic_service.get()
print('new name', vnic.name)
```

If the above codes could not work as expected, please let me know.

Regards,
Joey

for dev in vnics:
    print ("Dev name is %s" % dev.name)
#    vnicprofile_service.update(types.VnicProfile(
#       name='%s' % HOSTNAME,
#       ),
#    )
connection.close()

./update-vnic.py 
Network name is ovirtmgmt
Network id is 740cae1f-c49f-4563-877a-5ce173e83be4
Dev name is ovirtmgmt

Thanks
Don

On Mon, Feb 25, 2019 at 12:06 AM Joey Ma <majunjiev@gmail.com> wrote:
Hi Don,

Please using `network.vnic_profiles` instead of `network.vnicprofiles` as the parameter of  `connection.follow_link`.

Regards,
Joey


On Mon, Feb 25, 2019 at 9:22 AM Don Dupuis <dondster@gmail.com> wrote:
Hi

I am trying to write some code to update the names of existing vnicprofiles in ovirt-4.2. The problem I am having is trying to follow the links to the vnicprofiles. Below is web info that I am trying to get:

<network href="/ovirt-engine/api/networks/740cae1f-c49f-4563-877a-5ce173e83be4" id="740cae1f-c49f-4563-877a-5ce173e83be4"><name>ovirtmgmt</name><description>LOOKING</description><comment/><link href="/ovirt-engine/api/networks/740cae1f-c49f-4563-877a-5ce173e83be4/permissions" rel="permissions"/><link href="/ovirt-engine/api/networks/740cae1f-c49f-4563-877a-5ce173e83be4/vnicprofiles" rel="vnicprofiles"/><link href="/ovirt-engine/api/networks/740cae1f-c49f-4563-877a-5ce173e83be4/networklabels" rel="networklabels"/><mtu>0</mtu><stp>false</stp><usages><usage>vm</usage></usages><vlan id="4050"/><data_center href="/ovirt-engine/api/datacenters/1d00d32b-abdc-43cd-b990-257aaf01d514" id="1d00d32b-abdc-43cd-b990-257aaf01d514"/></network>

Below is the code that I am trying to do the same thing and I want to follow the vnicprofiles link to get to the actual data that I want to change:
#!/usr/bin/env python

import logging
import time
import string
import sys
import os
import MySQLdb

import ovirtsdk4 as sdk
import ovirtsdk4.types as types

#logging.basicConfig(level=logging.DEBUG, filename='/tmp/addhost.log')

### Variables to be used ###
#NUMANODE = 3
#MEM = 20
GB = 1024 * 1024 * 1024
#MEMORY = MEM * GB
GB = 1024 * 1024 * 1024
CAFILE = '/etc/pki/ovirt-engine/ca.pem'
USERNAME = 'admin@internal'
PASSWORD = 'password'
HOSTNAME = 'rvs06'

connection = sdk.Connection(
    url=URL,
    username=USERNAME,
    password=PASSWORD,
#    ca_file='ca.pem',
    debug='True',
    insecure='True',
#    log=logging.getLogger(),
)

#dcs_service = connection.system_service().data_centers_service()
#dc = dcs_service.list(search='cluster=%s-local' % HOSTNAME)[0]
#network = dcs_service.service(dc.id).networks_service()
networks_service = connection.system_service().networks_service()
network = networks_service.list(
    search='name=ovirtmgmt and datacenter=%s-local' % HOSTNAME) [0]
print ("Network name is %s" % network.name)
print ("Network id is %s" % network.id)
vnic = connection.follow_link(network.vnicprofiles)

connection.close()

Below is the output of my code:

./update-vnic.py 
Network name is ovirtmgmt
Network id is 740cae1f-c49f-4563-877a-5ce173e83be4
Traceback (most recent call last):
  File "./update-vnic.py", line 46, in <module>
    vnic = connection.follow_link(network.vnicprofiles)
AttributeError: 'Network' object has no attribute 'vnicprofiles'

The network name and network id is correct. Any help would be appreciated on what I am missing or what I am doing wrong. The actual updating of the name with code isn't written yet as I can't get past this part.

Thanks

Don
_______________________________________________
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-leave@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/
List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/PRV7MA2X3IS5WSXEEYAY54PPXFIMNRM4/