FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > EPEL Development

 
 
LinkBack Thread Tools
 
Old 09-03-2010, 10:02 PM
"Brian C. Lane"
 
Default Add noeject support to cdrom eject handling (#477887)

Resolves: rhbz#477887
---
anaconda | 8 +++++++-
image.py | 18 ++++++++++++++----
2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/anaconda b/anaconda
index 2277795..106928b 100755
--- a/anaconda
+++ b/anaconda
@@ -241,6 +241,8 @@ def parseOptions():
op.add_option("--noiscsi", dest="iscsi", action="store_false", default=False)
op.add_option("--iscsi", action="store_true")

+ op.add_option("--noeject", action="store_true", default=False)
+
# Miscellaneous
op.add_option("--module", action="append", default=[])
op.add_option("--nomount", dest="rescue_nomount", action="store_true", default=False)
@@ -482,6 +484,7 @@ class Anaconda:
self.updateSrc = None
self.canReIPL = False
self.reIPLMessage = None
+ self.noeject = False

def setDispatch(self):
self.dispatch = dispatch.Dispatcher(self)
@@ -522,7 +525,7 @@ class Anaconda:
def setMethod(self):
if self.methodstr.startswith('cdrom://'):
from image import CdromInstallMethod
- self.method = CdromInstallMethod(self.methodstr, self.rootPath, self.intf)
+ self.method = CdromInstallMethod(self.methodstr, self.rootPath, self.intf, self.noeject)
elif self.methodstr.startswith('nfs:/'):
from image import NfsInstallMethod
self.method = NfsInstallMethod(self.methodstr, self.rootPath, self.intf)
@@ -669,6 +672,9 @@ if __name__ == "__main__":
if opts.virtpconsole:
flags.virtpconsole = opts.virtpconsole

+ if opts.noeject:
+ anaconda.noeject = True
+
# probing for hardware on an s390 seems silly...
if rhpl.getArch() == "s390":
opts.isHeadless = True
diff --git a/image.py b/image.py
index ab689a8..dcdeca5 100644
--- a/image.py
+++ b/image.py
@@ -140,7 +140,10 @@ class CdromInstallMethod(ImageInstallMethod):
% ("/mnt/source",))

def ejectCD(self):
- isys.ejectCdrom(self.device, makeDevice=1)
+ if self.noeject:
+ log.info("noeject in effect, not ejecting cdrom")
+ else:
+ isys.ejectCdrom(self.device, makeDevice=1)

def badPackageError(self, pkgname):
return _("The file %s cannot be opened. This is due to a missing "
@@ -257,7 +260,10 @@ class CdromInstallMethod(ImageInstallMethod):
break

if not done:
- isys.ejectCdrom(self.device)
+ if self.noeject:
+ log.info("noeject in effect, not ejecting cdrom")
+ else:
+ isys.ejectCdrom(self.device)

while not done:
if self.intf is not None:
@@ -303,7 +309,10 @@ class CdromInstallMethod(ImageInstallMethod):
_("That's not the correct %s CDROM.")
% (productName,))
isys.umount("/mnt/source")
- isys.ejectCdrom(self.device)
+ if self.noeject:
+ log.info("noeject in effect, not ejecting cdrom")
+ else:
+ isys.ejectCdrom(self.device)
except:
self.messageWindow(_("Error"),
_("Unable to access the CDROM."))
@@ -327,7 +336,7 @@ class CdromInstallMethod(ImageInstallMethod):
except SystemError:
pass

- def __init__(self, method, rootPath, intf):
+ def __init__(self, method, rootPath, intf, noeject=False):
"""@param method cdrom://device:/path"""
url = method[8:]
(self.device, tree) = string.split(url, ":", 1)
@@ -337,6 +346,7 @@ class CdromInstallMethod(ImageInstallMethod):
self.progressWindow = intf.progressWindow
self.waitWindow = intf.waitWindow
self.loopbackFile = None
+ self.noeject = noeject

# figure out which disc is in. if we fail for any reason,
# assume it's just disc1.
--
1.7.2.2

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@redhat.com
https://www.redhat.com/mailman/listinfo/anaconda-devel-list
 

Thread Tools




All times are GMT. The time now is 03:47 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org