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)
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)