koder aka kdanilov | e06762a | 2015-03-22 23:32:09 +0200 | [diff] [blame] | 1 | import logging |
| 2 | |
| 3 | |
koder aka kdanilov | da45e88 | 2015-04-06 02:24:42 +0300 | [diff] [blame] | 4 | from node import Node |
Yulia Portnova | 3556a06 | 2015-03-17 16:30:11 +0200 | [diff] [blame] | 5 | import fuel_rest_api |
| 6 | |
| 7 | |
Yulia Portnova | 0e64ea2 | 2015-03-20 17:27:22 +0200 | [diff] [blame] | 8 | logger = logging.getLogger("io-perf-tool") |
| 9 | |
| 10 | |
koder aka kdanilov | da45e88 | 2015-04-06 02:24:42 +0300 | [diff] [blame] | 11 | def discover_fuel_nodes(root_url, credentials, cluster_name): |
Yulia Portnova | 3556a06 | 2015-03-17 16:30:11 +0200 | [diff] [blame] | 12 | """Discover Fuel nodes""" |
koder aka kdanilov | da45e88 | 2015-04-06 02:24:42 +0300 | [diff] [blame] | 13 | assert credentials.count(':') >= 2 |
| 14 | user, passwd_tenant = credentials.split(":", 1) |
| 15 | passwd, tenant = passwd_tenant.rsplit(":", 1) |
koder aka kdanilov | e06762a | 2015-03-22 23:32:09 +0200 | [diff] [blame] | 16 | creds = dict( |
| 17 | username=user, |
| 18 | password=passwd, |
| 19 | tenant_name=tenant, |
| 20 | ) |
| 21 | |
| 22 | connection = fuel_rest_api.KeystoneAuth(root_url, creds) |
Yulia Portnova | 3556a06 | 2015-03-17 16:30:11 +0200 | [diff] [blame] | 23 | fi = fuel_rest_api.FuelInfo(connection) |
koder aka kdanilov | da45e88 | 2015-04-06 02:24:42 +0300 | [diff] [blame] | 24 | |
| 25 | clusters_id = fuel_rest_api.get_cluster_id(connection, cluster_name) |
| 26 | |
Yulia Portnova | 0e64ea2 | 2015-03-20 17:27:22 +0200 | [diff] [blame] | 27 | nodes = [] |
koder aka kdanilov | da45e88 | 2015-04-06 02:24:42 +0300 | [diff] [blame] | 28 | |
| 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 |