def handle_swapcfg(swapcfg): """handle the swap config, calling setup_swap if necessary. return None or (filename, size) """ if not isinstance(swapcfg, dict): LOG.warning("input for swap config was not a dict.") return None fname = swapcfg.get("filename", "/swap.img") size = swapcfg.get("size", 0) maxsize = swapcfg.get("maxsize", None) if not (size and fname): LOG.debug("no need to setup swap") return if os.path.exists(fname): if not os.path.exists("/proc/swaps"): LOG.debug( "swap file %s exists, but no /proc/swaps exists, being safe", fname, ) return fname try: for line in util.load_file("/proc/swaps").splitlines(): if line.startswith(fname + " "): LOG.debug("swap file %s already in use", fname) return fname LOG.debug("swap file %s exists, but not in /proc/swaps", fname) except Exception: LOG.warning("swap file %s exists. Error reading /proc/swaps", fname) return fname try: if isinstance(size, str) and size != "auto": size = util.human2bytes(size) if isinstance(maxsize, str): maxsize = util.human2bytes(maxsize) return setup_swapfile(fname=fname, size=size, maxsize=maxsize) except Exception as e: LOG.warning("failed to setup swap: %s", e) return None
def handle_swapcfg(swapcfg): """handle the swap config, calling setup_swap if necessary. return None or (filename, size) """ if not isinstance(swapcfg, dict): LOG.warning("input for swap config was not a dict.") return None fname = swapcfg.get('filename', '/swap.img') size = swapcfg.get('size', 0) maxsize = swapcfg.get('maxsize', None) if not (size and fname): LOG.debug("no need to setup swap") return if os.path.exists(fname): if not os.path.exists("/proc/swaps"): LOG.debug("swap file %s exists, but no /proc/swaps exists, " "being safe", fname) return fname try: for line in util.load_file("/proc/swaps").splitlines(): if line.startswith(fname + " "): LOG.debug("swap file %s already in use", fname) return fname LOG.debug("swap file %s exists, but not in /proc/swaps", fname) except Exception: LOG.warning("swap file %s exists. Error reading /proc/swaps", fname) return fname try: if isinstance(size, str) and size != "auto": size = util.human2bytes(size) if isinstance(maxsize, str): maxsize = util.human2bytes(maxsize) return setup_swapfile(fname=fname, size=size, maxsize=maxsize) except Exception as e: LOG.warning("failed to setup swap: %s", e) return None