Example #1
0
def api_disks():
    '''
    Get all disk. Request url [GET /api/disks]

    Response:

        id: disk identity

        slot: disk slot on machine

        device: disk device name

        name: disk name

        capacity: disk capacity(Bytes)

        state: 0-normal; 1-abnormal
    '''
    disks_cur = yield from disk_list()
    disk_ids = [disk.id for disk in disks_cur]
    for disk in disks_cur:
        r =  yield from Disk.find(disk.id)
        if r is None:
            if disk.capacity == 0:
                disk.state = _disk_abnormal_state
            yield from disk.save()
    disks_in_db = yield from Disk.findall()
    if disks_in_db:
        for disk in disks_in_db:
            d = [disk_cur for disk_cur in disks_cur if disk_cur.id == disk.id]
            if (len(d) != 0):
                disk_cur = d[0]
                if disk.state == _disk_abnormal_state:
                    disk.state = _disk_normal_state
                    yield from disk.update()
                    if disk.device != disk_cur.device:
                        disk.device = disk_cur.device
                        yield from disk.update()
                    else:
                        disk.state = _disk_abnormal_state
                        yield from disk.update()
                else:
                    if disk.capacity == 0:
                        disk.state = _disk_abnormal_state
                        yield from disk.update()
            else:
                # disk.state = _disk_abnormal_state;
                yield from disk.remove();
                # yield from disk.update()

    return dict(retcode=0, disks=disks_in_db)
Example #2
0
def api_disks():
    '''
    Get all disk. Request url [GET /api/disks]

    Response:

        id: disk identity

        slot: disk slot on machine

        device: disk device name

        name: disk name

        capacity: disk capacity(Bytes)

        state: 0-normal; 1-abnormal
    '''
    disks_cur = yield from disk_list()
    disk_ids = [disk.id for disk in disks_cur]
    for disk in disks_cur:
        r = yield from Disk.find(disk.id)
        if r is None:
            if disk.capacity == 0:
                disk.state = _disk_abnormal_state
            yield from disk.save()
    disks_in_db = yield from Disk.findall()
    if disks_in_db:
        for disk in disks_in_db:
            d = [disk_cur for disk_cur in disks_cur if disk_cur.id == disk.id]
            if (len(d) != 0):
                disk_cur = d[0]
                if disk.state == _disk_abnormal_state:
                    disk.state = _disk_normal_state
                    yield from disk.update()
                    if disk.device != disk_cur.device:
                        disk.device = disk_cur.device
                        yield from disk.update()
                    else:
                        disk.state = _disk_abnormal_state
                        yield from disk.update()
                else:
                    if disk.capacity == 0:
                        disk.state = _disk_abnormal_state
                        yield from disk.update()
            else:
                # disk.state = _disk_abnormal_state;
                yield from disk.remove()
                # yield from disk.update()

    return dict(retcode=0, disks=disks_in_db)