From 6ecf4d7fbc14b814143b4b2b522ded6afc536ee9 Mon Sep 17 00:00:00 2001 From: Sebastien Andrivet Date: Wed, 10 Jan 2018 17:30:54 +0100 Subject: [PATCH] PEP8, add PORT (-T) and KEY (-K) parameters. --- esxi-vm-destroy | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/esxi-vm-destroy b/esxi-vm-destroy index 1ba42c9..7b1d193 100755 --- a/esxi-vm-destroy +++ b/esxi-vm-destroy @@ -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) -