PEP8, add PORT (-T) and KEY (-K) parameters.

master
Sebastien Andrivet 2018-01-10 17:30:54 +01:00
parent bafad5ff2f
commit 6ecf4d7fbc
1 changed files with 28 additions and 21 deletions

View File

@ -2,14 +2,9 @@
import argparse # Argument parser
import datetime # For current Date/Time
import time
import os.path # To check if file exists
import sys # For args
import re # For regex
import paramiko # For remote ssh
import yaml
import warnings
from esxi_vm_functions import *
@ -21,8 +16,10 @@ isDryRun = ConfigData['isDryRun']
isVerbose = ConfigData['isVerbose']
isSummary = ConfigData['isSummary']
HOST = ConfigData['HOST']
PORT = ConfigData['PORT']
USER = ConfigData['USER']
PASSWORD = ConfigData['PASSWORD']
KEY = ConfigData['KEY']
CPU = ConfigData['CPU']
MEM = ConfigData['MEM']
HDISK = int(ConfigData['HDISK'])
@ -35,8 +32,8 @@ GUESTOS = ConfigData['GUESTOS']
ErrorMessages = ""
CheckHasErrors = False
DSPATH=""
DSSTORE=""
DSPATH = ""
DSSTORE = ""
#
# Process Arguments
@ -44,11 +41,15 @@ DSSTORE=""
parser = argparse.ArgumentParser(description='ESXi Create VM utility.')
parser.add_argument("-H", "--Host", dest='HOST', type=str, help="ESXi Host/IP (" + str(HOST) + ")")
parser.add_argument("-T", "--Port", dest='PORT', type=int, help="ESXi Port number (" + str(PORT) + ")")
parser.add_argument("-U", "--User", dest='USER', type=str, help="ESXi Host username (" + str(USER) + ")")
parser.add_argument("-P", "--Password", dest='PASSWORD', type=str, help="ESXi Host password (*****)")
parser.add_argument("-K", "--Key", dest='KEY', type=str, help="ESXi Host connection key (path to private key)")
parser.add_argument("-n", "--name", dest='NAME', type=str, help="VM name")
parser.add_argument('-V', '--verbose', dest='isVerbosearg', action='store_true', help="Enable Verbose mode (" + str(isVerbose) + ")")
parser.add_argument('--summary', dest='isSummaryarg', action='store_true', help="Display Summary (" + str(isSummary) + ")")
parser.add_argument('-V', '--verbose', dest='isVerbosearg', action='store_true',
help="Enable Verbose mode (" + str(isVerbose) + ")")
parser.add_argument('--summary', dest='isSummaryarg', action='store_true',
help="Display Summary (" + str(isSummary) + ")")
args = parser.parse_args()
@ -58,19 +59,23 @@ if args.isVerbosearg:
if args.isSummaryarg:
isSummary = True
if args.HOST:
HOST=args.HOST
HOST = args.HOST
if args.PORT:
PORT = args.PORT
if args.USER:
USER=args.USER
USER = args.USER
if args.PASSWORD:
PASSWORD=args.PASSWORD
PASSWORD = args.PASSWORD
if args.KEY:
KEY = args.KEY
if args.NAME:
NAME=args.NAME
NAME = args.NAME
#
# main()
#
LogOutput = '{'
LogOutput += '"datetime":"' + str(theCurrDateTime()) + '",'
LogOutput += '"datetime":"' + str(the_current_date_time()) + '",'
if NAME == "":
print "ERROR: Missing required option --name"
@ -79,22 +84,24 @@ if NAME == "":
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(HOST, username=USER, password=PASSWORD)
ssh.connect(HOST, port=PORT, username=USER, password=PASSWORD, key_filename=KEY)
(stdin, stdout, stderr) = ssh.exec_command("esxcli system version get |grep Version")
type(stdin)
if re.match("Version", str(stdout.readlines())) is not None:
print "Unable to determine if this is a ESXi Host: %s, username: %s" % (HOST, USER)
print "Unable to determine if this is a ESXi Host: %s, port: %s, username: %s" % (HOST, PORT, USER)
sys.exit(1)
except:
print "The Error is " + str(sys.exc_info()[0])
print "Unable to access ESXi Host: %s, username: %s" % (HOST, USER)
print "Unable to access ESXi Host: %s, port: %s, username: %s" % (HOST, PORT, USER)
sys.exit(1)
#
# Check if VM exists
#
VMID = -1
CheckHasWarnings = False
try:
(stdin, stdout, stderr) = ssh.exec_command("vim-cmd vmsvc/getallvms")
type(stdin)
@ -117,7 +124,8 @@ except:
# Get List of Volumes,
try:
(stdin, stdout, stderr) = ssh.exec_command("esxcli storage filesystem list |grep '/vmfs/volumes/.*true VMFS' |sort -nk7")
(stdin, stdout, stderr) = \
ssh.exec_command("esxcli storage filesystem list |grep '/vmfs/volumes/.*true VMFS' |sort -nk7")
type(stdin)
VOLUMES = {}
for line in stdout.readlines():
@ -168,7 +176,7 @@ if not CheckHasErrors:
print "power.off: " + str(lines)
CurrentStateCounter += 1
if CurrentStateCounter >10:
if CurrentStateCounter > 10:
break
time.sleep(1)
@ -198,7 +206,7 @@ LogOutput += '"Verbose":"' + str(isVerbose) + '",'
if ErrorMessages != "":
LogOutput += '"Error Message":"' + ErrorMessages + '",'
LogOutput += '"Result":"' + Result + '",'
LogOutput += '"Completion Time":"' + str(theCurrDateTime()) + '"'
LogOutput += '"Completion Time":"' + str(the_current_date_time()) + '"'
LogOutput += '}\n'
try:
with open(LOG, "a+w") as FD:
@ -221,4 +229,3 @@ else:
print "Success"
sys.exit(0)