-
Notifications
You must be signed in to change notification settings - Fork 1
/
instances.py
77 lines (59 loc) · 1.95 KB
/
instances.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
#coding: utf-8
import requests, ast, header, subprocess, time, sys
r = requests.get('http://controller:8774/v2.1/servers', headers=header.get())
vm_list = ast.literal_eval(r.content) # Returns the content of the queried URL
vm_list = vm_list['servers']
length = len(vm_list)
def get():
vms = []
pos = length -1
while pos > -1:
vm = vm_list[pos]['name']
pos -= 1
vms.append(vm)
print vms
return vms
def on(qt_on):
pos = len(get()) + 1
while qt_on > 0:
vm = 'vm-%s' %pos
print 'ligando %s' %vm
command = "ssh user@controller '. admin-openrc && openstack server create --image cirros --flavor=1CPU_128RAM %s'" %vm
run = subprocess.check_output(command, shell=True) # Receives the output of the above command
qt_on -= 1
pos += 1
def off(qt_off):
vms = get()
pos = length
if qt_off <= length:
while pos > length-qt_off:
vm = vms[pos-1]
print 'desligando %s' %vm
command = "ssh user@controller '. admin-openrc && openstack server delete %s'" %vm
run = subprocess.check_output(command, shell=True) # Receives the output of the above command
pos -= 1
else:
print 'Só existem %s VMs para desligar' %length
def auto_on(limit):
while True:
pos = len(get()) + 1
vms = []
for x in range(limit):
for i in xrange(60,-1,-1):
print "Liga em: %3d\r"%i,
time.sleep(1)
sys.stdout.flush()
vm = 'vm-%s'%pos
pos += 1
print 'ligando %s' %vm
command = "ssh user@controller '. admin-openrc && openstack server create --image cirros --flavor=1CPU_128RAM %s'" %vm
run = subprocess.check_output(command, shell=True) # Receives the output of the above command
vms.append(vm)
for vm in reversed(vms):
for i in xrange(60,-1,-1):
print "Desliga em: %3d\r"%i,
time.sleep(1)
sys.stdout.flush()
print 'desligando %s' %vm
command = "ssh user@controller '. admin-openrc && openstack server delete %s'" %vm
run = subprocess.check_output(command, shell=True) # Receives the output of the above command