def get_all_fuel_nodes(): nodes = dict() cmdline = "fuel node --list" logger.debug('Run: %s', cmdline) result = run(cmdline) logger.debug('Result: %s', result) buf = StringIO.StringIO(result) started = False for line in buf.readlines(): if line.startswith('---'): started = True continue if started: fields = line.split('|') if len(fields) >= 10: id = int(fields[0].strip()) status = fields[1].strip() name = fields[2].strip() cluster = fields[3].strip() ip = fields[4].strip() mac = fields[5].strip() roles = fields[6].strip() pending_roles = fields[7].strip() online = bool(fields[8].strip()) group_id = fields[9].strip() nodes[id] = {'id': id, 'status': status, 'name': name, 'cluster': utils.parse_int(cluster), 'ip': ip, 'mac': mac, 'roles': utils.parse_list(roles), 'pending_roles': utils.parse_list(pending_roles), 'online': utils.parse_bool(online), 'group_id': utils.parse_int(group_id)} return nodes.values()
def get_all_fuel_env(): env_list = dict() cmdline = "fuel env --list" logger.debug('Run: %s', cmdline) result = run(cmdline) logger.debug('Result: %s', result) buf = StringIO.StringIO(result) started = False for line in buf.readlines(): if line.startswith('---'): started = True continue if started: fields = line.split('|') if len(fields) >= 7: id = int(fields[0].strip()) status = fields[1].strip() name = fields[2].strip() mode = fields[3].strip() release_id = fields[4].strip() changes = fields[5].strip() pending_release_id = fields[6].strip() env_list[id] = {'id': id, 'status': status, 'name': name, 'mode': mode, 'release_id': utils.parse_int(release_id), 'changes': utils.parse_eval(changes), 'pending_release_id': utils.parse_int(pending_release_id)} return env_list.values()