def setInstallData (self, anaconda):
        BaseInstallClass.setInstallData(self, anaconda)
        self.setEarlySwapOn(1)
        self.anaconda = anaconda
        self.id = self.anaconda.id
        self.id.firstboot = FIRSTBOOT_SKIP

        # make sure our disks are alive
        from partedUtils import DiskSet
        ds = DiskSet(self.anaconda)
        ds.startMPath()
        ds.startDmRaid()

        # parse the %pre
        self.ksdata = KickstartData()
        self.ksparser = KickstartPreParser(self.ksdata, None)

        try:
            self.ksparser.readKickstart(self.file)
        except KickstartError, e:
           if anaconda.intf:
               anaconda.intf.kickstartErrorWindow(e.__str__())
               sys.exit(0)
           else:
               raise KickstartError, e
Beispiel #2
0
    def setInstallData(self, anaconda):
        BaseInstallClass.setInstallData(self, anaconda)
        self.setEarlySwapOn(1)
        self.anaconda = anaconda
        self.id = self.anaconda.id
        self.id.firstboot = FIRSTBOOT_SKIP

        # make sure our disks are alive
        from partedUtils import DiskSet
        ds = DiskSet(self.anaconda)
        ds.startMPath()
        ds.startDmRaid()

        # parse the %pre
        self.ksdata = KickstartData()
        self.ksparser = KickstartPreParser(self.ksdata, None)

        try:
            self.ksparser.readKickstart(self.file)
        except KickstartError, e:
            if anaconda.intf:
                anaconda.intf.kickstartErrorWindow(e.__str__())
                sys.exit(0)
            else:
                raise KickstartError, e
Beispiel #3
0
    def doMultiPath(self, args):
        KickstartHandlers.doMultiPath(self, args)

        from partedUtils import DiskSet
        ds = DiskSet(self.anaconda)
        ds.startMPath()

        mpath = self.ksdata.mpaths[-1]
        log.debug("Searching for mpath '%s'" % (mpath.name,))
        for mp in DiskSet.mpList or []:
            it = True
            for dev in mpath.devices:
                dev = dev.split('/')[-1]
                log.debug("mpath '%s' has members %s" % (mp.name, list(mp.members)))
                if not dev in mp.members:
                    log.debug("mpath '%s' does not have device %s, skipping" \
                        % (mp.name, dev))
                    it = False
            if it:
                log.debug("found mpath '%s', changing name to %s" \
                    % (mp.name, mpath.name))
                newname = mpath.name
                ds.renameMPath(mp, newname)
                return
        ds.startMPath()
Beispiel #4
0
    def doMultiPath(self, args):
        KickstartHandlers.doMultiPath(self, args)

        from partedUtils import DiskSet

        ds = DiskSet(self.anaconda)
        ds.startMPath()

        from bdevid import bdevid as _bdevid

        bd = _bdevid()
        bd.load("scsi")

        mpath = self.ksdata.mpaths[-1]
        for mp in DiskSet.mpList or []:
            newname = ""
            it = True
            for path in mpath.paths:
                if not iutil.valid_dm_name(path.name):
                    msg = "Invalid name for a multipath device '%s' " "(resembles a partition?)." % path.name
                    raise KickstartValueError, formatErrorMsg(self.lineno, msg)
                dev = path.device
                log.debug("Searching for mpath having '%s' as a member, the scsi id or wwpn:lunid" % (dev,))
                log.debug("mpath '%s' has members %s" % (mp.name, list(mp.members)))
                if dev.find(":") != -1:
                    (wwpn, lunid) = dev.split(":")
                    if wwpn != "" and lunid != "":
                        if wwpn.startswith("0x"):
                            wwpn = wwpn[2:]
                        wwpn = wwpn.upper()
                        scsidev = iutil.getScsiDeviceByWwpnLunid(wwpn, lunid)
                        if scsidev != "":
                            dev = "/dev/%s" % scsidev
                            log.debug(
                                "'%s' is a member of the multipath device WWPN '%s' LUNID '%s'" % (dev, wwpn, lunid)
                            )
                if not dev in mp.members:
                    mpscsiid = bd.probe("/dev/mapper/%s" % mp.name)[0]["unique_id"]
                    if dev != mpscsiid:
                        log.debug("mpath '%s' does not have device %s, skipping" % (mp.name, dev))
                        it = False
                    else:
                        log.debug("Recognized --device=%s as the scsi id of '%s'" % (dev, mp.name))
                        newname = path.name
                        break
                else:
                    log.debug("Recognized --device=%s as a member of '%s'" % (dev, mp.name))
                    newname = path.name
                    break
            if it and mp.name != newname:
                log.debug("found mpath '%s', changing name to %s" % (mp.name, newname))
                mpath.name = mp.name
                ds.renameMPath(mp, newname)
                bd.unload("scsi")
                return
        bd.unload("scsi")
        ds.startMPath()
Beispiel #5
0
    def doMultiPath(self, args):
        KickstartHandlers.doMultiPath(self, args)

        from partedUtils import DiskSet
        ds = DiskSet(self.anaconda)
        ds.startMPath()

        from bdevid import bdevid as _bdevid
        bd = _bdevid()
        bd.load("scsi")

        mpath = self.ksdata.mpaths[-1]
        for mp in DiskSet.mpList or []:
            newname = ""
            it = True
            for path in mpath.paths:
                if not iutil.valid_dm_name(path.name):
                    msg = "Invalid name for a multipath device '%s' "\
                        "(resembles a partition?)." % path.name
                    raise KickstartValueError, formatErrorMsg(self.lineno, msg)
                dev = path.device
                log.debug(
                    "Searching for mpath having '%s' as a member, the scsi id or wwpn:lunid"
                    % (dev, ))
                log.debug("mpath '%s' has members %s" %
                          (mp.name, list(mp.members)))
                if dev.find(':') != -1:
                    (wwpn, lunid) = dev.split(':')
                    if wwpn != "" and lunid != "":
                        if wwpn.startswith("0x"):
                            wwpn = wwpn[2:]
                        wwpn = wwpn.upper()
                        scsidev = iutil.getScsiDeviceByWwpnLunid(wwpn, lunid)
                        if scsidev != "":
                            dev = "/dev/%s" % scsidev
                            log.debug(
                                "'%s' is a member of the multipath device WWPN '%s' LUNID '%s'"
                                % (dev, wwpn, lunid))
                if not dev in mp.members:
                    mpscsiid = bd.probe("/dev/mapper/%s" %
                                        mp.name)[0]['unique_id']
                    if dev != mpscsiid:
                        log.debug("mpath '%s' does not have device %s, skipping" \
                            % (mp.name, dev))
                        it = False
                    else:
                        log.debug(
                            "Recognized --device=%s as the scsi id of '%s'" %
                            (dev, mp.name))
                        newname = path.name
                        break
                else:
                    log.debug("Recognized --device=%s as a member of '%s'" %
                              (dev, mp.name))
                    newname = path.name
                    break
            if it and mp.name != newname:
                log.debug("found mpath '%s', changing name to %s" \
                    % (mp.name, newname))
                mpath.name = mp.name
                ds.renameMPath(mp, newname)
                bd.unload("scsi")
                return
        bd.unload("scsi")
        ds.startMPath()