Files
aufbau2csv/idoit_scaleup/cat_networkport.py
Sven Riwoldt e06c448a46 Idoit-Tests 01
2024-12-15 14:38:48 +01:00

70 lines
2.3 KiB
Python
Executable File

from .consts import C__CATG__NETWORK_PORT
from .category import IDoitCategory
from copy import deepcopy
class IDoitNetworkPort(IDoitCategory):
CATEGORY = C__CATG__NETWORK_PORT
def __init__(self, cfg):
super().__init__(cfg, self.CATEGORY)
def convert_field_with_name_active(self, data):
return int(data['active']['value'])
def convert_field_with_name_interface(self, data):
if len(data['interface']) == 0:
return None
return int(data['interface'][0]['id'])
def convert_field_with_name_speed(self, data):
return float(data['speed']['title'])
def convert_field_with_name_cable(self, data):
return self.conv_array_field('cable', data, 'id')
def convert_field_with_name_addresses(self, data):
return self.convert_list(data['addresses'])
def convert_field_with_name_layer2_assignment(self, data):
if data['layer2_assignment'] == []:
return None
# else:
raise Exception('unknown conversion ', data)
def convert_field_with_name_assigned_connector(self, data):
return self.conv_array_field('assigned_connector', data, 'ref_id')
def convert_field_with_name_relation_direction(self, data):
return int(data['relation_direction']['id'])
def save_category_if_changed(self, objId, data):
raise Exception(
'Funktioniert nur wenn es nur eine Kategorie gibt, ' +
'muss mit ID spezifiziert werden')
def fix_obj(self, cdata):
#if ('interface' in cdata.keys()) and (cdata['interface'] is not None):
# cdata['interface'] = "%d_C__CATG__NETWORK_INTERFACE" % cdata['interface']
if ('addresses' in cdata.keys()) :
if cdata['addresses'] is None:
cdata['addresses'] = None
# FIXME Das geht im Moment nicht. siehe Idoit Bug #20429 (sanders)
else:
rtn = []
for ele in cdata['addresses']:
rtn.append(str(ele))
cdata['addresses'] = rtn
def save_category(self, objId, data):
cdata = deepcopy(data)
self.fix_obj(cdata)
return super().save_category(objId, cdata)
def update_category(self, objId, data):
cdata = deepcopy(data)
self.fix_obj(cdata)
return super().update_category(objId, cdata)