コード例 #1
0
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()
コード例 #2
0
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()