def _list_active_streams(params): result = [] if not driver.is_started('service_gateway'): return {'result': result, } from transport import gateway result = [] wanted_protos = params.get('protos', []) if not wanted_protos: wanted_protos = gateway.list_active_transports() for proto in wanted_protos: for stream in gateway.list_active_streams(proto): item = { 'proto': proto, 'id': '', 'type': '', 'bytes_current': -1, 'bytes_total': -1, 'progress': '0%', } if proto == 'tcp': if hasattr(stream, 'bytes_received'): item.update({ 'id': stream.file_id, 'type': 'in', 'bytes_current': stream.bytes_received, 'bytes_total': stream.size, 'progress': misc.value2percent(stream.bytes_received, stream.size, 0) }) elif hasattr(stream, 'bytes_sent'): item.update({ 'id': stream.file_id, 'type': 'out', 'bytes_current': stream.bytes_sent, 'bytes_total': stream.size, 'progress': misc.value2percent(stream.bytes_sent, stream.size, 0) }) elif proto == 'udp': if hasattr(stream.consumer, 'bytes_received'): item.update({ 'id': stream.stream_id, 'type': 'in', 'bytes_current': stream.consumer.bytes_received, 'bytes_total': stream.consumer.size, 'progress': misc.value2percent(stream.consumer.bytes_received, stream.consumer.size, 0) }) elif hasattr(stream.consumer, 'bytes_sent'): item.update({ 'id': stream.stream_id, 'type': 'out', 'bytes_current': stream.consumer.bytes_sent, 'bytes_total': stream.consumer.size, 'progress': misc.value2percent(stream.consumer.bytes_sent, stream.consumer.size, 0) }) result.append(item) return {'result': result, }
def _list_active_streams(params): result = [] if not driver.is_on('service_gateway'): return {'result': result, } from transport import gateway result = [] wanted_protos = params.get('protos', []) if not wanted_protos: wanted_protos = gateway.list_active_transports() for proto in wanted_protos: for stream in gateway.list_active_streams(proto): item = { 'proto': proto, 'id': '', 'type': '', 'bytes_current': -1, 'bytes_total': -1, 'progress': '0%', } if proto == 'tcp': if hasattr(stream, 'bytes_received'): item.update({ 'id': stream.file_id, 'type': 'in', 'bytes_current': stream.bytes_received, 'bytes_total': stream.size, 'progress': misc.value2percent(stream.bytes_received, stream.size, 0) }) elif hasattr(stream, 'bytes_sent'): item.update({ 'id': stream.file_id, 'type': 'out', 'bytes_current': stream.bytes_sent, 'bytes_total': stream.size, 'progress': misc.value2percent(stream.bytes_sent, stream.size, 0) }) elif proto == 'udp': if hasattr(stream.consumer, 'bytes_received'): item.update({ 'id': stream.stream_id, 'type': 'in', 'bytes_current': stream.consumer.bytes_received, 'bytes_total': stream.consumer.size, 'progress': misc.value2percent(stream.consumer.bytes_received, stream.consumer.size, 0) }) elif hasattr(stream.consumer, 'bytes_sent'): item.update({ 'id': stream.stream_id, 'type': 'out', 'bytes_current': stream.consumer.bytes_sent, 'bytes_total': stream.consumer.size, 'progress': misc.value2percent(stream.consumer.bytes_sent, stream.consumer.size, 0) }) result.append(item) return {'result': result, }