blob: 9b1312e8ebfdcddb3ce99032aab1456728da11fa [file] [log] [blame]
koder aka kdanilove06762a2015-03-22 23:32:09 +02001import logging
2
3
koder aka kdanilovda45e882015-04-06 02:24:42 +03004from node import Node
Yulia Portnova3556a062015-03-17 16:30:11 +02005import fuel_rest_api
6
7
Yulia Portnova0e64ea22015-03-20 17:27:22 +02008logger = logging.getLogger("io-perf-tool")
9
10
koder aka kdanilovda45e882015-04-06 02:24:42 +030011def discover_fuel_nodes(root_url, credentials, cluster_name):
Yulia Portnova3556a062015-03-17 16:30:11 +020012 """Discover Fuel nodes"""
koder aka kdanilovda45e882015-04-06 02:24:42 +030013 assert credentials.count(':') >= 2
14 user, passwd_tenant = credentials.split(":", 1)
15 passwd, tenant = passwd_tenant.rsplit(":", 1)
koder aka kdanilove06762a2015-03-22 23:32:09 +020016 creds = dict(
17 username=user,
18 password=passwd,
19 tenant_name=tenant,
20 )
21
22 connection = fuel_rest_api.KeystoneAuth(root_url, creds)
Yulia Portnova3556a062015-03-17 16:30:11 +020023 fi = fuel_rest_api.FuelInfo(connection)
koder aka kdanilovda45e882015-04-06 02:24:42 +030024
25 clusters_id = fuel_rest_api.get_cluster_id(connection, cluster_name)
26
Yulia Portnova0e64ea22015-03-20 17:27:22 +020027 nodes = []
koder aka kdanilovda45e882015-04-06 02:24:42 +030028
29 for node in fi.nodes:
30 if node.cluster == clusters_id:
31 nodes.append(node)
32 res = [Node(n.ip, n.get_roles()) for n in nodes]
33 logger.debug("Found %s fuel nodes for env %r" % (len(res), cluster_name))
34 return res