def hide_loopdev_presentation(): try: with open(_LOOP_RULE_PTH, 'w') as wf: wf.write('KERNEL=="loop*", ENV{UDISKS_PRESENTATION_HIDE}="1"') runner.quiet('udevadm trigger') except: pass
def load_module(module): found = False for line in open('/proc/modules').xreadlines(): if line.startswith("%s " % module): found = True break if not found: msger.info("Loading %s..." % module) runner.quiet(['modprobe', module])
def unhide_loopdev_presentation(): global _LOOP_RULE_PTH if not _LOOP_RULE_PTH: return try: os.unlink(_LOOP_RULE_PTH) runner.quiet('udevadm trigger') except: pass
def get_uncompressed_data_from_url(url, filename, proxies): filename = myurlgrab(url, filename, proxies) suffix = None if filename.endswith(".gz"): suffix = ".gz" runner.quiet(['gunzip', "-f", filename]) elif filename.endswith(".bz2"): suffix = ".bz2" runner.quiet(['bunzip2', "-f", filename]) if suffix: filename = filename.replace(suffix, "") return filename
def _get_uncompressed_data_from_url(url, filename, proxies): filename = myurlgrab(url, filename, proxies) suffix = None if filename.endswith(".gz"): suffix = ".gz" runner.quiet(['gunzip', "-f", filename]) elif filename.endswith(".bz2"): suffix = ".bz2" runner.quiet(['bunzip2', "-f", filename]) if suffix: filename = filename.replace(suffix, "") return filename
def unmount(self): if self.mounted: msger.debug("Unmounting directory %s" % self.mountdir) runner.quiet('sync') # sync the data on this mount point rc = runner.show([self.umountcmd, "-l", self.mountdir]) if rc == 0: self.mounted = False else: raise MountError("Failed to umount %s" % self.mountdir) if self.rmdir and not self.mounted: try: os.rmdir(self.mountdir) except OSError, e: pass self.rmdir = False
def cleanup(self): if self.device is None: return if self._kpseek(self.device): if self.created: for i in range(3, os.sysconf("SC_OPEN_MAX")): try: os.close(i) except: pass runner.quiet([self.kpartxcmd, "-d", self.device]) if self._loseek(self.device): runner.quiet([self.losetupcmd, "-d", self.device]) # FIXME: should sleep a while between two loseek if self._loseek(self.device): msger.warning("Can't cleanup loop device %s" % self.device) else: os.unlink(self.device)
def hide_loopdev_presentation(): udev_rules = "80-prevent-loop-present.rules" udev_rules_dir = [ '/usr/lib/udev/rules.d/', '/lib/udev/rules.d/', '/etc/udev/rules.d/' ] global _LOOP_RULE_PTH for rdir in udev_rules_dir: if os.path.exists(rdir): _LOOP_RULE_PTH = os.path.join(rdir, udev_rules) if not _LOOP_RULE_PTH: return try: with open(_LOOP_RULE_PTH, 'w') as wf: wf.write('KERNEL=="loop*", ENV{UDISKS_PRESENTATION_HIDE}="1"') runner.quiet('udevadm trigger') except: pass
def my_fuser(fp): fuser = find_binary_path("fuser") if not os.path.exists(fp): return False rc = runner.quiet([fuser, "-s", fp]) if rc == 0: for pid in runner.outs([fuser, fp]).split(): fd = open("/proc/%s/cmdline" % pid, "r") cmdline = fd.read() fd.close() if cmdline[:-1] == "/bin/bash": return True # not found return False
def checkRpmIntegrity(bin_rpm, package): return runner.quiet([bin_rpm, "-K", "--nosignature", package])
def __fsck(self): msger.debug("Checking filesystem %s" % self.disk.lofile) runner.quiet([self.btrfsckcmd, self.disk.lofile])
def __fsck(self): msger.info("Checking filesystem %s" % self.disk.lofile) runner.quiet(["/sbin/e2fsck", "-f", "-y", self.disk.lofile])
def unhide_loopdev_presentation(): try: os.unlink(_LOOP_RULE_PTH) runner.quiet('udevadm trigger') except: pass