[entropy.client.interfaces.trigger] remove deprecated triggers

This commit is contained in:
Fabio Erculiani
2009-06-19 10:24:43 +02:00
parent 0506ce20f9
commit 9c16fff799

View File

@@ -140,13 +140,6 @@ class Trigger:
functions.remove("ebuild_postinstall")
functions.append('kernelmod')
# FIXME: deprecated, will be removed
if x.startswith('/boot/kernel-'):
c_item = self._trigger_data.setdefault('addbootablekernel', set())
c_item.add(x)
if "addbootablekernel" not in functions:
functions.append('addbootablekernel')
if "env_update" not in functions:
if x.startswith('/etc/env.d/'):
functions.append('env_update')
@@ -190,13 +183,6 @@ class Trigger:
for x in self.pkgdata['removecontent']:
# FIXME: deprecated
if x.startswith('/boot/kernel-'):
c_item = self._trigger_data.setdefault('removebootablekernel', set())
c_item.add(x)
if "removebootablekernel" not in functions:
functions.append('removebootablekernel')
if x.startswith('/etc/init.d/'):
c_item = self._trigger_data.setdefault('initdisable', set())
c_item.add(x)
@@ -682,71 +668,6 @@ class Trigger:
header = red(" ##")
)
# FIXME: deprecated
def trigger_addbootablekernel(self):
boot_mount = False
if os.path.ismount("/boot"):
boot_mount = True
kernels = sorted(self._trigger_data['addbootablekernel'])
if boot_mount:
kernels = [x[len("/boot"):] for x in kernels]
for kernel in kernels:
mykernel = kernel.split('/kernel-')[1]
initramfs = "/boot/initramfs-"+mykernel
if initramfs not in self.pkgdata['content']:
initramfs = ''
elif boot_mount:
initramfs = initramfs[len("/boot"):]
# configure GRUB
self.Entropy.clientLog.log(
ETP_LOGPRI_INFO,
ETP_LOGLEVEL_NORMAL,
"[POST] Configuring GRUB bootloader. Adding the new kernel..."
)
mytxt = "%s. %s ..." % (
_("Configuring GRUB bootloader"),
_("Adding the new kernel"),
)
self.Entropy.updateProgress(
brown(mytxt),
importance = 0,
header = red(" ## ")
)
self.trigger_configure_boot_grub(kernel, initramfs)
# FIXME: deprecated
def trigger_removebootablekernel(self):
kernels = sorted(self._trigger_data['removebootablekernel'])
for kernel in kernels:
initramfs = "/boot/initramfs-"+kernel[13:]
if initramfs not in self.pkgdata['content']:
initramfs = ''
# configure GRUB
self.Entropy.clientLog.log(
ETP_LOGPRI_INFO,
ETP_LOGLEVEL_NORMAL,
"[POST] Configuring GRUB bootloader. Removing the selected kernel..."
)
mytxt = "%s. %s ..." % (
_("Configuring GRUB bootloader"),
_("Removing the selected kernel"),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
self.trigger_remove_boot_grub(kernel,initramfs)
def trigger_run_ldconfig(self):
if not etpConst['systemroot']:
myroot = "/"
@@ -1214,259 +1135,3 @@ class Trigger:
myroot, name,), shell = True)
return 0
# FIXME: deprecated
def __get_entropy_kernel_grub_line(self, kernel):
sys_name = self.Entropy.SystemSettings['system']['name']
return "title=%s (%s)\n" % (sys_name, os.path.basename(kernel),)
# FIXME: deprecated
def trigger_configure_boot_grub(self, kernel, initramfs):
if not os.path.isdir(etpConst['systemroot']+"/boot/grub"):
os.makedirs(etpConst['systemroot']+"/boot/grub")
if os.path.isfile(etpConst['systemroot']+"/boot/grub/grub.conf"):
# open in append
grub = open(etpConst['systemroot']+"/boot/grub/grub.conf","aw")
shutil.copy2(etpConst['systemroot']+"/boot/grub/grub.conf",
etpConst['systemroot']+"/boot/grub/grub.conf.old.add")
# get boot dev
boot_dev = self.trigger_get_grub_boot_dev()
# test if entry has been already added
grubtest = open(etpConst['systemroot']+"/boot/grub/grub.conf","r")
content = grubtest.readlines()
content = [unicode(x,'raw_unicode_escape') for x in content]
for line in content:
if line.find(self.__get_entropy_kernel_grub_line(kernel)) != -1:
grubtest.close()
return
# also check if we have the same kernel listed
if (line.find("kernel") != 1) and \
(line.find(os.path.basename(kernel)) != -1) and not \
line.strip().startswith("#"):
grubtest.close()
return
else:
# create
boot_dev = "(hd0,0)"
grub = open(etpConst['systemroot']+"/boot/grub/grub.conf","w")
# write header - guess (hd0,0)... since it is weird
# having a running system without a bootloader, at least, grub.
grub.write("default=0\ntimeout=10\n")
cmdline = ''
if os.access("/proc/cmdline", os.R_OK):
cmdline_f = open("/proc/cmdline","r")
cmdline = " "+cmdline_f.readline().strip()
cmdline_f.close()
grub.write(self.__get_entropy_kernel_grub_line(kernel))
grub.write("\troot "+boot_dev+"\n")
grub.write("\tkernel "+kernel+cmdline+"\n")
if initramfs:
grub.write("\tinitrd "+initramfs+"\n")
grub.write("\tsavedefault\n")
grub.write("\n")
grub.flush()
grub.close()
# FIXME: deprecated
def trigger_remove_boot_grub(self, kernel,initramfs):
if os.path.isdir(etpConst['systemroot']+"/boot/grub") and \
os.path.isfile(etpConst['systemroot']+"/boot/grub/grub.conf"):
shutil.copy2(etpConst['systemroot']+"/boot/grub/grub.conf",
etpConst['systemroot']+"/boot/grub/grub.conf.old.remove")
f = open(etpConst['systemroot']+"/boot/grub/grub.conf","r")
grub_conf = f.readlines()
f.close()
content = [unicode(x,'raw_unicode_escape') for x in grub_conf]
try:
kernel, initramfs = (unicode(kernel,'raw_unicode_escape'),
unicode(initramfs,'raw_unicode_escape'),)
except TypeError:
pass
new_conf = []
skip = False
for line in content:
kernel_grub_line = self.__get_entropy_kernel_grub_line(kernel)
if (line.find(kernel_grub_line) != -1):
skip = True
continue
if line.strip().startswith("title"):
skip = False
if not skip or line.strip().startswith("#"):
new_conf.append(line)
f = open(etpConst['systemroot']+"/boot/grub/grub.conf","w")
for line in new_conf:
try:
f.write(line)
except UnicodeEncodeError:
f.write(line.encode('utf-8'))
f.flush()
f.close()
# FIXME: deprecated
def trigger_get_grub_boot_dev(self):
if etpConst['systemroot']:
return "(hd0,0)"
import re
df_avail = subprocess.call("which df &> /dev/null", shell = True)
if df_avail != 0:
mytxt = "%s: %s! %s. %s (hd0,0)." % (
bold(_("QA")),
brown(_("Cannot find df")),
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
grub_avail = subprocess.call("which grub &> /dev/null", shell = True)
if grub_avail != 0:
mytxt = "%s: %s! %s. %s (hd0,0)." % (
bold(_("QA")),
brown(_("Cannot find grub")),
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
from entropy.tools import getstatusoutput
gboot = getstatusoutput("df /boot")[1].split("\n")[-1].split()[0]
if gboot.startswith("/dev/"):
# it's ok - handle /dev/md
if gboot.startswith("/dev/md"):
md = os.path.basename(gboot)
if not md.startswith("md"):
md = "md"+md
f = open("/proc/mdstat","r")
mdstat = f.readlines()
mdstat = [x for x in mdstat if x.startswith(md)]
f.close()
if mdstat:
mdstat = mdstat[0].strip().split()
mddevs = []
for x in mdstat:
if x.startswith("sd"):
mddevs.append(x[:-3])
mddevs = sorted(mddevs)
if mddevs:
gboot = "/dev/"+mddevs[0]
else:
gboot = "/dev/sda1"
else:
gboot = "/dev/sda1"
# get disk
match = re.subn("[0-9]","",gboot)
gdisk = match[0]
if gdisk == '':
mytxt = "%s: %s %s %s. %s! %s (hd0,0)." % (
bold(_("QA")),
brown(_("cannot match device")),
brown(str(gboot)),
brown(_("with a grub one")), # 'cannot match device /dev/foo with a grub one'
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
match = re.subn("[a-z/]","",gboot)
try:
gpartnum = str(int(match[0])-1)
except ValueError:
mytxt = "%s: %s: %s. %s. %s (hd0,0)." % (
bold(_("QA")),
brown(_("grub translation not supported for")),
brown(str(gboot)),
brown(_("Cannot properly configure grub.conf")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
# now match with grub
device_map = etpConst['packagestmpdir']+"/grub.map"
if os.path.isfile(device_map):
os.remove(device_map)
# generate device.map
subprocess.call('echo "quit" | grub --device-map="%s" --no-floppy --batch &> /dev/null' % (device_map,), shell = True)
if os.path.isfile(device_map):
f = open(device_map,"r")
device_map_file = f.readlines()
f.close()
grub_dev = [x for x in device_map_file if (x.find(gdisk) != -1)]
if grub_dev:
grub_disk = grub_dev[0].strip().split()[0]
grub_dev = grub_disk[:-1]+","+gpartnum+")"
return grub_dev
else:
mytxt = "%s: %s. %s! %s (hd0,0)." % (
bold(_("QA")),
brown(_("cannot match grub device with a Linux one")),
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
else:
mytxt = "%s: %s. %s! %s (hd0,0)." % (
bold(_("QA")),
brown(_("cannot find generated device.map")),
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"
else:
mytxt = "%s: %s. %s! %s (hd0,0)." % (
bold(_("QA")),
brown(_("cannot run df /boot")),
brown(_("Cannot properly configure the kernel")),
brown(_("Defaulting to")),
)
self.Entropy.updateProgress(
mytxt,
importance = 0,
header = red(" ## ")
)
return "(hd0,0)"