#!/usr/bin/python import shutil, tempfile, os, optparse, logging import sys usage = "usage: %prog [options]" parser = optparse.OptionParser(usage=usage) parser.add_option("-i", "--isofile", help="ISO image", dest="isoimg") parser.add_option("-d", "--domainid", help="Domain id ", dest="domainid") parser.add_option("-n", "--vsmname", help="VSM name", dest="vsmname") parser.add_option("-m", "--mgmtip", help="Management Ip address", dest="mgmtip") parser.add_option("-s", "--mgmtsubnet", help="Management Subnet", dest="mgmtsubnet") parser.add_option("-g", "--gateway", help="Management gateway", dest="mgmtgateway") parser.add_option("-p", "--password", help="Admin account password", dest="adminpasswd") parser.add_option("-r", "--vsmrole", help="VSM Role, primary ,secondary or standalone", dest="vsmrole") parser.add_option("-f", "--file", help="Repackaged file", dest="repackediso") (options, args) = parser.parse_args() isoimg = options.isoimg domainid = int(options.domainid) vsmname = options.vsmname mgmtip = options.mgmtip mgmtsubnet = options.mgmtsubnet mgmtgateway = options.mgmtgateway adminpasswd = options.adminpasswd vsmrole = options.vsmrole repackediso = options.repackediso class Command(object): """Run a command and capture it's output string, error string and exit status""" def __init__(self, command): self.command = command def run(self, shell=True): import subprocess as sp process = sp.Popen(self.command, shell = shell, stdout = sp.PIPE, stderr = sp.PIPE) self.pid = process.pid self.output, self.error = process.communicate() self.failed = process.returncode return self @property def returncode(self): return self.failed def createOvfEnvXmlFile(domain, gateway, hostname, ip, subnet, password, vsm_mode): #TODO: write a proper xml ovf_f = tempfile.NamedTemporaryFile(delete=False) st = ' \n' st += '