Mini Shell
# Copyright 2015, Truveris Inc. All Rights Reserved.
from __future__ import absolute_import
def parse_device_bitmap(line):
tokens = line.split()[1:]
page_counts = tokens.pop(0).split("/")
existing_pages = int(page_counts[0])
total_pages = int(page_counts[1])
if tokens.pop(0) != "pages":
raise ValueError("invalid device bitmap syntax (pages): {0}"
.format(line))
pages_size = tokens.pop(0)[1:-2]
chunk_size = tokens.pop(0)
if not tokens.pop(0).startswith("chunk"):
raise ValueError("invalid device bitmap syntax (chunk): {0}"
.format(line))
if tokens and tokens.pop(0) == "file:":
file_ = tokens.pop(0)
else:
file_ = None
return {
"existing_pages": existing_pages,
"total_pages": total_pages,
"pages_size": pages_size,
"chunk_size": chunk_size,
"file": file_,
}
Zerion Mini Shell 1.0