def test_update_nic_attributes(self): new_attrs = PluginManager.get_nic_attributes(self.interface) new_attrs['plugin_a']['attr_a']['value'] = {} PluginManager.update_nic_attributes(new_attrs) attributes = PluginManager.get_nic_attributes(self.interface) del attributes['plugin_a']['metadata']['nic_plugin_id'] self.assertDictEqual( {'plugin_a': { 'attr_a': {'value': {}}, 'metadata': { 'class': 'plugin', 'label': 'Test plugin'}}}, attributes)
def update(cls, instance, data): """Update data of native and plugin attributes for interface. :param instance: NodeNICInterface instance :type instance: NodeNICInterface model :param data: Data to update :type data: dict :returns: instance of an object (model) """ attributes = data.pop('attributes', None) if attributes: PluginManager.update_nic_attributes(attributes) instance.attributes = utils.dict_merge(instance.attributes, attributes) return super(NIC, cls).update(instance, data)
def update(cls, instance, data): """Update data of native and plugin attributes for interface. :param instance: NodeNICInterface instance :type instance: NodeNICInterface model :param data: Data to update :type data: dict :returns: instance of an object (model) """ attributes = data.pop('attributes', None) if attributes: PluginManager.update_nic_attributes(attributes) instance.attributes = utils.dict_merge( instance.attributes, attributes) return super(NIC, cls).update(instance, data)