def add_swap(cfg, target, fstab): # add swap file per cfg to filesystem root at target. update fstab. # # swap: # filename: 'swap.img', # size: None # (or 1G) # maxsize: 2G if 'swap' in cfg and not cfg.get('swap'): LOG.debug("disabling 'add_swap' due to config") return swapcfg = cfg.get('swap', {}) fname = swapcfg.get('filename', None) size = swapcfg.get('size', None) maxsize = swapcfg.get('maxsize', None) if size: size = util.human2bytes(str(size)) if maxsize: maxsize = util.human2bytes(str(maxsize)) swap.setup_swapfile(target=target, fstab=fstab, swapfile=fname, size=size, maxsize=maxsize)
def get_lv_size_bytes(lv_name): """ get the size in bytes of a logical volume specified by lv_name.""" result = _filter_lvm_info('lvdisplay', 'lv_name', 'lv_size', lv_name, args=['--units=B']) if result: return util.human2bytes(result[0])
def swap_main(args): # curtin swap [--size=4G] [--target=/] [--fstab=/etc/fstab] [swap] state = util.load_command_environment() if args.target is not None: state['target'] = args.target if args.fstab is not None: state['fstab'] = args.fstab if state['target'] is None: sys.stderr.write("Unable to find target. " "Use --target or set TARGET_MOUNT_POINT\n") sys.exit(2) size = args.size if size is not None and size.lower() == "auto": size = None if size is not None: try: size = util.human2bytes(size) except ValueError as e: sys.stderr.write("%s\n" % e) sys.exit(2) if args.maxsize is not None: args.maxsize = util.human2bytes(args.maxsize) swap.setup_swapfile(target=state['target'], fstab=state['fstab'], swapfile=args.swapfile, size=size, maxsize=args.maxsize, force=args.force) sys.exit(2)
def test_h2b_b2b(self): for size_str in ['10G', '20G', '2T', '12K', '1M', '1023K']: self.assertEqual(util.bytes2human(util.human2bytes(size_str)), size_str)
def test_float_in_string(self): self.assertEqual(int(3.5 * self.GB), util.human2bytes("3.5G"))
def test_GB_equals_G(self): self.assertEqual(util.human2bytes("3GB"), util.human2bytes("3G"))
def test_suffix_B(self): self.assertEqual(100, util.human2bytes("100B"))
def test_suffix_G(self): self.assertEqual(int(10 * self.GB), util.human2bytes("10G"))
def test_suffix_M(self): self.assertEqual(100 * self.MB, util.human2bytes("100M"))
def test_no_suffix_is_bytes(self): self.assertEqual(100, util.human2bytes("100"))
def test_int_gets_int(self): self.assertEqual(100, util.human2bytes(100))
def test_float_equal_int_is_allowed(self): self.assertEqual(1000, util.human2bytes(1000.0))
def _conv_size(s): if isinstance(s, str): if '%' in s: return s return int(human2bytes(s)) return s