Fix interface update
When updating interface attributes it is necessary to merge data from nailgun agent with those that are in the database instead of just updating them. Change-Id: I5c20f66e8a7cc0c0de9974508de458672b46840e Closes-Bug: #1627776
This commit is contained in:
parent
bbdcf14c1c
commit
77ed634abc
|
@ -48,6 +48,7 @@ from nailgun.network import utils
|
|||
from nailgun import objects
|
||||
from nailgun.objects.serializers.node import NodeInterfacesSerializer
|
||||
from nailgun.settings import settings
|
||||
from nailgun.utils import dict_merge
|
||||
from nailgun.utils.restrictions import RestrictionBase
|
||||
from nailgun.utils.zabbix import ZabbixManager
|
||||
|
||||
|
@ -1152,12 +1153,20 @@ class NetworkManager(object):
|
|||
interface.driver = interface_attrs.get('driver')
|
||||
interface.bus_info = interface_attrs.get('bus_info')
|
||||
interface.pxe = interface_attrs.get('pxe', False)
|
||||
|
||||
interface_properties = dict_merge(
|
||||
cls.get_default_interface_properties(),
|
||||
interface.interface_properties or {}
|
||||
)
|
||||
|
||||
if interface_attrs.get('interface_properties'):
|
||||
interface.interface_properties = \
|
||||
interface_properties = dict_merge(
|
||||
interface_properties,
|
||||
interface_attrs['interface_properties']
|
||||
elif not interface.interface_properties:
|
||||
interface.interface_properties = \
|
||||
cls.get_default_interface_properties()
|
||||
)
|
||||
# update interface_properties in DB only if something was changed
|
||||
if interface.interface_properties != interface_properties:
|
||||
interface.interface_properties = interface_properties
|
||||
|
||||
new_offloading_modes = interface_attrs.get('offloading_modes')
|
||||
old_modes_states = interface.\
|
||||
|
|
Loading…
Reference in New Issue