-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlistNodes.py
78 lines (48 loc) · 1.59 KB
/
listNodes.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
#!/usr/bin/python
import sys
import xmlrpclib
class listNodes:
api_server = xmlrpclib.ServerProxy('https://www.planet-lab.org/PLCAPI/', allow_none=True)
slice_name = None
auth = {}
private_key = 'sopcast/planetlab-key'
return_fields = ['slice_id', 'node_ids']
my_nodes = ''
def __init__(self):
#return_fields = ['node_ids']
self.return_fields = ['slice_id', 'node_ids']
def authenticate(self, user, password):
self.auth['AuthMethod'] = 'password'
self.auth['Username'] = user
self.auth['AuthString'] = password
try:
authorized = self.api_server.AuthCheck(self.auth)
except:
authorized = False
return authorized
def setPrivateKey(self, private):
self.private_key = private
def getPrivateKey(self):
return self.private_key
def getUser(self):
return self.auth['Username']
def getSliceName(self):
if self.slice_name == None:
self.slice_name = self.api_server.GetSlices(self.auth, None, ['name'])
#slice_username = self.api_server.GetPersons(self.auth, None, None)
return self.slice_name[0]['name']
def getNodes(self):
nodes = []
nodes = self.api_server.GetNodes(self.auth, None, ['boot_state', 'site_id', 'hostname', 'node_id'])
return nodes
def getSlices(self):
hosts = []
self.my_nodes = self.api_server.GetSlices(self.auth, None, self.return_fields)
#print my_nodes[0]['node_ids']
hosts = self.api_server.GetNodes(self.auth, self.my_nodes[0]['node_ids'], ['node_id', 'hostname'])
return hosts
#print sys.argv[1:]
#list = ''
#i = len(hosts)
#for num in range (0, i):
# list += "%s " % hosts[num]['hostname']