def generate_data_model(self, image_info): ext = self.path.split('.')[-1] options = { 'volname' : 'Volume Name', 'fs' : 'File System Personality', 'size' : 'Total Size' } options = {k: image_info[v] for k, v in options.items()} str_size = ' '.join(options['size'].split(' ')[:2]) options['size'] = Helpers.get_bytes(str_size) options['type'] = ext if ext != 'dmg' else 'UDIF' return options
def size(self, size): size = Helpers.get_bytes(size) if isinstance(size, str) else size # General validation testing that size is an int and that space is available on disk if not Helpers.is_float(size): raise Exception('Invalid argument. Size must be an integer') elif size >= Helpers.bytes_available(): raise Exception('Invalid argument. Size is too large, not enough space.') # Different handling cases depending on if size has been assigned before if self._size: self.run_hdiutil_command('resize', self.path, size=Helpers.hr_bytes(size)) self._size = size