Skip to content
Snippets Groups Projects
Commit 96171db1 authored by Nikos Skalkotos's avatar Nikos Skalkotos
Browse files

Add size param in the Output.Progress constructor

parent 5f27b178
No related branches found
No related tags found
No related merge requests found
......@@ -195,9 +195,8 @@ class DiskDevice(object):
def enable(self):
"""Enable a newly created DiskDevice"""
self.progressbar = self.out.Progress("Launching helper VM", "percent")
self.progressbar.max = 100
self.progressbar.goto(1)
self.progressbar = self.out.Progress(100, "Launching helper VM",
"percent")
eh = self.g.set_event_callback(self.progress_callback,
guestfs.EVENT_PROGRESS)
self.g.launch()
......@@ -419,9 +418,8 @@ class DiskDevice(object):
MB = 2 ** 20
blocksize = 4 * MB # 4MB
size = self.meta['SIZE']
progress_size = (size + MB - 1) // MB # in MB
progressbar = self.out.Progress("Dumping image file", 'mb')
progressbar.max = progress_size
progr_size = (size + MB - 1) // MB # in MB
progressbar = self.out.Progress(progr_size, "Dumping image file", 'mb')
with open(self.real_device, 'r') as src:
with open(outfile, "w") as dst:
......
......@@ -91,8 +91,9 @@ class Output(object):
Progress = property(_get_progress)
class _Progress(object):
def __init__(self, title, bar_type='default'):
def __init__(self, size, title, bar_type='default'):
self.output.output("%s..." % title, False)
self.size = size
def goto(self, dest):
pass
......@@ -140,7 +141,7 @@ class Output_wth_progress(Output_wth_colors):
'mb': '%(index)d/%(max)d MB'
}
def __init__(self, title, bar_type='default'):
def __init__(self, size, title, bar_type='default'):
super(Output_wth_progress._Progress, self).__init__()
self.title = title
self.fill = '#'
......@@ -148,6 +149,10 @@ class Output_wth_progress(Output_wth_colors):
self.bar_suffix = '] '
self.message = ("%s:" % self.title).ljust(self.MESSAGE_LENGTH)
self.suffix = self.template[bar_type]
self.max = size
# print empty progress bar workaround
self.goto(1)
def success(self, result):
self.output.output("\r%s... \033[K" % self.title, False)
......
......@@ -60,10 +60,11 @@ class MD5:
def compute(self, filename, size):
BLOCKSIZE = 2 ** 22 # 4MB
MB = 2 ** 20
BLOCKSIZE = 4 * MB # 4MB
progressbar = self.out.Progress("Calculating md5sum:", 'mb')
progressbar.max = ((size + 2 ** 20 - 1) // (2 ** 20))
prog_size = ((size + MB - 1) // MB) # in MB
progressbar = self.out.Progress(prog_size, "Calculating md5sum:", 'mb')
md5 = hashlib.md5()
with open(filename, "r") as src:
left = size
......@@ -72,7 +73,7 @@ class MD5:
data = src.read(length)
md5.update(data)
left -= length
progressbar.goto((size - left) // (2 ** 20))
progressbar.goto((size - left) // MB)
checksum = md5.hexdigest()
progressbar.success(checksum)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment