diff options
author | yves <steve.harrison@gmx.net> | 2011-12-22 19:47:36 +0100 |
---|---|---|
committer | yves <steve.harrison@gmx.net> | 2011-12-22 19:47:36 +0100 |
commit | cb011dab044bd886823b167ce7e60c916a1fa146 (patch) | |
tree | aaa17efe61955a17a3ace2ab400fd994be03f8b4 | |
parent | 677649923e407111be95328ffda5af5e14441e0b (diff) | |
download | iscsi-helper-cb011dab044bd886823b167ce7e60c916a1fa146.tar.gz iscsi-helper-cb011dab044bd886823b167ce7e60c916a1fa146.tar.bz2 iscsi-helper-cb011dab044bd886823b167ce7e60c916a1fa146.zip |
rewrote basic functionality for createAndExport, further abstraction may be used
-rwxr-xr-x | createAndExportDisk.py | 27 | ||||
-rw-r--r-- | shared.py | 33 |
2 files changed, 37 insertions, 23 deletions
diff --git a/createAndExportDisk.py b/createAndExportDisk.py index 30093e6..f343b80 100755 --- a/createAndExportDisk.py +++ b/createAndExportDisk.py @@ -10,8 +10,9 @@ defaultDiskSize = '3G' # configure known options usage = "usage: %prog VMNAME [options]" parser = optparse.OptionParser(usage=usage) -parser.add_option("-s", "--size", dest="size", default=defaultDiskSize, - help="SIZE of vm root disk", metavar="SIZE") +parser.add_option("-s", "--disk-size", dest="size", + default=defaultDiskSize, help="size of the disk", + metavar="SIZE") parser.add_option("-v", "--verbose", dest="verbose", action="store_true", default=False, help="should I do output") @@ -29,15 +30,23 @@ elif len(args) > 1: vmName = parseVmName(args[0]) diskSize, diskSizeUnit = parseDiskSize(options.size) +#ip, ipLastBlock = parseIp(args[1]) -cmds = [ - ["lvcreate", "-n", vmName, "-L", str(diskSize) + str(diskSizeUnit)], - ["mkfs.ext4", "/dev/" + volumeGroupName + "/" + vmName, "-l",vmName], - ["addIscsiDisk", vmName] -] +pl = ProgressLogger(3) -execPlan = ExecutionPlan(cmds,vmName) -execPlan.execute_all() +lf = openLogFile() + +pl.start('create logical volume') +execute(["lvcreate", "-n", vmName, "-L", str(diskSize) + str(diskSizeUnit)],lf) +pl.done() + +pl.start('format logical volume with ext4') +execute(["mkfs.ext4", "/dev/" + volumeGroupName + "/" + vmName, "-l",vmName],lf) +pl.done() + +pl.start('adding iscsi export') +execute(["addIscsiDisk", vmName],lf) +pl.done() logInfo("all done. SSH to (pang|peng).spline.de an install your vm there!") sys.exit(0) @@ -10,13 +10,13 @@ def logInfo(msg): def logErr(msg): print("\033[1;31mERROR\033[0m " + str(msg)) -def openLogFile(comment) +def openLogFile(comment=sys.argv[0]): logFile = open("/tmp/" + comment + ".log","a") logFile.write("# ### Starting new run \"" + comment + "\" ### #\r\n") logFile.flush() return logFile -def execute(cmd, logFile): +def execute(cmd, logFile=None): # safty anker subprocess.call(cmd) try: subprocess.call(['echo','#>>>'] + cmd,stdout=logFile) @@ -34,21 +34,26 @@ def execute(cmd, logFile): + logFile.name + ". Error was: " + str(e)) sys.exit(1) -class ExecutionPlan: +class ProgressLogger: - def __init__(self, commands, comment = sys.argv[0]): - self.commands = commands - self.executed = [] + def __init__(self, totalSteps, steps=[]): + self.totalSteps = totalSteps + self.progress=1 + self.steps=steps - def execute_all(self): - for i in range(len(self.executed),len(self.commands)): - total = len(self.commands) - print("[" + str(i+1) + "/" + str(total) + "]: excuting " - + self.commands[i][0],end="") - self.execute(self.commands[i]) - print("\r[" + str(i+1) + "/" + str(total) + "]: excuted " - + self.commands[i][0] + " ") + def start(self, step=None): + if(step == None): + step = self.steps.pop() + print("[" + str(self.progress) + "/" + str(self.totalSteps) + + "] excuting: " + step, end="") + + self.current=step + + def done(self): + print("\r[" + str(self.progress) + "/" + str(self.totalSteps) + "] excuted: " + + self.current + " ") + self.progress = self.progress + 1 def parseIp(rawString): match = re.match('^130\.133\.110\.([0-9]{1,3})$',rawString) |