## Copyright (C) 2001-2005 Red Hat, Inc.
## Copyright (C) 2001-2005 Harald Hoyer
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
from netconfpkg.NC_functions import _, log
from netconfpkg.gdt import (Gdtstruct, gdtstruct_properties, Gdtstr,
Gdtint)
HW_INACTIVE_TR = _("inactive") # not found in last config and not in actual system
HW_SYSTEM_TR = _("system") # found in system
HW_CONF_TR = _("configured") # found in config but not in system
HW_OK_TR = _("ok") # found in system and in config
HW_INACTIVE = "inactive" # not found in last config and not in actual system
HW_SYSTEM = "system" # found in system
HW_CONF = "configured" # found in config but not in system
HW_OK = "ok" # found in system and in config
class Card(Gdtstruct):
gdtstruct_properties([
('ModuleName', Gdtstr, "Test doc string"),
('Type', Gdtstr, "Test doc string"),
('IoPort', Gdtstr, "Test doc string"),
('IoPort1', Gdtstr, "Test doc string"),
('IoPort2', Gdtstr, "Test doc string"),
('Options', Gdtstr, "Test doc string"),
('Mem', Gdtstr, "Test doc string"),
('IRQ', Gdtstr, "Test doc string"),
('DMA0', Gdtint, "Test doc string"),
('DMA1', Gdtint, "Test doc string"),
('ChannelProtocol', Gdtstr, "Test doc string"),
('Firmware', Gdtstr, "Test doc string"),
('DriverId', Gdtstr, "Test doc string"),
('VendorId', Gdtstr, "Test doc string"),
('DeviceId', Gdtstr, "Test doc string"),
])
def __init__(self):
super(Card, self).__init__()
self.ModuleName = None
self.Type = None
self.IoPort = None
self.IoPort1 = None
self.IoPort2 = None
self.Mem = None
self.IRQ = None
self.DMA0 = None
self.DMA1 = None
self.ChannelProtocol = None
self.Firmware = None
self.DriverId = None
self.VendorId = None
self.DeviceId = None
class Hardware_base(Gdtstruct):
gdtstruct_properties([
('Name', Gdtstr, "Test doc string"),
('Description', Gdtstr, "Test doc string"),
('Type ', Gdtstr, "Test doc string"),
('Status', Gdtstr, "Test doc string"),
('MacAddress', Gdtstr, "Test doc string"),
('Card', Card, "Test doc string"),
])
def __init__(self):
super(Hardware_base, self).__init__()
self.Name = None
self.Description = None
self.Type = None
self.Card = None
self.Status = HW_INACTIVE
def createCard(self):
if self.Card == None:
self.Card = Card()
return self.Card
class Hardware(Hardware_base):
def getDialog(self):
return None
def getWizard(self):
return None
def isType(self, device): # pylint: disable-msg=W0613
return None
def save(self, *args, **kwargs): # pylint: disable-msg=W0613
return None
def postSave(self):
return None
def saveModule(self):
if not self.Card.ModuleName:
return
from netconfpkg.NCHardwareList import getMyConfModules, getHardwareList
hl = getHardwareList()
modules = getMyConfModules()
dic = modules[self.Name]
if dic:
dic['alias'] = self.Card.ModuleName
modules[self.Name] = dic
log.lch(2, modules.filename, "%s alias %s" % (self.Name, self.Card.ModuleName))
# No, no, no... only delete known options!!!
#WRONG: modules[self.Card.ModuleName] = {}
#WRONG: modules[self.Card.ModuleName]['options'] = {}
#
# Better do it this way!
if (modules.has_key(self.Card.ModuleName) and modules[self.Card.ModuleName].has_key('options')):
for (key, confkey) in hl.keydict.items():
if modules[self.Card.ModuleName]['options'].has_key(confkey):
del modules[self.Card.ModuleName]['options'][confkey]
for (selfkey, confkey) in hl.keydict.items():
if self.Card.__dict__[selfkey]:
if (not (selfkey == 'IRQ' and (self.Card.IRQ == _('Unknown') or (self.Card.IRQ == 'Unknown')))):
dic = modules[self.Card.ModuleName]
if not dic.has_key('options'):
dic['options'] = {}
dic['options'][confkey] = str(self.Card.__dict__[selfkey])
modules[self.Card.ModuleName] = dic
__author__ = "Harald Hoyer "