-
Notifications
You must be signed in to change notification settings - Fork 2
/
vm_setClockSync.py
executable file
·110 lines (82 loc) · 2.95 KB
/
vm_setClockSync.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: Saul Bertuccio
# Date: ven 12 luglio 2017
# Imposta il clock sync per le VM
from __future__ import print_function
# Custom libs
from libs.datacenter import Datacenter
from libs.utils import checkDate, getBaseArgs
from configs.vcenterparams import VcenterParams
from pyVim.task import WaitForTasks
import argparse
import time
import getpass
import sys
import copy
import json
import csv
from datetime import datetime
# DEBUG
from pprint import pprint
def GetArgs():
"""
Gestione degli argomenti
"""
PARS=VcenterParams()
parser = getBaseArgs(PARS)
parser.add_argument('-f', '--folder', required=False, action='store', default='/',
help='Percorso assoluto della cartella sul datacenter contenente le VM per cui elencare tag e categorie.')
parser.add_argument('--autosync', required=False, action='store', choices=['si', 'no'], default = None,
help="Specifica se attivare o disattivare il sync dell'orologio")
args = parser.parse_args()
return args
def main():
# Parsing argomenti
args = GetArgs()
if args.password:
password = args.password
else:
password = getpass.getpass(prompt='Inserire la password per l\'host %s e l\'utente %s: ' % (args.host,args.user))
# Connessione al vcenter e oggetto DataCenter
try:
vmdtc = Datacenter(host=args.host,
user=args.user,
password=password,
port=int(args.port),
datacenter = args.datacenter)
except Exception, e:
sys.stderr.write(str(e))
sys.exit(1)
try:
vms = vmdtc.getVirtualMachineList(folder = args.folder, recursive = True)
except Exception, e:
sys.stderr.write(str(e))
sys.exit(1)
if not vms:
sys.stderr.write("Attenzione: nessuna Macchina virtuale trovata nella cartella %s\n" % args.folder)
sys.exit(1)
for vm in vms:
try:
enabled = vm.clockSync()
if enabled:
sys.stdout.write("VM %s sincronizzazione abilitata\n" % vm.name)
else:
sys.stdout.write("VM %s sincronizzazione non abilitata\n" % vm.name)
if args.autosync is not None:
if args.autosync == 'si':
if not enabled:
sys.stdout.write("-- abilito sincronizzazione\n")
vm.clockSync(True)
else:
if enabled:
sys.stdout.write("-- disattivo sincronizzazione\n")
vm.clockSync(False)
else:
sys.stdout.write("-- nessuna modifica\n")
except Exception, e:
sys.stderr.write("Errore VM %s, probabilmente non sono installati i VMWare Tools (%s)\n" % (vm.name, str(e)))
#
# Avvio l'applicazione
if __name__ == "__main__":
main()