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 > Fedora Design Team

 
 
LinkBack Thread Tools
 
Old 12-15-2010, 08:01 PM
David Lehman
 
Default Rename anaconda-image-cleanup and use it for all cleanup in liveinst.

New name is anaconda-cleanup.
---
anaconda.spec.in | 2 +-
data/liveinst/liveinst | 36 +-------------
pyanaconda/constants.py | 2 +
pyanaconda/rescue.py | 12 +++---
scripts/Makefile.am | 2 +-
scripts/anaconda-cleanup | 98 ++++++++++++++++++++++++++++++++++++++++
scripts/anaconda-image-cleanup | 98 ----------------------------------------
7 files changed, 111 insertions(+), 139 deletions(-)
create mode 100755 scripts/anaconda-cleanup
delete mode 100755 scripts/anaconda-image-cleanup

diff --git a/anaconda.spec.in b/anaconda.spec.in
index 3bfd268..784a5ec 100644
--- a/anaconda.spec.in
+++ b/anaconda.spec.in
@@ -217,7 +217,7 @@ update-desktop-database &> /dev/null || :
%{_libdir}/python*/site-packages/log_picker/*
%{_libdir}/anaconda*
%{_bindir}/analog
-%{_bindir}/anaconda-image-cleanup
+%{_bindir}/anaconda-cleanup
%ifarch %livearches
%{_bindir}/liveinst
%{_sbindir}/liveinst
diff --git a/data/liveinst/liveinst b/data/liveinst/liveinst
index 46213a8..7f7f8e5 100755
--- a/data/liveinst/liveinst
+++ b/data/liveinst/liveinst
@@ -98,38 +98,8 @@ for opt in `cat /proc/cmdline`; do
esac
done

-if [ $IMAGE_INSTALL = 0 ]; then
- # devkit-disks is now mounting lots of stuff. for now, let's just try to
- # unmount it all
- umount /media/* 2>/dev/null
- tac /proc/mounts | grep ^/dev | grep -v live |
- while read dev mntpoint rest; do
- # hack - don't unmount devices the storage test code requires
- if [ "$mntpoint" = "/mnt/anactest" ]; then
- continue
- fi
-
- if [ -b $dev ]; then
- umount $mntpoint 2>/dev/null
- fi
- done
-
- /sbin/swapoff -a
- /sbin/lvm vgchange -an --ignorelockingfailure
- for i in /dev/md*; do
- if [ ! -b $i ]; then
- continue
- fi
-
- case "$i" in
- /dev/md*p*)
- ;;
- *)
- mdadm --stop $i >/dev/null 2>&1
- ;;
- esac
- done
-fi
+# unmount anything that shouldn't be mounted prior to install
+anaconda-cleanup $ANACONDA $*

/sbin/udevadm control --env=ANACONDA=1

@@ -143,7 +113,7 @@ fi

# try to teardown the filesystems if this was an image install
if [ $IMAGE_INSTALL = 1 -a $RESCUE = 0 ]; then
- anaconda-image-cleanup
+ anaconda-cleanup
fi

rm -f /dev/.in_sysinit 2>/dev/null
diff --git a/pyanaconda/constants.py b/pyanaconda/constants.py
index e2013ca..498d41f 100644
--- a/pyanaconda/constants.py
+++ b/pyanaconda/constants.py
@@ -100,3 +100,5 @@ relabelFiles = ["/etc/rpm/macros", "/etc/dasd.conf", "/etc/zfcp.conf",
relabelDirs = ["/etc/sysconfig/network-scripts", "/var/lib/rpm", "/etc/lvm",
"/dev/mapper", "/etc/iscsi", "/var/lib/iscsi", "/root",
"/var/log", "/etc/modprobe.d", "/etc/sysconfig", "/var/cache/yum" ]
+
+ANACONDA_CLEANUP = "anaconda-cleanup"
diff --git a/pyanaconda/rescue.py b/pyanaconda/rescue.py
index ee023a0..181fe26 100644
--- a/pyanaconda/rescue.py
+++ b/pyanaconda/rescue.py
@@ -223,8 +223,8 @@ def runShell(screen = None, msg=""):
print (msg)

if flags.imageInstall:
- print(_("Run anaconda-image-cleanup to unmount the system "
- "when you are finished."))
+ print(_("Run %s to unmount the system when you are finished.")
+ % ANACONDA_CLEANUP)
else:
print(_("When finished please exit from the shell and your "
"system will reboot."))
@@ -379,8 +379,8 @@ def runRescue(anaconda):
msg = _("The system will reboot automatically when you exit "
"from the shell.")
else:
- msg = _("Run anaconda-image-cleanup to unmount the system "
- "when you are finished.")
+ msg = _("Run %s to unmount the system "
+ "when you are finished.") % ANACONDA_CLEANUP

if rc == -1:
if anaconda.ksdata:
@@ -479,8 +479,8 @@ def runRescue(anaconda):
msg = _("The system will reboot automatically when you "
"exit from the shell.")
else:
- msg = _("Run anaconda-image-cleanup to unmount the system "
- "when you are finished.")
+ msg = _("Run %s to unmount the system "
+ "when you are finished.") % ANACONDA_CLEANUP

ButtonChoiceWindow(screen, _("Rescue"),
_("An error occurred trying to mount some or all of your "
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 692dd34..329a2fc 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -25,7 +25,7 @@ dist_scripts_DATA = mk-images.* pyrc.py
dist_noinst_SCRIPTS = getlangnames.py upd-bootimage upd-initrd upd-kernel
makeupdates

-dist_bin_SCRIPTS = analog anaconda-image-cleanup
+dist_bin_SCRIPTS = analog anaconda-cleanup

stage2scriptsdir = $(datadir)/$(PACKAGE_NAME)
dist_stage2scripts_SCRIPTS = restart-anaconda
diff --git a/scripts/anaconda-cleanup b/scripts/anaconda-cleanup
new file mode 100755
index 0000000..5107bfc
--- /dev/null
+++ b/scripts/anaconda-cleanup
@@ -0,0 +1,98 @@
+#!/usr/bin/python
+"""
+ image install:
+
+ - unmount everything under /mnt/sysimage
+ - populate a devicetree with only the image "disks"
+
+ live install:
+
+ - unmount everything under /mnt/sysimage
+ - unmount everything under /media
+ - populate a devicetree and tear everything down
+
+"""
+import os
+import sys
+
+live_install = "--liveinst" in sys.argv
+image_install = False
+
+# see if there are disk images to take down
+sys_class_block = "/sys/class/block"
+for dev in os.listdir(sys_class_block):
+ if not dev.startswith("dm-"):
+ continue
+
+ uuid = open("%s/%s/dm/uuid" % (sys_class_block, dev)).read().strip()
+ if uuid.startswith("ANACONDA-"):
+ image_install = True
+ break
+
+# set the imageInstall flag so the logger won't log to the syslog
+from pyanaconda.flags import flags
+flags.imageInstall = True
+
+import pyanaconda.anaconda_log
+pyanaconda.anaconda_log.init()
+
+from pyanaconda import iutil
+
+from pyanaconda.cmdline import InstallInterface
+from pyanaconda.storage import StorageDiscoveryConfig
+from pyanaconda.storage.devicetree import DeviceTree
+from pyanaconda.storage import devicelibs
+
+intf = InstallInterface()
+storage_config = StorageDiscoveryConfig()
+
+# find devices representing disk images
+sys_class_block = "/sys/class/block"
+for dev in os.listdir(sys_class_block):
+ if not dev.startswith("dm-"):
+ continue
+
+ name = open("%s/%s/dm/name" % (sys_class_block, dev)).read().strip()
+ uuid = open("%s/%s/dm/uuid" % (sys_class_block, dev)).read().strip()
+ if not name or not uuid.startswith("ANACONDA-"):
+ continue
+
+ loop = os.listdir("%s/%s/slaves" % (sys_class_block, dev))[0].strip()
+ path = devicelibs.loop.get_device_path(loop)
+ storage_config.diskImages[name] = path
+
+if not image_install and not live_install:
+ print >> sys.stderr, "not a live install or an image install -- exiting"
+ sys.exit(1)
+
+# unmount filesystems
+for mounted in reversed(open("/proc/mounts").readlines()):
+ (device, mountpoint, rest) = mounted.split(" ", 2)
+ if mountpoint.startswith("/mnt/anactest"):
+ continue
+
+ # If this is for an image install, only unmount all filesystems under
+ # /mnt/sysimage
+ if image_install and not mountpoint.startswith("/mnt/sysimage"):
+ continue
+
+ # If this is for a live install, unmount any non-nodev filesystem that
+ # isn't related to the live image.
+ if (not mountpoint.startswith("/media") and
+ not device.startswith("/dev") or
+ "live" in mounted):
+ continue
+
+ os.system("umount %s" % mountpoint)
+
+os.system("udevadm control --env=ANACONDA=1")
+os.system("udevadm trigger --subsystem-match block")
+os.system("udevadm settle")
+devicetree = DeviceTree(intf=intf, conf=storage_config)
+devicetree.populate(cleanupOnly=True)
+devicetree.teardownAll()
+for name in devicetree.diskImages.keys():
+ device = devicetree.getDeviceByName(name)
+ device.deactivate(recursive=True)
+os.system("udevadm control --env=ANACONDA=0")
+
diff --git a/scripts/anaconda-image-cleanup b/scripts/anaconda-image-cleanup
deleted file mode 100755
index 5107bfc..0000000
--- a/scripts/anaconda-image-cleanup
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/python
-"""
- image install:
-
- - unmount everything under /mnt/sysimage
- - populate a devicetree with only the image "disks"
-
- live install:
-
- - unmount everything under /mnt/sysimage
- - unmount everything under /media
- - populate a devicetree and tear everything down
-
-"""
-import os
-import sys
-
-live_install = "--liveinst" in sys.argv
-image_install = False
-
-# see if there are disk images to take down
-sys_class_block = "/sys/class/block"
-for dev in os.listdir(sys_class_block):
- if not dev.startswith("dm-"):
- continue
-
- uuid = open("%s/%s/dm/uuid" % (sys_class_block, dev)).read().strip()
- if uuid.startswith("ANACONDA-"):
- image_install = True
- break
-
-# set the imageInstall flag so the logger won't log to the syslog
-from pyanaconda.flags import flags
-flags.imageInstall = True
-
-import pyanaconda.anaconda_log
-pyanaconda.anaconda_log.init()
-
-from pyanaconda import iutil
-
-from pyanaconda.cmdline import InstallInterface
-from pyanaconda.storage import StorageDiscoveryConfig
-from pyanaconda.storage.devicetree import DeviceTree
-from pyanaconda.storage import devicelibs
-
-intf = InstallInterface()
-storage_config = StorageDiscoveryConfig()
-
-# find devices representing disk images
-sys_class_block = "/sys/class/block"
-for dev in os.listdir(sys_class_block):
- if not dev.startswith("dm-"):
- continue
-
- name = open("%s/%s/dm/name" % (sys_class_block, dev)).read().strip()
- uuid = open("%s/%s/dm/uuid" % (sys_class_block, dev)).read().strip()
- if not name or not uuid.startswith("ANACONDA-"):
- continue
-
- loop = os.listdir("%s/%s/slaves" % (sys_class_block, dev))[0].strip()
- path = devicelibs.loop.get_device_path(loop)
- storage_config.diskImages[name] = path
-
-if not image_install and not live_install:
- print >> sys.stderr, "not a live install or an image install -- exiting"
- sys.exit(1)
-
-# unmount filesystems
-for mounted in reversed(open("/proc/mounts").readlines()):
- (device, mountpoint, rest) = mounted.split(" ", 2)
- if mountpoint.startswith("/mnt/anactest"):
- continue
-
- # If this is for an image install, only unmount all filesystems under
- # /mnt/sysimage
- if image_install and not mountpoint.startswith("/mnt/sysimage"):
- continue
-
- # If this is for a live install, unmount any non-nodev filesystem that
- # isn't related to the live image.
- if (not mountpoint.startswith("/media") and
- not device.startswith("/dev") or
- "live" in mounted):
- continue
-
- os.system("umount %s" % mountpoint)
-
-os.system("udevadm control --env=ANACONDA=1")
-os.system("udevadm trigger --subsystem-match block")
-os.system("udevadm settle")
-devicetree = DeviceTree(intf=intf, conf=storage_config)
-devicetree.populate(cleanupOnly=True)
-devicetree.teardownAll()
-for name in devicetree.diskImages.keys():
- device = devicetree.getDeviceByName(name)
- device.deactivate(recursive=True)
-os.system("udevadm control --env=ANACONDA=0")
-
--
1.7.3.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 12:39 PM.

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